My tips would be:
* Book at least a week in advance.
* Buy a Bahn Card 25.
* Get up early.
If you do this Berlin -> Munich is €44.90 next Saturday on the 4 hour fast train. Also don't forget, it costs around €11 to go from Munich airport to the city.
Why does buying an affordable train ticket always involve a treasure hunt of weird ticketing combinations and cards like this?
In the end the cheapest option was not to use a BahnCard 25 or 50 but to buy two one-way tickets for each leg from the regional transportation provider via a smartphone app, because smartphone tickets are sold at a discount. It's wasn't just a bit cheaper but about 30%.
One thing I despise about trains in Germany and France is that the experience still feels way too old school. What happens when something is delayed or when a connection has an issue makes you feel back in the eighties. The Deutsche Bahn applications are a great way to see that, it's confused and overly complicated. I wish the UX of apps/websites like https://www.trainline.eu/ would be the standard by now.
There already is form of transport that's much cheaper than train or flying which is called BUS. We can make them fully electric and even have different classes. They can share existing infrastructure that doesn't require thousands of specialised people to maintain or operate...
Spending on highways and roads was $175 billion in the US in 2016 [0]. They absolutely do require massive numbers of people to maintain them - for example, Caltrans, the California agency that manages the state highway system, has over 18,000 permanent staff.
[0] https://www.urban.org/policy-centers/cross-center-initiative...
Zurich to Paris just takes too long by train, and doing night trains isn't always an option.
For short and medium distances it rarely is, given that
A) for flights, you ought to be at the airport 1 to 2 hours before departure.
B) the train typically takes you from city centre to city centre, while the airport is frequently 1/2 to 1 hours out.
C) on the train, you can work non-stop, while on a short flight a good proportion of the time you spend in security, boarding, take-off and approach, where you can’t be on your laptop.
D) on many routes, trains depart every hour or even more frequently, so you can basically go whenever you want.
It's a nudge over 4 hours by TGV from Zurich center to Paris center. That is almost certainly comparable to getting from city center to airport, checking in, waiting before flight, flying, waiting for bags, and getting to city center at the other end. Of course, if your source and destination are closer to the airport and you have no bags/minimize waiting time that might tip the flight in your balance but I doubt it'd be very far off in many cases. Personally I'd much rather take the train here -- I find it more comfortable and convenient than flying and for me the overall time taken is comparable.
It can also be cheap. I've had several €29 fares on that route.
100€ both ways can be considered a good price, unless one also owns a Bahncard.
None of my train trips in Europe (Scandinavia, Germany, Switzerland) had the issues you mentioned.
In particular, the designers of the German ICEs seem to have realized over the past ~decade that people don't want to lift heavy bags overhead (especially if the compartment is too small), and that when the only other space to store them is the corridor, the corridor will be full of bags. They added dedicated luggage racks with enough space to actually fit your luggage.
Many cities it’s a nightmare to get to the airport, whereas the train station is usually central.
German trains pack as much people as possible and occasionally you can consider yourself lucky if you manage to reach your seat, if the wagon is still available to start with.
In any case, that was just an example, I am not doing Germany - Portugal by train, unless forced to do so. It is more than 24h.
That's the point, we need to expand the rail network to make longer distance trips shorter, more comfortable, and affordable. Flying can't continue to be the default option.