There are 12 ways to get from Milan to Haarlem by plane, train (Trenitalia, Eurostar), bus, train, night train, car, or car train
Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2Rio's travel planner.
Fly Milan Linate Airport to Amsterdam Airport Schiphol
best- Fly from Milan Linate Airport (LIN) to Amsterdam Airport Schiphol (AMS)plane LIN - AMS
4h 33m€69–228Train to Milano Malpensa Airport, fly to Amsterdam Airport Schiphol
cheapest- Take the train from Milano Porta Garibaldi to Malpensa Aeroporto T1train
- Fly from Milano Malpensa Airport (MXP) to Amsterdam Airport Schiphol (AMS)plane MXP - AMS
5h 15m€56–211Train
- Take the train from Milano Centrale to Chambery Challes Les Eauxtrain Fr
- Take the train from Chambery Challes Les Eaux to Rotterdam Centraaltrain
- Take the train from Rotterdam Centraal to Haarlemtrain
11h 40m€408–669Bus
- Take the bus from Milano, Autostazione Lampugnano to Amsterdam City Center - Sloterdijkbus BlaBlaCar Bus
17h 22m€87–143Train, night train
- Take the train from Milano Porta Garibaldi to Como S.Giovannitrain S11
- Take the train from Como S. Giovanni to Zürich HBtrain Ec
- Take the nighttrain from Zürich HB to Amsterdam Centraalnighttrain Nj
17h 10m€381–653Train to Turin Caselle Airport, fly to Amsterdam Airport Schiphol
- Take the train from Milano Centrale to Torino Porta di Susatrain
- Fly from Turin Caselle Airport (TRN) to Amsterdam Airport Schiphol (AMS)plane TRN - AMS
5h 55m€106–336Fly Milan Linate Airport to Brussels Airport, train
- Fly from Milan Linate Airport (LIN) to Brussels Airport (BRU)plane LIN - BRU
- Take the train from Brussels Airport-Zaventem to Rotterdam Centraaltrain
- Take the train from Rotterdam Centraal to Haarlemtrain
6h 55m€59–266Train to Genoa Cristoforo Colombo Airport, fly to Amsterdam Airport Schiphol
- Take the train from Milano Centrale to Genova P.Za Principetrain
- Fly from Genoa Cristoforo Colombo Airport (GOA) to Amsterdam Airport Schiphol (AMS)plane GOA - AMS
6h 52m€132–333Bus to Il Caravaggio International Airport, fly to Eindhoven Airport, train
- Take the bus from Piazza Luigi di Savoia to Milan Bergamo Orio al Serio Airportbus
- Fly from Il Caravaggio International Airport (BGY) to Eindhoven Airport (EIN)plane BGY - EIN
- Take the train from Eindhoven Centraal to Amsterdam Centraaltrain
7h 5m€66–309Bus via Duomo M1
- Take the bus from Milan to Amsterdam Sloterdijkbus FlixBus N487 / ...
17h 52m€98–155Drive 1,067 km
- Drive from Milan to Haarlemcar 1,067 km
10h 33m€197–285Drive, car train
- Drive from Milan to Augsburg Hbfcar
- Take the cartrain from Augsburg Hbf to Hannover Hbfcartrain
- Drive from Hannover Hbf to Haarlemcar
15h 11m€240–338
Milan to Haarlem by train
Comparing Your Travel Options
The cheapest way to get from Milan to Haarlem is to bus which costs €85 - €150 and takes 17h 22m.
The fastest way to get from Milan to Haarlem is to fly which takes 4h 33m and costs €65 - €230.
No, there is no direct bus from Milan to Haarlem. However, there are services departing from Milano, Autostazione Lampugnano and arriving at Amsterdam City Center - Sloterdijk via . The journey, including transfers, takes approximately 17h 22m.
No, there is no direct train from Milan to Haarlem. However, there are services departing from Milano Centrale and arriving at Haarlem via Chambery Challes Les Eaux and Rotterdam Centraal. The journey, including transfers, takes approximately 11h 40m.
The distance between Milan and Haarlem is 862 km. The road distance is 1067 km.
The best way to get from Milan to Haarlem without a car is to train which takes 11h 40m and costs €400 - €700.
It takes approximately 4h 33m to get from Milan to Haarlem, including transfers.
Milan to Haarlem bus services, operated by BlaBlaCar Bus, depart from Milano, Autostazione Lampugnano station.
Milan to Haarlem train services, operated by Trenitalia, depart from Milano Centrale station.
The best way to get from Milan to Haarlem is to fly which takes 4h 33m and costs €65 - €230. Alternatively, you can train, which costs €400 - €700 and takes 11h 40m, you could also bus, which costs €85 - €150 and takes 17h 22m.
What companies run services between Milan, Italy and Haarlem, Netherlands?
easyJet, ITA Airways, and three other airlines fly from Milan Linate Airport (LIN) to Amsterdam Airport Schiphol (AMS) hourly. Alternatively, you can take a train from Milano Centrale to Haarlem via Chambery Challes Les Eaux and Rotterdam Centraal in around 11h 40m.
- Website
- easyjet.com
Flights from Milan Linate Airport to Amsterdam Airport Schiphol
- Ave. Duration
- 1h 56m
- When
- Every day
- Estimated price
- €60–210
Flights from Milan Linate Airport to Amsterdam Airport Schiphol via Geneva
- Ave. Duration
- 4h 5m
- When
- Monday and Friday
- Estimated price
- €60–210
Flights from Milano Malpensa Airport to Amsterdam Airport Schiphol
- Ave. Duration
- 2h 3m
- When
- Every day
- Estimated price
- €45–180
Flights from Milan Linate Airport to Brussels Airport
- Ave. Duration
- 1h 32m
- When
- Every day
- Estimated price
- €30–150
- Website
- klm.com
Flights from Milan Linate Airport to Amsterdam Airport Schiphol
- Ave. Duration
- 1h 50m
- When
- Every day
- Estimated price
- €55–340
Flights from Turin Caselle Airport to Amsterdam Airport Schiphol
- Ave. Duration
- 1h 52m
- When
- Every day
- Estimated price
- €55–340
Flights from Turin Caselle Airport to Amsterdam Airport Schiphol via Paris Charles de Gaulle
- Ave. Duration
- 3h 58m
- When
- Every day
- Estimated price
- €60–360
Flights from Milan Linate Airport to Brussels Airport via Amsterdam Airport Schiphol
- Ave. Duration
- 3h 40m
- When
- Every day
- Estimated price
- €60–350
Flights from Genoa Cristoforo Colombo Airport to Amsterdam Airport Schiphol
- Ave. Duration
- 2h 2m
- When
- Every day
- Estimated price
- €65–400
- Website
- lufthansa.com
Flights from Milan Linate Airport to Amsterdam Airport Schiphol via Frankfurt
- Ave. Duration
- 3h 55m
- When
- Every day
- Estimated price
- €100–600
Flights from Milan Linate Airport to Amsterdam Airport Schiphol via Munich
- Ave. Duration
- 4h 30m
- When
- Saturday
- Estimated price
- €100–240
Flights from Milano Malpensa Airport to Amsterdam Airport Schiphol via Frankfurt
- Ave. Duration
- 4h 20m
- When
- Every day
- Estimated price
- €95–480
Flights from Turin Caselle Airport to Amsterdam Airport Schiphol via Frankfurt
- Ave. Duration
- 3h 57m
- When
- Monday, Saturday, Sunday, Tuesday, Thursday, and Friday
- Estimated price
- €110–600
Flights from Genoa Cristoforo Colombo Airport to Amsterdam Airport Schiphol via Munich
- Ave. Duration
- 3h 52m
- When
- Every day
- Estimated price
- €120–430
Flights from Genoa Cristoforo Colombo Airport to Amsterdam Airport Schiphol via Frankfurt
- Ave. Duration
- 4h 15m
- When
- Sunday
- Estimated price
- €95–300
- Website
- ita-airways.com
Flights from Milan Linate Airport to Amsterdam Airport Schiphol
- Ave. Duration
- 2h
- When
- Every day
- Estimated price
- €85–210
Flights from Milan Linate Airport to Brussels Airport
- Ave. Duration
- 1h 35m
- When
- Every day
- Estimated price
- €75–290
- Website
- ryanair.com
Flights from Il Caravaggio International Airport to Eindhoven Airport
- Ave. Duration
- 1h 45m
- When
- Every day
- Estimated price
- €40–250
Flights from Il Caravaggio International Airport to Eindhoven Airport via London Stansted
- Ave. Duration
- 4h 13m
- When
- Saturday, Sunday, and Tuesday
- Estimated price
- €40–250
- Website
- brusselsairlines.com
Flights from Milan Linate Airport to Brussels Airport
- Ave. Duration
- 1h 35m
- When
- Every day
- Estimated price
- €75–290
- Website
- airfrance.com
Flights from Turin Caselle Airport to Amsterdam Airport Schiphol via Paris Charles de Gaulle
- Ave. Duration
- 3h 58m
- When
- Every day
- Estimated price
- €60–360
- Phone
- +39.06.5210550
- Website
- Trenitalia
Train from Milano Centrale to Chambery Challes Les Eaux
- Ave. Duration
- 3h 26m
- Frequency
- Twice daily
- Estimated price
- €40–55
- Website
- Trenitalia
Train from Milano Centrale to Genova P.Za Principe
- Ave. Duration
- 1h 53m
- Frequency
- Every 4 hours
- Estimated price
- €16–23
- Website
- Trenitalia
- Phone
- +44 (0)3432 186 186
- Website
- Eurostar
Train from Chambery Challes Les Eaux to Rotterdam Centraal
- Ave. Duration
- 5h 57m
- Frequency
- Twice a week
- Estimated price
- €360–600
- Website
- Eurostar
- Phone
- +31 30 751 5155
- Website
- Nederlandse Spoorwegen (NS)
Train from Rotterdam Centraal to Haarlem
- Ave. Duration
- 55 min
- Frequency
- Hourly
- Estimated price
- €7–14
- Website
- Nederlandse Spoorwegen (NS)
Train from Brussels Airport-Zaventem to Rotterdam Centraal
- Ave. Duration
- 1h 39m
- Frequency
- Hourly
- Estimated price
- €15–29
- Website
- Nederlandse Spoorwegen (NS)
Train from Rotterdam Centraal to Haarlem
- Ave. Duration
- 55 min
- Frequency
- Hourly
- Estimated price
- €7–14
- Website
- Nederlandse Spoorwegen (NS)
Train from Eindhoven Centraal to Amsterdam Centraal
- Ave. Duration
- 1h 19m
- Frequency
- Every 30 minutes
- Estimated price
- €13–25
- Website
- Nederlandse Spoorwegen (NS)
- Phone
- +39 02 7249 4494
- [email protected]
- Website
- Trenord
Train from Milano Porta Garibaldi to Como S.Giovanni
- Ave. Duration
- 1h 1m
- Frequency
- Hourly
- Estimated price
- €4–6
- Website
- Trenord
Train from Milano Porta Garibaldi to Malpensa Aeroporto T1
- Ave. Duration
- 43 min
- Frequency
- Every 30 minutes
- Estimated price
- €4–6
- Website
- Trenord
Train from Milano Porta Garibaldi to Como S.Giovanni
- Ave. Duration
- 1h 1m
- Frequency
- Once daily
- Estimated price
- €18–29
- Website
- Swiss Federal Railways (SBB CFF FFS)
Train from Como S. Giovanni to Zürich HB
- Ave. Duration
- 2h 36m
- Frequency
- Hourly
- Estimated price
- €75–130
- Website
- Swiss Federal Railways (SBB CFF FFS)
Night train from Zürich HB to Amsterdam Centraal
- Ave. Duration
- 11h 13m
- Frequency
- Once daily
- Estimated price
- €300–490
- Website
- Swiss Federal Railways (SBB CFF FFS)
- Phone
- +39 06 8937 1892
- Website
- Italo Treno
Train from Milano Centrale to Torino Porta di Susa
- Ave. Duration
- 48 min
- Frequency
- Hourly
- Estimated price
- €16–28
- Website
- Italo Treno
- Phone
- +32 70 79 79 79
- Website
- Belgian Railways
Train from Brussels Airport-Zaventem to Rotterdam Centraal
- Ave. Duration
- 1h 39m
- Frequency
- Hourly
- Estimated price
- €25–40
- Website
- Belgian Railways
- Phone
- +39 06 68475475
- Website
- Trenitalia Intercity
Train from Milano Centrale to Genova P.Za Principe
- Ave. Duration
- 1h 34m
- Frequency
- Hourly
- Estimated price
- €15–27
- Website
- Trenitalia Intercity
- Phone
- +39 06 5210550
- Website
- Trenitalia Frecce
Train from Milano Centrale to Genova P.Za Principe
- Ave. Duration
- 1h 30m
- Frequency
- Twice daily
- Estimated price
- €19–35
- Website
- Trenitalia Frecce
- Phone
- 0800-0232 545
- Website
- Arriva NL
Train from Eindhoven Centraal to Amsterdam Centraal
- Ave. Duration
- 1h 16m
- Frequency
- Once a week
- Estimated price
- €18–26
- Website
- Arriva NL
- Second Class Single
- €18–26
- Phone
- +49 (0) 221 800 20 820
- [email protected]
- Website
- Urlaubs-Express (UEX)
Car train from Augsburg Hbf to Hannover Hbf
- Ave. Duration
- 6h 25m
- Frequency
- Once a week
- Estimated price
- €95–120
- Website
- Urlaubs-Express (UEX)
- Phone
- +3 318 576 2228
- Website
- BlaBlaCar Bus
Bus from Milano, Autostazione Lampugnano to Amsterdam City Center - Sloterdijk
- Ave. Duration
- 17h 5m
- Frequency
- 3 times a day
- Estimated price
- €85–140
- Website
- BlaBlaCar Bus
- [email protected]
- Website
- TERRAVISION
Bus from Piazza Luigi di Savoia to Milan Bergamo Orio al Serio Airport
- Ave. Duration
- 50 min
- Frequency
- Every 30 minutes
- Estimated price
- €5–23
- Website
- TERRAVISION
- Phone
- 035.319366
- [email protected]
- Website
- orioshuttle.com
Bus from Piazza Luigi di Savoia to Milan Bergamo Orio al Serio Airport
- Ave. Duration
- 50 min
- Frequency
- Every 30 minutes
- Estimated price
- €11–15
- Schedules at
- orioshuttle.com
- Phone
- +49 30 300 137 300
- [email protected]
- Website
- Flixbus
Bus from Milan to Amsterdam Sloterdijk
- Ave. Duration
- 16h 20m
- Frequency
- Twice daily
- Estimated price
- €95–150
- Website
- Flixbus
Want to know more about travelling around Netherlands
Rome2Rio's Travel Guide series provide vital information for the global traveller. Filled with useful and timely travel information, the guides answer all the hard questions - such as 'How do I buy a ticket?', 'Should I book online before I travel? ', 'How much should I expect to pay?', 'Do the trains and buses have Wifi?' - to help you get the most out of your next trip.
Related travel guides
Italy Travel Guides
Read the travel guide
Getting to Milan from the airport
Read the travel guide
5 delightfully under-the-radar French towns you need to visit
Read the travel guide
Booking & Getting There
Milan to Haarlem bus services, operated by BlaBlaCar Bus, arrive at Amsterdam City Center - Sloterdijk station.
Milan to Haarlem train services, operated by Trenitalia, arrive at Chambery Challes Les Eaux station.
Yes, the driving distance between Milan to Haarlem is 1067 km. It takes approximately 10h 33m to drive from Milan to Haarlem.
Book your Milan to Haarlem train tickets online with Omio.
Book your Milan to Haarlem bus tickets online with Omio.
There are 2909+ hotels available in Haarlem.





























































