For example, suppose you want to visit Budapest from Rome over the weekend[0].
If you fly out this Saturday, the flight is €10, you arrive at 10AM. If you want to whole day, you can fly out on Friday, for €23, and find accommodation for €45, totalling 68 euros[1]. Traveling by train is sadly way more expensive.
Consider instead Berlin -> Budapest, it's €10 on Friday, direct, with Wizzair, but >100€ on Saturday with stops. The train is both cheaper and faster!
[0] this is where I live and where my family lives, the route I fly most often
[1] prices are from skyscanner, airbnb
Christmas Day, Graz (Austria) to Munich. 5hr 57 minutes. 1 change in Salzburg. €26.90 one-way.
The same journey at decent times in the afternoon on Christmas Eve only increases to €36.90 - €46.90.
Seems pretty reasonable to me!
In general, the trick is to book in advance to make use of Sparschiene prices. Or if a frequent traveller, buy a yearly rail card, which offers the equivalent Sparschiene all the time.