The average train between Zaanstad and Haarlem takes 30 min and the fastest train takes 26 min. The train runs at least 3 times per hour from Zaanstad 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 20 minutes between Zaanstad and Haarlem. The earliest departure is at 1:02 AM at night, and the last departure from Zaanstad is at 8:32 PM which arrives into Haarlem at 8:59 PM. All services require a transfer, and take on average 30 min. The schedules shown below are for the next available departures.

4h 19m • 1 change

45 min • 1 change

27 min • 1 change

27 min • 1 change
Want to know about travelling from Zaanstad 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 Zaanstad to Haarlem. However, there are services departing from Zaanstad station and arriving at Haarlem station via Amsterdam Sloterdijk. The journey, including transfers, takes approximately 30 min.
Zaanstad to Haarlem train services, operated by Nederlandse Spoorwegen (NS), depart from Koog aan de Zaan station.
Zaanstad to Haarlem train services, operated by Nederlandse Spoorwegen (NS), arrive at Haarlem station.
Book your Zaanstad to Haarlem train tickets online with Nederlandse Spoorwegen (NS).
The distance between Zaanstad and Haarlem is 14.4 km. The road distance is 24 km.
You can take a train from Koog aan de Zaan to Haarlem via Amsterdam Sloterdijk in around 27 min.