- Must visit
Centraal Museum
Utrecht’s main art and city museum, known for old masters, design, and the Rietveld Schröder archive. A strong all-round choice for understanding the city’s culture.
Cheapest price
$17
Average price
$18
Fastest journey
49 m
Average duration
49 m
Trains per day
21
Distance
46 km
The best way to find a cheap train ticket from Haarlem to Utrecht is to book your journey as far in advance as possible and to avoid traveling at rush hour.
The average ticket from Haarlem to Utrecht will cost around $18 if you buy it on the day, but the cheapest tickets can be found for only $17.
It's difficult to get from Haarlem to Utrecht without transferring at least once.
2224 · 2739
5422+
3035
5428+
3041
4830+
2743
5416+
3029
4830+
2743
4828+
2741
4822+
2735
4824+
2737
4816+
2929Omio recommends booking the train as it is the most popular option from Haarlem to Utrecht among Omio's users. If you are prioritising price take the train with prices starting from $17. For those with little time consider booking a train which can get you there in 46m. The ticket price range depends on the travel mode: a train costs an average of $17, and a train costs an average of $17.
Distance: 28 miles (46 km)
Most popular Train | Driving |
|---|---|
$19 Average price Cheapest | $13 Average price (fuel + tolls) |
1h 16m Average total duration Fastest 46m Onboard + 30m Additional time* | 57m Average total duration (door-to-door) |
![]() Most popular train company | Your own car or car rental |
Direct Options | Direct Options |
You'll arrive about 11m sooner (46m by train vs 57m by car). Tickets start at around $19 (€15) compared to roughly $13 (€11) in fuel and tolls — so you're paying a bit more, but getting hours of your day back, a city-centre arrival, and the freedom to work or relax instead of drive.
Driving makes more sense if you're travelling as a group (where fuel costs split several ways), want to stop along the way, or need a car once you arrive.
The table below shows live departures for Haarlem to Utrecht trains for today, Friday, June 19. You can also manually refresh the results below to see updated train journeys.
| Provider | Departs | Duration | Arrives | Transfers | Tickets |
|---|---|---|---|---|---|
SPR 4808 · IC 2921 | 6:17 AM Haarlem station | 0h50 | 7:07 AM Utrecht Centraal | 1 transfer | |
4808+ 2921 | 6:17 AM Haarlem station | 0h50 | 7:07 AM Utrecht Centraal | 1 transfer | |
SPR 5408 · IC 3021 | 6:31 AM Haarlem station | 0h50 | 7:21 AM Utrecht Centraal | 1 transfer | |
5408+ 3021 | 6:31 AM Haarlem station | 0h50 | 7:21 AM Utrecht Centraal | 1 transfer | |
SPR 4810 · IC 2723 | 6:47 AM Haarlem station | 0h49 | 7:36 AM Utrecht Centraal | 1 transfer | |
4810+ 2723 | 6:47 AM Haarlem station | 0h49 | 7:36 AM Utrecht Centraal | 1 transfer | |
5410+ 3023 | 7:01 AM Haarlem station | 0h50 | 7:51 AM Utrecht Centraal | 1 transfer | |
4812+ 2725 | 7:17 AM Haarlem station | 0h49 | 8:06 AM Utrecht Centraal | 1 transfer | |
5412+ 3025 | 7:31 AM Haarlem station | 0h50 | 8:21 AM Utrecht Centraal | 1 transfer | |
4814+ 2727 | 7:47 AM Haarlem station | 0h49 | 8:36 AM Utrecht Centraal | 1 transfer | |
5414+ 3027 | 8:01 AM Haarlem station | 0h50 | 8:51 AM Utrecht Centraal | 1 transfer | |
4816+ 2729 | 8:17 AM Haarlem station | 0h49 | 9:06 AM Utrecht Centraal | 1 transfer | |
SPR 5416 · IC 3029 · SPR 28301 | 8:31 AM Haarlem station | 1h18 | 9:49 AM Utrecht Maliebaan | 2 transfers | |
5416+ 3029 | 8:31 AM Haarlem station | 0h50 | 9:21 AM Utrecht Centraal | 1 transfer | |
2216 · 2731 | 8:40 AM Haarlem station | 0h56 | 9:36 AM Utrecht Centraal | 1 transfer | |
5418+ 3031 | 9:01 AM Haarlem station | 0h50 | 9:51 AM Utrecht Centraal | 1 transfer | |
4820+ 2733 | 9:17 AM Haarlem station | 0h49 | 10:06 AM Utrecht Centraal | 1 transfer | |
SPR 5420 · IC 3033 · SPR 28305 | 9:31 AM Haarlem station | 1h18 | 10:49 AM Utrecht Maliebaan | 2 transfers | |
5420+ 3033 | 9:31 AM Haarlem station | 0h50 | 10:21 AM Utrecht Centraal | 1 transfer | |
4822+ 2735 | 9:47 AM Haarlem station | 0h49 | 10:36 AM Utrecht Centraal | 1 transfer | |
SPR 5424 · IC 3037 · SPR 28309 | 10:31 AM Haarlem station | 1h18 | 11:49 AM Utrecht Maliebaan | 2 transfers | |
SPR 5428 · IC 3041 · SPR 28313 | 11:31 AM Haarlem station | 1h18 | 12:49 PM Utrecht Maliebaan | 2 transfers | |
SPR 5432 · IC 3045 · SPR 28317 | 12:31 PM Haarlem station | 1h18 | 1:49 PM Utrecht Maliebaan | 2 transfers | |
This is the last train of the day. | |||||
Find all the dates and times for this journey
Compare train 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.
Trains from Haarlem to Utrecht run on average 112 times per day, taking around 46m. Cheap train tickets for this journey start at $17 (€14) if you book in advance.
The earliest train runs at 00:01, the last at 23:58. The fastest train covers the 28 miles (46 km) distance in 46m.
Distance 28 miles (46 km) |
Average train duration 46m |
Cheapest ticket price $17 (€14) |
Trains per day 112 |
Fastest train 46m |
First train 12:01 AM |
Last train 11:58 PM |
Cheapest Month Jun |
Cheapest Day Sun |
High Season Apr - Jun |
Low Season Oct - Dec |
Busiest Day Wed |
Least Busy Day Tue |
Best time to book 28 days |
Discover the best of Utrecht — top attractions, local food, transport tips, budget advice, and currency essentials. Plan your perfect Utrecht trip today.
Utrecht’s main art and city museum, known for old masters, design, and the Rietveld Schröder archive. A strong all-round choice for understanding the city’s culture.
A highly popular national museum with historic trains, interactive displays, and family-friendly exhibits in a former station building.
A UNESCO-listed modernist house designed by Gerrit Rietveld, celebrated for its radical architecture and interior flexibility.
Utrecht’s most famous canal street, lined with wharves, bridges, and historic facades. Essential for walking, photos, and atmosphere.
The historic square around the Dom Tower and cathedral, central to Utrecht’s Roman, medieval, and modern identity.
A charming central district of museums, churches, courtyards, and old streets that works well for slow exploration.
A soft bread roll filled with a Dutch meatball, often served with mustard or gravy. It is a classic snack in lunchrooms and snack bars across Utrecht and the Netherlands.
A traditional Utrecht sausage with a distinctive smoky, spiced flavor. It is one of the city’s best-known local specialties and is often eaten sliced with mustard.
A hearty Dutch mash of potatoes with vegetables such as kale, sauerkraut, or endive, usually served in colder months. It is a comforting staple of local home cooking.
Well-known Indonesian restaurant with a stylish setting, famous for rijsttafel and flavorful shared dishes. A reliable choice for a lively dinner.
Popular casual venue focused on organic, vegetarian-friendly food with a relaxed local feel. Good for breakfast, lunch, or a lighter dinner.
Modern café-restaurant known for creative seasonal cooking and a bright, contemporary atmosphere. Especially appreciated for brunch and vegetarian-friendly options.
Prices are above average for the Netherlands. Budget eats are manageable, but hotels, drinks, and central dining can be pricey.
Service is included. Tipping is not required, but rounding up or leaving 5-10% for good restaurant service is appreciated. Small tips for taxis are common.
Official public transport app
Utrecht Centraal, Utrecht -> Dom Tower, Utrecht
Find answers to the most common questions about traveling from Haarlem to Utrecht by train. From journey times and ticket prices to direct connections, first and last departures, and even whether the route is scenic, our FAQs cover everything you need to plan your trip. Whether you’re looking for the fastest train, the cheapest option, or tips for making the most of your visit at Utrecht, this guide helps you travel smarter and with confidence.

Here are some other resources that might have the information you need