On Tuesday 28th November – more than 2 months from now – I want to make a train trip from Geneva to Berlin. The connection is easy enough – two InterCity trains in Switzerland, via Biel/Bienne, to Basel SBB, and then the NightJet night train from there to Berlin. This is the route:

Then the question comes – how can I actually book that? And – importantly – book it for a reasonable price?

I first tried Trainline.eu and Loco2.com – both supposedly EU-wide rail booking sites – but neither of those work. The NightJet EN 470 cannot be booked on either of those platforms.

So then I need to resort to the national operators’ websites, in this case SBB (Swiss railways – where my trip starts), DB (German railways – where my trip ends), and ÖBB (Austrian railways – who operate the NightJet EN 470, even though the train does not run in Austria).

Each of these operators offers standard price, flexible tickets (Normalpreis), and also fixed price, have to use on that train (Sparpreis) tickets. Prices for all of those are compared here. I want a bed in a sleeping car (Schlafwagen) in a 3-person compartment. I also have a DB BahnCard 25 First Class reduction card, and no SBB or ÖBB reduction card. Where prices are in CHF they are converted at today’s rate – 1 CHF = 0.87767 EUR.

So what prices do I get for my Geneva – Berlin connection with each operator?

SBBDBÖBB
Sparpreis186 CHF
€163.25
Not offered€167.40
Normalpreis255 CHF
€223.81
€203.90Not offered

What if instead I split my tickets at Basel SBB – i.e. I book Geneve-Basel and Basel-Berlin separately?

SBBDBÖBB
Sparpreis
Geneve-Basel
Not offeredNot offeredNot offered
Normalpreis
Geneve-Basel
77 CHF
€67.58
Not offered€68.40
Sparpreis
Basel-Berlin
114 CHF
€100.06
€89.30 €99
Normalpreis
Basel-Berlin
183 CHF
€160.61
€152.60Not offered

The best possible price – combining SBB for Geneve-Basel, and DB for Basel-Berlin, is €156.88, a saving of just €6.37 over the cheapest through ticket.

So what else can be done? Here I then turn to the trick I document in this post – booking Basel SBB to Freiburg (Breisgau), in order to get a DB Sparpreis (Schweiz). Here I put in my desired departure time in Geneve, with Freiburg as my destination, and with a Zwischenhaltestelle in Basel SBB lasting two hours. It gives me this connection, although I will not take the Basel-Freiburg part:

The cost – just €24.65 Sparpreis. That, together with the cheapest Deutsche Bahn Sparpreis for the Basel-Berlin part gives me a total price of €113.95, a saving of €42.93 over the split ticket option, and a saving of €49.30 over the best price booked all in one go.

The problems? First, it took me more than 15 searches across 5 different websites to find this. Second, were my train to Basel delayed of cancelled, meaning I missed the NightJet to Berlin, I’d have no passenger rights (same as with any ticket split).

Welcome to the joyous world of cross border rail. But now, having read this, if you are departing from a Swiss station, connecting onto a NightJet, you know how to do it!

8 Comments

  1. Marc Van Dyck

    1) Planning a train trip with a connection as tight as 6 minutes, even in Switzerland, is a bit of gambling. You probably would never do that with flights, right ?
    2) On the other hand, the probability of missing a connection with more than 2 hours between trains is extremely low, specially in Switzerland, where such a delay would be close to an earthquake.
    3) You might have obtained protection for your connection in Basel by taking your DB Sparpreis (Schweiz) ticket
    directly from Geneve or Biel rather than Basel SBB. As far as I know, those DB Sparpreis tickets are available to/from any large station in the neighboring country, not just the border station. I once used a combination of two such tickets to go from Brussels to Prague…

  2. @Marc
    1) The 6 min connection in Biel/Bienne always works – have done it there dozens of times. The Geneve-Zürich ICN and the Lausanne-Basel ICN services meet there, intentionally. So that’s no issue in this case. Generally I would want more, I admit!
    2) Yes 🙂 And also I keep an eye on the SBB travel info, so once went to the station an hour earlier when there was a problem.
    3) That would normally be the way, but there is some problem with the NightJet / Schweiz Sparpreis system, meaning you only get Sparpreis fares for stations on that train alone, no connections.

  3. Kilian Tuschling

    Hi!
    This is tricky indeed, but you can buy a Sparpreis Europa ticket from Geneva to Berlin if you board the Euronight train only at Basel Bad Bf. This means you have to enter Basel Bad Bf on DB’s site as a via station with a minimum time that is longer than the Euronight’s stop.
    Of course this unfortunately shortens the night in the sleeper, but you can still get a cheap through ticket.
    Havng done this in the other direction, there was no problem remaining on board until Basel SBB.

  4. @Kilian

    Brilliant! It works! €93.45 for the trip I want to make, AND no split ticket. A Zwischenhaltestelle of 4 mins in Basel Bad Bf does it! I’ll amend the blog entry accordingly. And book accordingly!

  5. Christian Poulton

    Hehe, welcome to our world of train travel in the UK. We have so many different operators, options, flexible non-flexible etc that it’s a nightmare trying to book a cheap ticket in advance. Quite often it’s cheaper to book single tickets than returns and even booking multiple tickets st the same time can work out more expensive? It’s crazy…

  6. Hi Jon, Jamie from Loco2 here 🙂 I share your frustration!

    Unless I’m missing something, the whole itinerary can actually be booked via a single search at Bahn.de, albeit for a much higher price than the split-fares you’ve found. I think this is worth pointing out in answer to your first question “how can I actually book that?”.

    The reason the same journey/price can’t be booked on Loco2 or Trainline is because Deutsche Bahn doesn’t make night train booking available via its API (we’ve been asking for night trains ever since we launched our integration with them years ago, but the back-end involves a completely different seating/sleeping reservation system to normal trains, and essentially DB don’t see a clear case for investing the technical resource in making the functionality available to partners). Hopefully this will change in future!

    The other problem is that SBB don’t have a booking API at all. Again, we’ve been trying to get hold of one for ages and there are rumours that one is in development, but to my knowledge no third party yet has access to it, and therefore cannot start combining SBB fares with DB fares in order to unlock the fares you’ve found through manual splits. As you probably know, we do combine and compare fares from different providers whenever we have the data/technical access to do that (e.g. we often combine SNCF fares with DB fares when users are searching for France-Germany itineraries).

    Hopefully that explanation is helpful! We shall continue plugging away to try and solve problems like these, including investing in the tricky business development/diplomacy that is required to actually try and get access to the right data/systems that we need.

    Jamie

    • The first table in the blog entry gives the Normalpreis through ticket from Deutsche Bahn, and SBB even offers a sort of through Sparpreis as well. So I did find those 🙂 But considering how expensive they are no one in their right mind would book those!

      As for the night trains – could you get NightJet from an ÖBB API?

      And yes, I am well aware of your ability to combine fares at Loco2, and that this does not work here is not your fault, but very much with the operators who refuse to pass on the data.

  7. Erik Griswold

    My first reaction to this when I saw your problem was “Get thee to Germany”.

    The Swiss system is amazingly frequent so that even if you have to give yourself extra time at Basel Bad, it won’t add much to the overall travel time. Too bad Basel (DB) is not as well connected to Basel SBB as Basel SNCF is.

Leave a Comment

Your email address will not be published. Required fields are marked *