The first (AFAIK) map of international railway services in Europe

To view the map in full resolution, please see the pdf upload here. Originally shared on Reddit and LinkedIn.

An ambitious project – completed in March 2026 – that grew out of a personal frustration. Planning a trip to southern Italy in 2023, it was only through word-of-mouth that I found out about the option via Paris and Milan – the DB journey planner didn’t include France at the time so it showed only awful options via Germany and Switzerland with lots of transfers and unrealistic margins (the Brussels-Milan night train was still a long way off!) So I thought, “why isn’t there an overview map that just shows you these kinds of things…?”

I worked on an early version throughout the autumn of 2023, but I’d picked a poor season: with the end-of-year timetable change coming up, new connections were constantly being announced so the ground was shifting beneath my feet. That combined with the chaos of inconsistent, contradictory and dubiously reliable data sources (I didn’t know yet about Transitous and their amazing collection of open, official timetable data) drove me so crazy I gave up.

Over the course of 2025 I resolved to try again. This time I would start in January, to have a more stable timetable to work with; and I would relax my usual perfectionism a little. Getting a map out there, just as a proof of concept, was more important than getting it 100% right.

For nothing of the sort existed. There was Back-on-Track with their night train map. There were maps focused on specific countries – good official ones for the Netherlands and Switzerland; a terrible official one for Germany; great amateur maps for Germany and France among others. But nothing that even attempted to show the main long-distance railway services across Europe, night and day. At least, in all my Googling and hunting around I’ve never found one.

So I created it, just as a showcase: this is what I want, why can’t we have this from an official source? Journey planners are well and good, but I want to be able to orient myself and reason with the system, not just accept an algorithm’s optimal solution without thinking – especially for these long-distance journeys where the option to combine multiple destinations, or to prefer certain transfer locations over others, is relevant.

At the time of making this map I still wasn’t aware of Transitous – in fact I found out about it through a chain that started from a comment on my LinkedIn post of this map! So it was necessarily messy and unsystematic, with lots of arbitrary decisions to include/exclude certain lines, and some that I totally missed even though I would have wanted to include them (among the omissions that Reddit commenters pointed out were the ICE Paris – Saarbrücken – Frankfurt, TGV Paris – Nice and various EuroCities from Vienna into Poland ). But I did it, there was nothing like this before, and I’m proud of what I accomplished even if it’s not perfect.

For 2027 obviously I’ll want to iterate on this 😉 I have in mind a much more structured approach thanks to Transitous GTFS data; more focus on major hubs, leaving out the minor stops along the way; and perhaps some way to include the timing of stops as well (seeing on a map that a day train from A to B and a night train from B to C exist is nice, but if the train from A to B only runs once a day and arrives at B later than the night train departs, it’s not much use for an A to C journey). Stay tuned!

This entry was posted in international, legacy, map, rail. Bookmark the permalink.

Leave a Reply