The cheapest and fastest trains from Haarlem to Rotterdam
Cheapest price
26S$
Average price
30S$
Fastest journey
55 m
Average duration
55 m
Trains per day
131
Distance
52 km
The best way to find a cheap train ticket from Haarlem to Rotterdam is to book your journey as far in advance as possible and to avoid travelling at rush hour.
The average ticket from Haarlem to Rotterdam will cost around 30S$ if you buy it on the day, but you can find cheap train tickets today for only 26S$.
Of the 131 trains that leave Haarlem for Rotterdam every day 42 travel direct so it’s quite easy to avoid journeys where you’ll have to change along the way.
These direct trains cover the 52 km distance in an average of 55 m but if you time it right, some trains will get you there in just 55 m .
The slowest trains will take 55 m and usually involve a change or two along the way, but you might be able to save a few pennies if you’re on a budget.
IC 2314 · SPR 8229 · ICD 24228:10 AM0h58Haarlem station9:08 AMRotterdam Centraal26 S$1One-way2 changes
IC 22197:53 AM0h55Haarlem station8:48 AMRotterdam Centraal26 S$1One-way0 changes
2129 · 353010:36 AM1h01Haarlem station11:37 AMRotterdam Centraal26 S$1One-way1 change
IC 2119 · IC 35208:06 AM1h01Haarlem station9:07 AMRotterdam Centraal26 S$1One-way1 change
23259:23 AM0h55Haarlem station10:18 AMRotterdam Centraal26 S$1One-way0 changes
IC 22197:53 AM0h55Haarlem station8:48 AMRotterdam Centraal26 S$1One-way0 changes
23259:23 AM0h55Haarlem station10:18 AMRotterdam Centraal26 S$1One-way0 changes
IC 23218:23 AM0h55Haarlem station9:18 AMRotterdam Centraal26 S$1One-way0 changes
22238:53 AM0h55Haarlem station9:48 AMRotterdam Centraal26 S$1One-way0 changes
223511:53 AM0h55Haarlem station12:48 PMRotterdam Centraal26 S$1One-way0 changes
Live departures
Haarlem to Rotterdam train times
The table below shows live departures for Haarlem to Rotterdam trains for tomorrow, Tuesday, 30 June. You can also manually refresh the results below to see updated train journeys.
| Provider | Departs | Duration | Arrives | Changes | Tickets |
|---|---|---|---|---|---|
IC 2219 | 7:53 AM Haarlem station | 1h01 | 8:54 AM Rotterdam Blaak | 0 changesdirect | |
IC 2219 | 7:53 AM Haarlem station | 0h55 | 8:48 AM Rotterdam Centraal | 0 changesdirect | |
IC 2114 · SPR 8127+ EUR 9322 | 7:55 AM Haarlem station | 0h58 | 8:53 AM Rotterdam Centraal | 2 changes | |
IC 2114 · SPR 8127 · SPR 5019+ EUR 9322 | 7:55 AM Haarlem station | 1h13 | 9:08 AM Rotterdam Blaak | 3 changes | |
IC 2119 · IC 3520 | 8:06 AM Haarlem station | 1h01 | 9:07 AM Rotterdam Centraal | 1 change | |
IC 2119 · IC 3520 | 8:06 AM Haarlem station | 1h09 | 9:15 AM Rotterdam Blaak | 1 change | |
IC 2314 · SPR 8229 · ICD 2422 | 8:10 AM Haarlem station | 0h58 | 9:08 AM Rotterdam Centraal | 2 changes | |
IC 2314 · SPR 8229 · ICD 2422 · SPR 5219 | 8:10 AM Haarlem station | 1h10 | 9:20 AM Rotterdam Blaak | 3 changes | |
IC 2321 | 8:23 AM Haarlem station | 0h55 | 9:18 AM Rotterdam Centraal | 0 changesdirect | |
IC 2321 | 8:23 AM Haarlem station | 1h01 | 9:24 AM Rotterdam Blaak | 0 changesdirect | |
IC 2121 · IC 3522 | 8:36 AM Haarlem station | 1h01 | 9:37 AM Rotterdam Centraal | 1 change | |
IC 2121 · IC 3522 | 8:36 AM Haarlem station | 1h09 | 9:45 AM Rotterdam Blaak | 1 change | |
2216+ 8231+ 9524 | 8:40 AM Haarlem station | 0h59 | 9:39 AM Rotterdam Centraal | 2 changes | |
IC 2216 · SPR 8231+ ECD 9524 | 8:40 AM Haarlem station | 0h59 | 9:39 AM Rotterdam Centraal | 2 changes | |
2223 | 8:53 AM Haarlem station | 0h55 | 9:48 AM Rotterdam Centraal | 0 changesdirect | |
IC 2223 | 8:53 AM Haarlem station | 0h55 | 9:48 AM Rotterdam Centraal | 0 changesdirect | |
2118+ 8131+ 9428 | 8:55 AM Haarlem station | 0h58 | 9:53 AM Rotterdam Centraal | 2 changes | |
2118+ 8131+ 9328 | 8:55 AM Haarlem station | 0h58 | 9:53 AM Rotterdam Centraal | 2 changes | |
IC 2118 · SPR 8131+ EUR 9328 | 8:55 AM Haarlem station | 0h58 | 9:53 AM Rotterdam Centraal | 2 changes | |
2123 · 3524 | 9:06 AM Haarlem station | 1h01 | 10:07 AM Rotterdam Centraal | 1 change | |
IC 2123 · IC 3524 | 9:06 AM Haarlem station | 1h01 | 10:07 AM Rotterdam Centraal | 1 change | |
IC 2318 · SPR 8233 · ICD 2426 | 9:10 AM Haarlem station | 0h58 | 10:08 AM Rotterdam Centraal | 2 changes | |
2318+ 8233+ 2426 | 9:10 AM Haarlem station | 0h58 | 10:08 AM Rotterdam Centraal | 2 changes | |
2325 | 9:23 AM Haarlem station | 0h55 | 10:18 AM Rotterdam Centraal | 0 changesdirect | |
IC 2325 | 9:23 AM Haarlem station | 0h55 | 10:18 AM Rotterdam Centraal | 0 changesdirect | |
2125 · 3526 | 9:36 AM Haarlem station | 1h01 | 10:37 AM Rotterdam Centraal | 1 change | |
IC 2125 · IC 3526 | 9:36 AM Haarlem station | 1h01 | 10:37 AM Rotterdam Centraal | 1 change | |
2220+ 8235+ 9528 | 9:40 AM Haarlem station | 0h59 | 10:39 AM Rotterdam Centraal | 2 changes | |
IC 2220 · SPR 8235+ ECD 9528 | 9:40 AM Haarlem station | 0h59 | 10:39 AM Rotterdam Centraal | 2 changes | |
2227 | 9:53 AM Haarlem station | 0h55 | 10:48 AM Rotterdam Centraal | 0 changesdirect | |
IC 2227 | 9:53 AM Haarlem station | 0h55 | 10:48 AM Rotterdam Centraal | 0 changesdirect | |
2127 · 3528 | 10:06 AM Haarlem station | 1h01 | 11:07 AM Rotterdam Centraal | 1 change | |
IC 2127 · IC 3528 | 10:06 AM Haarlem station | 1h01 | 11:07 AM Rotterdam Centraal | 1 change | |
IC 2322 · SPR 8237 · ICD 2430 | 10:10 AM Haarlem station | 0h58 | 11:08 AM Rotterdam Centraal | 2 changes | |
2322+ 8237+ 2430 | 10:10 AM Haarlem station | 0h58 | 11:08 AM Rotterdam Centraal | 2 changes | |
2329 | 10:23 AM Haarlem station | 0h55 | 11:18 AM Rotterdam Centraal | 0 changesdirect | |
IC 2329 | 10:23 AM Haarlem station | 0h55 | 11:18 AM Rotterdam Centraal | 0 changesdirect | |
2129 · 3530 | 10:36 AM Haarlem station | 1h01 | 11:37 AM Rotterdam Centraal | 1 change | |
IC 2129 · IC 3530 | 10:36 AM Haarlem station | 1h01 | 11:37 AM Rotterdam Centraal | 1 change | |
2224+ 8239+ 9532 | 10:40 AM Haarlem station | 0h59 | 11:39 AM Rotterdam Centraal | 2 changes | |
IC 2224 · SPR 8239+ ECD 9532 | 10:40 AM Haarlem station | 0h59 | 11:39 AM Rotterdam Centraal | 2 changes | |
2231 | 10:53 AM Haarlem station | 0h55 | 11:48 AM Rotterdam Centraal | 0 changesdirect | |
IC 2231 | 10:53 AM Haarlem station | 0h55 | 11:48 AM Rotterdam Centraal | 0 changesdirect | |
2126+ 8139+ 9340 | 10:55 AM Haarlem station | 0h58 | 11:53 AM Rotterdam Centraal | 2 changes | |
IC 2126 · SPR 8139+ EUR 9340 | 10:55 AM Haarlem station | 0h58 | 11:53 AM Rotterdam Centraal | 2 changes | |
2131 · 3532 | 11:06 AM Haarlem station | 1h01 | 12:07 PM Rotterdam Centraal | 1 change | |
IC 2131 · IC 3532 | 11:06 AM Haarlem station | 1h01 | 12:07 PM Rotterdam Centraal | 1 change | |
2326+ 8241+ 2434 | 11:10 AM Haarlem station | 0h58 | 12:08 PM Rotterdam Centraal | 2 changes | |
2333 | 11:23 AM Haarlem station | 0h55 | 12:18 PM Rotterdam Centraal | 0 changesdirect | |
2133 · 3534 | 11:36 AM Haarlem station | 1h01 | 12:37 PM Rotterdam Centraal | 1 change | |
2228+ 8243+ 9536 | 11:40 AM Haarlem station | 0h59 | 12:39 PM Rotterdam Centraal | 2 changes | |
2235 | 11:53 AM Haarlem station | 0h55 | 12:48 PM Rotterdam Centraal | 0 changesdirect | |
2135 · 3536 | 12:06 PM Haarlem station | 1h01 | 1:07 PM Rotterdam Centraal | 1 change | |
2330+ 8245+ 2438 | 12:10 PM Haarlem station | 0h58 | 1:08 PM Rotterdam Centraal | 2 changes | |
2337 | 12:23 PM Haarlem station | 0h55 | 1:18 PM Rotterdam Centraal | 0 changesdirect | |
2137 · 3538 | 12:36 PM Haarlem station | 1h01 | 1:37 PM Rotterdam Centraal | 1 change | |
2232+ 8247+ 9540 | 12:40 PM Haarlem station | 0h59 | 1:39 PM Rotterdam Centraal | 2 changes | |
2239 | 12:53 PM Haarlem station | 0h55 | 1:48 PM Rotterdam Centraal | 0 changesdirect | |
2134+ 8147+ 9352 | 12:55 PM Haarlem station | 0h58 | 1:53 PM Rotterdam Centraal | 2 changes | |
2139 · 3540 | 1:06 PM Haarlem station | 1h01 | 2:07 PM Rotterdam Centraal | 1 change | |
2334+ 8249+ 2442 | 1:10 PM Haarlem station | 0h58 | 2:08 PM Rotterdam Centraal | 2 changes | |
2341 | 1:23 PM Haarlem station | 0h55 | 2:18 PM Rotterdam Centraal | 0 changesdirect | |
2141 · 3542 | 1:36 PM Haarlem station | 1h01 | 2:37 PM Rotterdam Centraal | 1 change | |
2236+ 8251+ 9544 | 1:40 PM Haarlem station | 0h59 | 2:39 PM Rotterdam Centraal | 2 changes | |
2243 | 1:53 PM Haarlem station | 0h55 | 2:48 PM Rotterdam Centraal | 0 changesdirect | |
2143 · 3544 | 2:06 PM Haarlem station | 1h01 | 3:07 PM Rotterdam Centraal | 1 change | |
2338+ 8253+ 2446 | 2:10 PM Haarlem station | 0h58 | 3:08 PM Rotterdam Centraal | 2 changes | |
2345 | 2:23 PM Haarlem station | 0h55 | 3:18 PM Rotterdam Centraal | 0 changesdirect | |
2145 · 3546 | 2:36 PM Haarlem station | 1h01 | 3:37 PM Rotterdam Centraal | 1 change | |
2240+ 8255+ 9548 | 2:40 PM Haarlem station | 0h59 | 3:39 PM Rotterdam Centraal | 2 changes | |
2247 | 2:53 PM Haarlem station | 0h55 | 3:48 PM Rotterdam Centraal | 0 changesdirect | |
2142+ 8155+ 9364 | 2:55 PM Haarlem station | 0h58 | 3:53 PM Rotterdam Centraal | 2 changes | |
2147 · 3548 | 3:06 PM Haarlem station | 1h01 | 4:07 PM Rotterdam Centraal | 1 change | |
2342+ 8257+ 2450 | 3:10 PM Haarlem station | 0h58 | 4:08 PM Rotterdam Centraal | 2 changes | |
2349 | 3:23 PM Haarlem station | 0h55 | 4:18 PM Rotterdam Centraal | 0 changesdirect | |
2149 · 3550 | 3:36 PM Haarlem station | 1h01 | 4:37 PM Rotterdam Centraal | 1 change | |
2244+ 8259+ 9552 | 3:40 PM Haarlem station | 0h59 | 4:39 PM Rotterdam Centraal | 2 changes | |
2251 | 3:53 PM Haarlem station | 0h55 | 4:48 PM Rotterdam Centraal | 0 changesdirect | |
IC 2251 | 3:53 PM Haarlem station | 0h55 | 4:48 PM Rotterdam Centraal | 0 changesdirect | |
2146+ 8159+ 9370 | 3:55 PM Haarlem station | 0h58 | 4:53 PM Rotterdam Centraal | 2 changes | |
IC 2146 · SPR 8159+ EUR 9370 | 3:55 PM Haarlem station | 0h58 | 4:53 PM Rotterdam Centraal | 2 changes | |
2151 · 3552 | 4:06 PM Haarlem station | 1h01 | 5:07 PM Rotterdam Centraal | 1 change | |
IC 2151 · IC 3552 | 4:06 PM Haarlem station | 1h01 | 5:07 PM Rotterdam Centraal | 1 change | |
IC 2346 · SPR 8261 · ICD 2454 | 4:10 PM Haarlem station | 0h58 | 5:08 PM Rotterdam Centraal | 2 changes | |
2346+ 8261+ 2454 | 4:10 PM Haarlem station | 0h58 | 5:08 PM Rotterdam Centraal | 2 changes | |
2353 | 4:23 PM Haarlem station | 0h55 | 5:18 PM Rotterdam Centraal | 0 changesdirect | |
IC 2353 | 4:23 PM Haarlem station | 0h55 | 5:18 PM Rotterdam Centraal | 0 changesdirect | |
2153 · 3554 | 4:36 PM Haarlem station | 1h01 | 5:37 PM Rotterdam Centraal | 1 change | |
2248+ 8263+ 9556 | 4:40 PM Haarlem station | 0h59 | 5:39 PM Rotterdam Centraal | 2 changes | |
2255 | 4:53 PM Haarlem station | 0h55 | 5:48 PM Rotterdam Centraal | 0 changesdirect | |
2150+ 8163+ 9376 | 4:55 PM Haarlem station | 0h58 | 5:53 PM Rotterdam Centraal | 2 changes | |
2150+ 8163+ 9476 | 4:55 PM Haarlem station | 0h58 | 5:53 PM Rotterdam Centraal | 2 changes | |
2155 · 3556 | 5:06 PM Haarlem station | 1h01 | 6:07 PM Rotterdam Centraal | 1 change | |
2350+ 8265+ 2458 | 5:10 PM Haarlem station | 0h58 | 6:08 PM Rotterdam Centraal | 2 changes | |
2357 | 5:23 PM Haarlem station | 0h55 | 6:18 PM Rotterdam Centraal | 0 changesdirect | |
2157 · 3558 | 5:36 PM Haarlem station | 1h01 | 6:37 PM Rotterdam Centraal | 1 change | |
2252+ 8267+ 9560 | 5:40 PM Haarlem station | 0h59 | 6:39 PM Rotterdam Centraal | 2 changes | |
This is the last train of the day. | |||||
Find all the dates and times for this journey
Compare prices and tickets Haarlem to Rotterdam by train
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.
30 Jun
01 Jul
02 Jul
03 Jul
04 Jul
05 Jul
06 Jul
Why should you book Haarlem to Rotterdam trains with Omio?
Why book with Omio vs NS International | IC Brussel?
- Compare with other providers: On Omio, you can not only buy tickets for NS International | IC Brussel, but also compare tickets for the likes of Intercity, Intercity, NS | BUS or Eurostar to find the best option for your trip from Haarlem to Rotterdam.
- Designed for International Travelers: Omio is in your language including 24/7 customer service and offers multiple payment options, including PayPal, credit cards, and bank transfer, in your preferred currency.
Journey information
Overview: Train from Haarlem to Rotterdam
Trains from Haarlem to Rotterdam run on average 45 times per day, taking around 57m. Cheap train tickets for this journey start at 26S$ if you book in advance.
There are 10 trains per day. The earliest train runs at 00:01, the last at 23:58. The fastest train covers the 52 km distance in 55m.
Distance 52 km |
Average train duration 57m |
Cheapest ticket price 26S$ |
Trains per day 45 |
Direct trains 10 |
Fastest train 55m |
First train 12:01 AM |
Last train 11:58 PM |
Cheapest Month Aug |
Cheapest Day Fri |
High Season Oct - Dec |
Low Season Apr - Jun |
Busiest Day Sun |
Least Busy Day Sat |
Best time to book 35 days |
Train companies: NS International | IC Brussel, Intercity, NS | BUS, Eurostar, Deutsche Bahn, Nederlandse Spoorwegen (NS) from Haarlem to Rotterdam trainsNS International | IC Brussel, Intercity, NS | BUS, Eurostar, Deutsche Bahn, Nederlandse Spoorwegen (NS) trains will get you between Haarlem and Rotterdam from 26S$. With over 1000 travel companies on Omio, you can find the best train times and tickets for your trip.
NS International | IC Brussel
Intercity
Eurostar
Deutsche Bahn
A Bordrestaurant (restaurant car) where you can sit and eat.
A Bordbistro (bistro bar) with snacks, hot meals, and drinks to-go.
At-seat service in 1st class: staff will take your order and serve food/drinks directly to your seat.
Regional trains (RE / RB / S-Bahn):
No onboard catering.
You’re welcome to bring your own food and drinks.
Not included by default.
You can add a seat reservation when booking (recommended for busy routes).
Costs around €4.90 per seat (or €5.90 if booked separately later).
First Class:
Yes, always included in the ticket price.
Allowed for free if they can fit in a transport box (max. size: hand luggage).
Must stay in the box for the entire journey.
Large dogs:
Require a separate (paid) ticket — typically half the price of a regular second-class ticket.
Must be leashed and wear a muzzle while on the train.
Cannot sit on seats.
Assistance dogs:
Travel free of charge.
Do not need a muzzle or leash if medically not required.
Allowed to accompany the passenger at all times.
NS | BUS
Nederlandse Spoorwegen (NS)
FAQs: Haarlem to Rotterdam train
Find answers to the most common questions about traveling from Haarlem to Rotterdam 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 Rotterdam, this guide helps you travel smarter and with confidence.

popular train stations
Important Stations and Airports in Haarlem and Rotterdam
- 6:00 AM - 10:00 PM Monday - Sunday
- Free
- The car park is open 7 days a week, with access from the main entrance
- Restaurant Morris
- De Ripper
- Outside the main entrance
- Elevators, ramps
- €0.70
- Amrâth Grand Hotel Frans Hals
- Hotel Lion d'Or
- Carlton Square Hotel
- Located in the main hall
- 960 places, covered
- Avis
- Europcar
- Located in the main hall
- Free
- Hall 1: main entrance, platform 1-6 for trains to Amsterdam, Rotterdam, and regional destinations
- Train: NS Intercity, Sprinter
- Bus: Several lines available
- Mon - Sun: 00:00 - 24:00
- Free Wi-Fi in the station
- Luggage lockers are located at the north side of the station, next to the escalator to Platform 15. A small safe costs €6.00 and a large safe costs €9.00 for 24 hours
- Smullers
- Albert Heijn to go
- Starbucks
- La Place
- Julia's
- Ekmekci
- LEON
- The Doner Company
- StationsHuiskamer
- De Broodzaak
- & more
- Escalators, elevators, wheelchair access, personalized mobility assistance
- Rotterdam Marriott Hotel
- Layin’ Rotterdam Central
- Hostel Ani & Haakien
- Mon - Sun: 00:00 - 24:00
- Located inside the central hall
- Subway lines: D, E
- Bus lines: 33, 34, 38, 39, 40, 44, 48
- Tram lines: 4, 7, 8, 12, 20, 21, 23, 24, 25
- Train lines: NS Intercity, NS Intercity Direct, NS Sprinter, NS Nachtnet, Thalys, Eurostar
- 6:00 AM - 11:00 PM Monday - Sunday
- Free
- The car park is open 7 days a week from 5:00 a.m. to 1:00 a.m. Departures can be made outside of opening hours. You can access the car park at Blaak 1
- Restaurant Fitzgerald
- Markthal Rotterdam
- Outside the main entrance
- Ramps
- €0.70
- Motto by Hilton Rotterdam Blaak
- citizenM Rotterdam
- Ibis Rotterdam City Centre
- Located in the main hall
- 120 places, covered
- Avis
- Europcar
- Located in the main hall
- Free
- Hall 1: main entrance, platform 1-4 for trains and metro services
- Hall 2: access to tram and bus connections
- Metro: Line A, Line B, Line C
- Tram: Line 21, Line 24
- Bus: Several lines available
More options for your journey from Haarlem to Rotterdam
Here are some other resources that might have the information you need






