The cheapest and fastest trains from Amsterdam to Haarlem
Cheapest price
€6
Average price
€6
Fastest journey
15 m
Average duration
15 m
Trains per day
128
Distance
17 km
The best way to find a cheap train ticket from Amsterdam to Haarlem is to book your journey as far in advance as possible and to avoid traveling at rush hour.
The average ticket from Amsterdam to Haarlem will cost around €6 if you buy it on the day, but the cheapest tickets can be found for only €6.
Of the 128 trains that leave Amsterdam for Haarlem on Mon, Feb 23, 128 travel direct so it’s quite easy to avoid journeys where you’ll have to change along the way.
On Mon, Feb 23 the direct trains cover the 17 km distance in an average of 15 m but if you time it right, some trains will get you there in just 15 m .
On Mon, Feb 23 the slowest trains will take 15 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.
2145
4853
2139
2149
5429
2145
2139
2149
2271
2353Travel Information
Compare bus and train for Amsterdam to Haarlem
Omio recommends booking the train as it is the most popular option from Amsterdam to Haarlem among Omio's users. If you are prioritising price take the bus with prices starting from €3. For those with little time consider booking a train which can get you there in 16m. The ticket price range depends on the travel mode: a bus costs an average of €3, and a train costs an average of €5.
Distance: 17 km
Compare train with
Most popular Train | Bus |
|---|---|
€6 Average price | €3 Average price Cheapest |
46m Average total duration Fastest 16m Onboard + 30m Additional time* | 1h 0m Average total duration 30m Onboard + 30m Additional time* |
![]() Most popular train company | ![]() Most popular bus company |
Direct Options | Direct Options |
Live departures
Amsterdam to Haarlem train times
The table below shows live departures for Amsterdam to Haarlem trains for today, Sunday, February 22. You can also manually refresh the results below to see updated train journeys.
| Provider | Departs | Duration | Arrives | Transfers | Tickets |
|---|---|---|---|---|---|
2271 | 7:36 PM Amsterdam Centraal | 0h15 | 7:51 PM Haarlem station | 0 transfersDirect | |
5471 | 7:41 PM Amsterdam Centraal | 0h18 | 7:59 PM Haarlem station | 0 transfersDirect | |
2171 | 7:50 PM Amsterdam Centraal | 0h15 | 8:05 PM Haarlem station | 0 transfersDirect | |
4871 | 7:55 PM Amsterdam Centraal | 0h19 | 8:14 PM Haarlem station | 0 transfersDirect | |
2373 | 8:06 PM Amsterdam Centraal | 0h15 | 8:21 PM Haarlem station | 0 transfersDirect | |
5473 | 8:11 PM Amsterdam Centraal | 0h18 | 8:29 PM Haarlem station | 0 transfersDirect | |
2173 | 8:20 PM Amsterdam Centraal | 0h15 | 8:35 PM Haarlem station | 0 transfersDirect | |
4873 | 8:25 PM Amsterdam Centraal | 0h19 | 8:44 PM Haarlem station | 0 transfersDirect | |
2275 | 8:36 PM Amsterdam Centraal | 0h15 | 8:51 PM Haarlem station | 0 transfersDirect | |
5475 | 8:41 PM Amsterdam Centraal | 0h18 | 8:59 PM Haarlem station | 0 transfersDirect | |
2175 | 8:50 PM Amsterdam Centraal | 0h15 | 9:05 PM Haarlem station | 0 transfersDirect | |
4875 | 8:55 PM Amsterdam Centraal | 0h19 | 9:14 PM Haarlem station | 0 transfersDirect | |
2377 | 9:06 PM Amsterdam Centraal | 0h15 | 9:21 PM Haarlem station | 0 transfersDirect | |
5477 | 9:11 PM Amsterdam Centraal | 0h18 | 9:29 PM Haarlem station | 0 transfersDirect | |
4877 | 9:25 PM Amsterdam Centraal | 0h19 | 9:44 PM Haarlem station | 0 transfersDirect | |
2279 | 9:36 PM Amsterdam Centraal | 0h15 | 9:51 PM Haarlem station | 0 transfersDirect | |
5479 | 9:41 PM Amsterdam Centraal | 0h18 | 9:59 PM Haarlem station | 0 transfersDirect | |
4879 | 9:55 PM Amsterdam Centraal | 0h19 | 10:14 PM Haarlem station | 0 transfersDirect | |
2381 | 10:06 PM Amsterdam Centraal | 0h15 | 10:21 PM Haarlem station | 0 transfersDirect | |
5481 | 10:11 PM Amsterdam Centraal | 0h18 | 10:29 PM Haarlem station | 0 transfersDirect | |
4881 | 10:25 PM Amsterdam Centraal | 0h19 | 10:44 PM Haarlem station | 0 transfersDirect | |
2283 | 10:36 PM Amsterdam Centraal | 0h15 | 10:51 PM Haarlem station | 0 transfersDirect | |
5483 | 10:41 PM Amsterdam Centraal | 0h18 | 10:59 PM Haarlem station | 0 transfersDirect | |
4883 | 10:55 PM Amsterdam Centraal | 0h19 | 11:14 PM Haarlem station | 0 transfersDirect | |
2385 | 11:06 PM Amsterdam Centraal | 0h15 | 11:21 PM Haarlem station | 0 transfersDirect | |
5485 | 11:11 PM Amsterdam Centraal | 0h18 | 11:29 PM Haarlem station | 0 transfersDirect | |
4885 | 11:25 PM Amsterdam Centraal | 0h19 | 11:44 PM Haarlem station | 0 transfersDirect | |
2287 | 11:36 PM Amsterdam Centraal | 0h15 | 11:51 PM Haarlem station | 0 transfersDirect | |
4887 | 11:55 PM Amsterdam Centraal | 0h19 | 12:14 AM Haarlem station | 0 transfersDirect | |
| Monday, February 23 | |||||
2321 | 7:06 AM Amsterdam Centraal | 0h15 | 7:21 AM Haarlem station | 0 transfersDirect | |
5421 | 7:11 AM Amsterdam Centraal | 0h18 | 7:29 AM Haarlem station | 0 transfersDirect | |
2121 | 7:20 AM Amsterdam Centraal | 0h15 | 7:35 AM Haarlem station | 0 transfersDirect | |
4821 | 7:25 AM Amsterdam Centraal | 0h19 | 7:44 AM Haarlem station | 0 transfersDirect | |
2223 | 7:36 AM Amsterdam Centraal | 0h15 | 7:51 AM Haarlem station | 0 transfersDirect | |
5423 | 7:41 AM Amsterdam Centraal | 0h18 | 7:59 AM Haarlem station | 0 transfersDirect | |
2123 | 7:50 AM Amsterdam Centraal | 0h15 | 8:05 AM Haarlem station | 0 transfersDirect | |
4823 | 7:55 AM Amsterdam Centraal | 0h19 | 8:14 AM Haarlem station | 0 transfersDirect | |
2325 | 8:06 AM Amsterdam Centraal | 0h15 | 8:21 AM Haarlem station | 0 transfersDirect | |
5425 | 8:11 AM Amsterdam Centraal | 0h18 | 8:29 AM Haarlem station | 0 transfersDirect | |
2125 | 8:20 AM Amsterdam Centraal | 0h15 | 8:35 AM Haarlem station | 0 transfersDirect | |
4825 | 8:25 AM Amsterdam Centraal | 0h19 | 8:44 AM Haarlem station | 0 transfersDirect | |
2227 | 8:36 AM Amsterdam Centraal | 0h15 | 8:51 AM Haarlem station | 0 transfersDirect | |
5427 | 8:41 AM Amsterdam Centraal | 0h18 | 8:59 AM Haarlem station | 0 transfersDirect | |
2127 | 8:50 AM Amsterdam Centraal | 0h15 | 9:05 AM Haarlem station | 0 transfersDirect | |
4827 | 8:55 AM Amsterdam Centraal | 0h19 | 9:14 AM Haarlem station | 0 transfersDirect | |
2329 | 9:06 AM Amsterdam Centraal | 0h15 | 9:21 AM Haarlem station | 0 transfersDirect | |
5429 | 9:11 AM Amsterdam Centraal | 0h18 | 9:29 AM Haarlem station | 0 transfersDirect | |
2129 | 9:20 AM Amsterdam Centraal | 0h15 | 9:35 AM Haarlem station | 0 transfersDirect | |
4829 | 9:25 AM Amsterdam Centraal | 0h19 | 9:44 AM Haarlem station | 0 transfersDirect | |
2231 | 9:36 AM Amsterdam Centraal | 0h15 | 9:51 AM Haarlem station | 0 transfersDirect | |
5431 | 9:41 AM Amsterdam Centraal | 0h18 | 9:59 AM Haarlem station | 0 transfersDirect | |
2131 | 9:50 AM Amsterdam Centraal | 0h15 | 10:05 AM Haarlem station | 0 transfersDirect | |
4831 | 9:55 AM Amsterdam Centraal | 0h19 | 10:14 AM Haarlem station | 0 transfersDirect | |
2333 | 10:06 AM Amsterdam Centraal | 0h15 | 10:21 AM Haarlem station | 0 transfersDirect | |
5433 | 10:11 AM Amsterdam Centraal | 0h18 | 10:29 AM Haarlem station | 0 transfersDirect | |
2133 | 10:20 AM Amsterdam Centraal | 0h15 | 10:35 AM Haarlem station | 0 transfersDirect | |
4833 | 10:25 AM Amsterdam Centraal | 0h19 | 10:44 AM Haarlem station | 0 transfersDirect | |
2235 | 10:36 AM Amsterdam Centraal | 0h15 | 10:51 AM Haarlem station | 0 transfersDirect | |
5435 | 10:41 AM Amsterdam Centraal | 0h18 | 10:59 AM Haarlem station | 0 transfersDirect | |
2135 | 10:50 AM Amsterdam Centraal | 0h15 | 11:05 AM Haarlem station | 0 transfersDirect | |
4835 | 10:55 AM Amsterdam Centraal | 0h19 | 11:14 AM Haarlem station | 0 transfersDirect | |
2337 | 11:06 AM Amsterdam Centraal | 0h15 | 11:21 AM Haarlem station | 0 transfersDirect | |
5437 | 11:11 AM Amsterdam Centraal | 0h18 | 11:29 AM Haarlem station | 0 transfersDirect | |
2137 | 11:20 AM Amsterdam Centraal | 0h15 | 11:35 AM Haarlem station | 0 transfersDirect | |
4837 | 11:25 AM Amsterdam Centraal | 0h19 | 11:44 AM Haarlem station | 0 transfersDirect | |
2239 | 11:36 AM Amsterdam Centraal | 0h15 | 11:51 AM Haarlem station | 0 transfersDirect | |
5439 | 11:41 AM Amsterdam Centraal | 0h18 | 11:59 AM Haarlem station | 0 transfersDirect | |
2139 | 11:50 AM Amsterdam Centraal | 0h15 | 12:05 PM Haarlem station | 0 transfersDirect | |
4839 | 11:55 AM Amsterdam Centraal | 0h19 | 12:14 PM Haarlem station | 0 transfersDirect | |
2341 | 12:06 PM Amsterdam Centraal | 0h15 | 12:21 PM Haarlem station | 0 transfersDirect | |
5441 | 12:11 PM Amsterdam Centraal | 0h18 | 12:29 PM Haarlem station | 0 transfersDirect | |
2141 | 12:20 PM Amsterdam Centraal | 0h15 | 12:35 PM Haarlem station | 0 transfersDirect | |
4841 | 12:25 PM Amsterdam Centraal | 0h19 | 12:44 PM Haarlem station | 0 transfersDirect | |
2243 | 12:36 PM Amsterdam Centraal | 0h15 | 12:51 PM Haarlem station | 0 transfersDirect | |
5443 | 12:41 PM Amsterdam Centraal | 0h18 | 12:59 PM Haarlem station | 0 transfersDirect | |
2143 | 12:50 PM Amsterdam Centraal | 0h15 | 1:05 PM Haarlem station | 0 transfersDirect | |
4843 | 12:55 PM Amsterdam Centraal | 0h19 | 1:14 PM Haarlem station | 0 transfersDirect | |
2345 | 1:06 PM Amsterdam Centraal | 0h15 | 1:21 PM Haarlem station | 0 transfersDirect | |
5445 | 1:11 PM Amsterdam Centraal | 0h18 | 1:29 PM Haarlem station | 0 transfersDirect | |
2145 | 1:20 PM Amsterdam Centraal | 0h15 | 1:35 PM Haarlem station | 0 transfersDirect | |
4845 | 1:25 PM Amsterdam Centraal | 0h19 | 1:44 PM Haarlem station | 0 transfersDirect | |
2247 | 1:36 PM Amsterdam Centraal | 0h15 | 1:51 PM Haarlem station | 0 transfersDirect | |
5447 | 1:41 PM Amsterdam Centraal | 0h18 | 1:59 PM Haarlem station | 0 transfersDirect | |
2147 | 1:50 PM Amsterdam Centraal | 0h15 | 2:05 PM Haarlem station | 0 transfersDirect | |
4847 | 1:55 PM Amsterdam Centraal | 0h19 | 2:14 PM Haarlem station | 0 transfersDirect | |
2349 | 2:06 PM Amsterdam Centraal | 0h15 | 2:21 PM Haarlem station | 0 transfersDirect | |
5449 | 2:11 PM Amsterdam Centraal | 0h18 | 2:29 PM Haarlem station | 0 transfersDirect | |
2149 | 2:20 PM Amsterdam Centraal | 0h15 | 2:35 PM Haarlem station | 0 transfersDirect | |
4849 | 2:25 PM Amsterdam Centraal | 0h19 | 2:44 PM Haarlem station | 0 transfersDirect | |
2251 | 2:36 PM Amsterdam Centraal | 0h15 | 2:51 PM Haarlem station | 0 transfersDirect | |
5451 | 2:41 PM Amsterdam Centraal | 0h18 | 2:59 PM Haarlem station | 0 transfersDirect | |
2151 | 2:50 PM Amsterdam Centraal | 0h15 | 3:05 PM Haarlem station | 0 transfersDirect | |
4851 | 2:55 PM Amsterdam Centraal | 0h19 | 3:14 PM Haarlem station | 0 transfersDirect | |
2353 | 3:06 PM Amsterdam Centraal | 0h15 | 3:21 PM Haarlem station | 0 transfersDirect | |
5453 | 3:11 PM Amsterdam Centraal | 0h18 | 3:29 PM Haarlem station | 0 transfersDirect | |
2153 | 3:20 PM Amsterdam Centraal | 0h15 | 3:35 PM Haarlem station | 0 transfersDirect | |
4853 | 3:25 PM Amsterdam Centraal | 0h19 | 3:44 PM Haarlem station | 0 transfersDirect | |
2255 | 3:36 PM Amsterdam Centraal | 0h15 | 3:51 PM Haarlem station | 0 transfersDirect | |
5455 | 3:41 PM Amsterdam Centraal | 0h18 | 3:59 PM Haarlem station | 0 transfersDirect | |
2155 | 3:50 PM Amsterdam Centraal | 0h15 | 4:05 PM Haarlem station | 0 transfersDirect | |
4855 | 3:55 PM Amsterdam Centraal | 0h19 | 4:14 PM Haarlem station | 0 transfersDirect | |
2357 | 4:06 PM Amsterdam Centraal | 0h15 | 4:21 PM Haarlem station | 0 transfersDirect | |
5457 | 4:11 PM Amsterdam Centraal | 0h18 | 4:29 PM Haarlem station | 0 transfersDirect | |
2157 | 4:20 PM Amsterdam Centraal | 0h15 | 4:35 PM Haarlem station | 0 transfersDirect | |
4857 | 4:25 PM Amsterdam Centraal | 0h19 | 4:44 PM Haarlem station | 0 transfersDirect | |
2259 | 4:36 PM Amsterdam Centraal | 0h15 | 4:51 PM Haarlem station | 0 transfersDirect | |
5459 | 4:41 PM Amsterdam Centraal | 0h18 | 4:59 PM Haarlem station | 0 transfersDirect | |
2159 | 4:50 PM Amsterdam Centraal | 0h15 | 5:05 PM Haarlem station | 0 transfersDirect | |
4859 | 4:55 PM Amsterdam Centraal | 0h19 | 5:14 PM Haarlem station | 0 transfersDirect | |
2361 | 5:06 PM Amsterdam Centraal | 0h15 | 5:21 PM Haarlem station | 0 transfersDirect | |
5461 | 5:11 PM Amsterdam Centraal | 0h18 | 5:29 PM Haarlem station | 0 transfersDirect | |
2161 | 5:20 PM Amsterdam Centraal | 0h15 | 5:35 PM Haarlem station | 0 transfersDirect | |
4861 | 5:25 PM Amsterdam Centraal | 0h19 | 5:44 PM Haarlem station | 0 transfersDirect | |
2263 | 5:36 PM Amsterdam Centraal | 0h15 | 5:51 PM Haarlem station | 0 transfersDirect | |
5463 | 5:41 PM Amsterdam Centraal | 0h18 | 5:59 PM Haarlem station | 0 transfersDirect | |
2163 | 5:50 PM Amsterdam Centraal | 0h15 | 6:05 PM Haarlem station | 0 transfersDirect | |
4863 | 5:55 PM Amsterdam Centraal | 0h19 | 6:14 PM Haarlem station | 0 transfersDirect | |
2365 | 6:06 PM Amsterdam Centraal | 0h15 | 6:21 PM Haarlem station | 0 transfersDirect | |
5465 | 6:11 PM Amsterdam Centraal | 0h18 | 6:29 PM Haarlem station | 0 transfersDirect | |
2165 | 6:20 PM Amsterdam Centraal | 0h15 | 6:35 PM Haarlem station | 0 transfersDirect | |
4865 | 6:25 PM Amsterdam Centraal | 0h19 | 6:44 PM Haarlem station | 0 transfersDirect | |
2267 | 6:36 PM Amsterdam Centraal | 0h15 | 6:51 PM Haarlem station | 0 transfersDirect | |
5467 | 6:41 PM Amsterdam Centraal | 0h18 | 6:59 PM Haarlem station | 0 transfersDirect | |
2167 | 6:50 PM Amsterdam Centraal | 0h15 | 7:05 PM Haarlem station | 0 transfersDirect | |
4867 | 6:55 PM Amsterdam Centraal | 0h19 | 7:14 PM Haarlem station | 0 transfersDirect | |
2369 | 7:06 PM Amsterdam Centraal | 0h15 | 7:21 PM Haarlem station | 0 transfersDirect | |
5469 | 7:11 PM Amsterdam Centraal | 0h18 | 7:29 PM Haarlem station | 0 transfersDirect | |
2169 | 7:20 PM Amsterdam Centraal | 0h15 | 7:35 PM Haarlem station | 0 transfersDirect | |
4869 | 7:25 PM Amsterdam Centraal | 0h19 | 7:44 PM Haarlem station | 0 transfersDirect | |
This is the last train of the day. | |||||
Find all the dates and times for this journey
Compare prices and tickets Amsterdam to Haarlem by bus or train
Compare bus and 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.
Feb 23
Feb 24
Feb 25
Feb 26
Feb 27
Feb 28
Mar 01
Why should you book Amsterdam to Haarlem trains with Omio?
Why book with Omio vs Intercity?
- Compare with other providers: On Omio, you can not only buy tickets for Intercity, but also compare tickets for the likes of NS International | IC Brussel, PKP Intercity or Deutsche Bahn to find the best option for your trip from Amsterdam to Haarlem.
- 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.
- Compare all your options: Omio allows you to compare Intercity with all available travel options, which are bus and train to ensure you get the best deal for traveling from Amsterdam to Haarlem.
Why book with Omio over Trainline or Wanderu?
- Compare with other providers: On Omio, you can also compare tickets for the likes of NS International | IC Brussel, PKP Intercity or Deutsche Bahn to find the best option for your trip from Amsterdam to Haarlem.
- Multiple modes of transport: Omio allows you to compare travel options including bus and train to find the ideal travel option from Amsterdam to Haarlem.
How far in advance should I book train tickets from Amsterdam to Haarlem?
Journey information
Overview: Train from Amsterdam to Haarlem
Trains from Amsterdam to Haarlem run on average 332 times per day, taking around 16m. Cheap train tickets for this journey start at €5 but you can travel from only €3 by bus.
There are 61 trains per day. The earliest train runs at 00:01, the last at 23:58. The fastest train covers the 17 km distance in 15m.
Distance 17 km |
Average train duration 16m |
Cheapest ticket price €5 |
Trains per day 332 |
Direct trains 61 |
Fastest train 15m |
First train 00:01 |
Last train 23:58 |
Train companies: Intercity, NS International | IC Brussel, PKP Intercity, Deutsche Bahn from Amsterdam to Haarlem trainsIntercity, NS International | IC Brussel, PKP Intercity, Deutsche Bahn trains will get you between Amsterdam and Haarlem from €3. With over 1000 travel companies on Omio, you can find the best train times and tickets for your trip.
Intercity
NS International | IC Brussel
PKP Intercity
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.
FAQs: Trains from Amsterdam to Haarlem
Find answers to the most common questions about traveling from Amsterdam to Haarlem 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 Haarlem, this guide helps you travel smarter and with confidence.

popular train stations
Popular train stations from Amsterdam to Haarlem
- Mon - Sun: 05:50 - 20:59
- Free WiFi in all station areas.
- Located on the ground floor near the front entrance in the eastern walkway, near the stairs to platform 2. Open daily from 07:00 to 01:00.
- De Broodzaak
- Kyoto Sushi & Grill
- Starbucks
- The Doner Company
- Wagamama
- Wurst & Schnitzelhaus
- Smullers
- Burger King
- Grand Café First Class
- Burgerij
- & many more
- The station is fully accessible, including lifts to the platforms.
- NH Collection Amsterdam Barbizon Palace
- Park Plaza Victoria Amsterdam
- Art’otel Amsterdam
- Located in a small white building in front of the station's main entrance and at various points in the main passenger hall.
- 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
Most popular train connections from Amsterdam
More options for your journey from Amsterdam to Haarlem
Here are some other resources that might have the information you need
