Travel Information
Compare train and bus for Geneva to Erfurt
Omio recommends booking the train as it is the most popular option from Geneva to Erfurt among Omio's users. If you are prioritising price, take the bus, with an average ticket price of €85 For those with little time, consider booking a train, which has an average total journey time of 8h 50m. If you are seeking to minimise your carbon footprint, the train is your best option, with estimated CO2 emissions of 0.2 - 0.6kg. Average ticket prices depend on the travel mode: a bus costs an average of €85, while a train costs an average of €123.
Distance: 398 miles (641 km)
Compare train with
Most popular Train | Bus | Driving |
|---|---|---|
€123 Average price | €85 Average price Cheapest | €186 Average price (fuel + tolls) |
8h 50m Average total duration Fastest 8h 20m Onboard + 30m Additional time* | 17h 58m Average total duration 17h 28m Onboard + 30m Additional time* | 8h 12m Average total duration (door-to-door) |
0.2 - 0.6kg CO2 emissions Lowest | 0.6 - 1.6kg CO2 emissions | - CO2 emissions |
![]() Most popular train company | ![]() Most popular bus company | Your own car or car rental |
Direct Options | Direct Options | Direct Options |
Additional time: Average total travel duration to departure point, security checks and transfers.
Compare ways to travel from Geneva to Erfurt
Compare the available ways to get from Geneva to Erfurt, with the key details around price, speed, convenience, and direct service.
This is compared to other travel options from Geneva to Erfurt:
A bus is €38 less than a train for this route with tickets for a train from Geneva to Erfurt costing on average €123.
Other travel options to Erfurt take longer:
Bus takes on average 17h 58m.
Tickets start at around €123 compared to roughly €186 in fuel and tolls — a saving of about €64. The journey takes 8h 20m versus 8h 12m by car, so you'll arrive a bit later, but you can work, read, or sleep along the way rather than spending the time behind the wheel. You'll also save the hassle of parking at the other end.
Driving is worth it if you're on a tight schedule, travelling as a group, or want to stop somewhere en route.
Travel optionsfrom Geneva to Erfurt
How to get from Geneva to Erfurt by train, bus or flight.
Our recommendation
The best way to travel from Geneva to Erfurt is by taking a bus because it’s the best combination of price and speed.

8:50 AM 18h55 Geneva 3:45 AM Erfurt €62 1 One-way 0 transfers
Cheapest

8:50 AM 18h55 Geneva 3:45 AM Erfurt €62 1 One-way 0 transfers
Fastest

8:50 AM 18h55 Geneva 3:45 AM Erfurt €62 1 One-way 0 transfers
Find all the dates and times for this journey by train, bus, flight, and ferry .
Compare prices and tickets Prices for trains, buses and flights
Compare train and bus prices over the next three weeks. See the best deals at a glance, find the lowest fares, and choose the option that fits your budget.
More than 1,000 travel companies trust us to sell their tickets all in one place.
FAQs: Travel from Geneva to Erfurt
Travel to Erfurt easily. Whether you want fast, cheap or something entirely different, our travel experts have collected everything you need to know so you can find the best option from Geneva to Erfurt.

This is compared to other travel options from Geneva to Erfurt:
A bus is €38 less than a train for this route with tickets for a train from Geneva to Erfurt costing on average €123.
Other travel options to Erfurt take longer:
Bus takes on average 17h 58m.
- Around 5 trains per day.
- Around 2 buses per day.
However, we recommend checking specific travel dates for your route between Geneva and Erfurt as scheduled services by train and bus can vary by season or day of the week.
- Buses mostly depart from Geneve, Place Dorcière and arrive in Erfurt, Busbahnhof 2.
- Trains mostly depart from Geneva station and arrive in Erfurt Hbf.
- Travel with Deutsche Bahn to go to Erfurt by train.
- Travel with FlixBus to go to Erfurt by bus.
Travelling from Geneva to Erfurt: related information
Here are some other resources that might have the information you need

