The average train between Zaandam and Haarlem takes 27 min and the fastest train takes 23 min. The train runs at least 6 times per hour from Zaandam to Haarlem. The journey time may be longer on weekends and holidays; use the search form on this page to search for a specific travel date.
Trains run every 10 minutes between Zaandam and Haarlem. The earliest departure is at 1:05 AM at night, and the last departure from Zaandam is at 12:08 PM which arrives into Haarlem at 12:35 PM. All services require a transfer, and take on average 27 min. The schedules shown below are for the next available departures.

4h 16m • 1 change

34 min • 1 change

24 min • 1 change

27 min • 1 change
Want to know about travelling from Zaandam to Haarlem? We have put together a list of the most frequently asked questions from our users such as: What is the cheapest mode of transport? What is the quickest option? How much do tickets usually cost? and many more.
No, there is no direct train from Zaandam to Haarlem. However, there are services departing from Zaandam station and arriving at Haarlem station via Amsterdam Sloterdijk. The journey, including transfers, takes approximately 27 min.
Zaandam to Haarlem train services, operated by Nederlandse Spoorwegen (NS), depart from Zaandam station.
Zaandam to Haarlem train services, operated by Nederlandse Spoorwegen (NS), arrive at Haarlem station.
Book your Zaandam to Haarlem train tickets online with Nederlandse Spoorwegen (NS).
The distance between Zaandam and Haarlem is 14.4 km. The road distance is 21 km.
You can take a train from Zaandam to Haarlem via Amsterdam Sloterdijk in around 23 min.