The average train between Utrecht and Haarlem takes 55 min and the fastest train takes 46 min. The train runs at least 3 times per hour from Utrecht 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 Utrecht and Haarlem. The earliest departure is at 4:16 AM at night, and the last departure from Utrecht is at 11:54 PM which arrives into Haarlem at 12:51 AM. All services require a transfer, and take on average 55 min. The schedules shown below are for the next available departures.

57 min • 1 change

57 min • 1 change

52 min • 1 change

52 min • 1 change
Want to know about travelling from Utrecht 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 Utrecht to Haarlem. However, there are services departing from Utrecht station and arriving at Haarlem station via Amsterdam Centraal. The journey, including transfers, takes approximately 55 min.
Utrecht to Haarlem train services, operated by Nederlandse Spoorwegen (NS), depart from Utrecht Centraal station.
Utrecht to Haarlem train services, operated by Nederlandse Spoorwegen (NS), arrive at Haarlem station.
Book your Utrecht to Haarlem train tickets online with Nederlandse Spoorwegen (NS).
The distance between Utrecht and Haarlem is 46.2 km. The road distance is 57 km.
You can take a train from Utrecht Centraal to Haarlem via Amsterdam Centraal in around 50 min.