There are 11 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 29m€74–219Train 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 10m€71–212Train
- Take the train from Milano Centrale to Marne La Vallee Chessytrain Fr
- Take the train from Marne La Vallee Chessy to Rotterdam Centraaltrain
- Take the train from Rotterdam Centraal to Haarlemtrain
11h 57m€266–442Bus
- Take the bus from Milano, Autostazione Lampugnano to Amsterdam City Center - Sloterdijkbus BlaBlaCar Bus
16h 22m€86–160Train, night train
- Take the train from Milano Centrale to Zuerich Hbtrain Ec
- Take the night train from Zürich HB to Amsterdam Centraalnighttrain Nj
15h 54m€349–958Train 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€113–267Train to Genoa Cristoforo Colombo Airport, fly to Amsterdam Airport Schiphol
- Take the train from Milano Rogoredo to Genova P.Za Principetrain
- Fly from Genoa Cristoforo Colombo Airport (GOA) to Amsterdam Airport Schiphol (AMS)plane GOA - AMS
6h 52m€116–319Bus to Il Caravaggio International Airport, fly to Eindhoven Airport, train
- Take the bus from Piazza Luigi di Savoia to Bergamo Airport Bus Stationbus
- Fly from Il Caravaggio International Airport (BGY) to Eindhoven Airport (EIN)plane BGY - EIN
- Take the train from Eindhoven to Amsterdam Sloterdijktrain
6h 59m€71–263Bus via Duomo M1
- Take the bus from Milan to Amsterdam Sloterdijkbus FlixBus N487 / ...
17h 52m€78–146Drive 1,067 km
- Drive from Milan to Haarlemcar 1,067 km
10h 33m€189–273Drive, car train
- Drive from Milan to München Ostcar
- Take the car train from München Ost to Kassel-Wilhelmshöhecartrain
- Drive from Kassel-Wilhelmshöhe to Haarlemcar
15h 30m€234–329
Milan to Haarlem by train
Questions & Answers
The cheapest way to get from Milan to Haarlem is to bus via Duomo M1 which costs €75 - €150 and takes 17h 52m.
The fastest way to get from Milan to Haarlem is to fly which takes 4h 29m and costs €70 - €220.
No, there is no direct train from Milan to Haarlem. However, there are services departing from Milano Centrale and arriving at Haarlem via Marne La Vallee Chessy and Rotterdam Centraal. The journey, including transfers, takes approximately 11h 57m.
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 57m and costs €260 - €450.
It takes approximately 4h 29m to get from Milan to Haarlem, including transfers.
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 29m and costs €70 - €220. Alternatively, you can train, which costs €260 - €450 and takes 11h 57m, you could also bus, which costs €85 - €160 and takes 16h 22m.
Milan to Haarlem train services, operated by Trenitalia, arrive at Marne La Vallee Chessy station.
Yes, the driving distance between Milan to Haarlem is 1067 km. It takes approximately 10h 33m to drive from Milan to Haarlem.
What companies run services between Milan, Italy and Haarlem, Netherlands?
easyJet, ITA Airways, and two 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 Marne La Vallee Chessy and Rotterdam Centraal in around 11h 57m.
- Website
- easyjet.com
Flights from Milan Linate Airport to Amsterdam Airport Schiphol
- Ave. Duration
- 1h 54m
- When
- Every day
- Estimated price
- €70–200
Flights from Milano Malpensa Airport to Amsterdam Airport Schiphol
- Ave. Duration
- 1h 58m
- When
- Every day
- Estimated price
- €55–200
- Website
- klm.com
Flights from Milan Linate Airport to Amsterdam Airport Schiphol
- Ave. Duration
- 1h 48m
- When
- Every day
- Estimated price
- €50–300
Flights from Turin Caselle Airport to Amsterdam Airport Schiphol
- Ave. Duration
- 1h 52m
- When
- Every day
- Estimated price
- €50–290
Flights from Turin Caselle Airport to Amsterdam Airport Schiphol via Paris Charles de Gaulle
- Ave. Duration
- 3h 40m
- When
- Every day
- Estimated price
- €55–310
Flights from Genoa Cristoforo Colombo Airport to Amsterdam Airport Schiphol
- Ave. Duration
- 1h 57m
- When
- Every day
- Estimated price
- €55–320
Flights from Genoa Cristoforo Colombo Airport to Amsterdam Airport Schiphol via Rome
- Ave. Duration
- 4h 30m
- When
- Monday to Saturday
- Estimated price
- €85–420
- Website
- lufthansa.com
Flights from Milan Linate Airport to Amsterdam Airport Schiphol via Munich
- Ave. Duration
- 3h 30m
- When
- Monday, Tuesday, Wednesday, Thursday, Friday, and Sunday
- Estimated price
- €100–230
Flights from Milan Linate Airport to Amsterdam Airport Schiphol via Frankfurt
- Ave. Duration
- 4h
- When
- Every day
- Estimated price
- €100–230
Flights from Milano Malpensa Airport to Amsterdam Airport Schiphol via Frankfurt
- Ave. Duration
- 4h 20m
- When
- Every day
- Estimated price
- €80–600
Flights from Turin Caselle Airport to Amsterdam Airport Schiphol via Frankfurt
- Ave. Duration
- 3h 57m
- When
- Every day
- Estimated price
- €90–180
Flights from Turin Caselle Airport to Amsterdam Airport Schiphol via Munich
- Ave. Duration
- 4h 25m
- When
- Monday to Saturday
- Estimated price
- €90–180
Flights from Genoa Cristoforo Colombo Airport to Amsterdam Airport Schiphol via Munich
- Ave. Duration
- 4h 10m
- When
- Monday to Friday
- Estimated price
- €100–900
- Website
- ryanair.com
Flights from Il Caravaggio International Airport to Eindhoven Airport
- Ave. Duration
- 1h 40m
- When
- Every day
- Estimated price
- €50–190
Flights from Il Caravaggio International Airport to Eindhoven Airport via London Stansted
- Ave. Duration
- 4h
- When
- Saturday
- Estimated price
- €50–190
- Website
- ita-airways.com
Flights from Milan Linate Airport to Amsterdam Airport Schiphol
- Ave. Duration
- 1h 55m
- When
- Every day
- Estimated price
- €70–210
- Website
- swiss.com
Flights from Milano Malpensa Airport to Amsterdam Airport Schiphol via Zurich
- Ave. Duration
- 3h 57m
- When
- Every day
- Estimated price
- €80–310
- Website
- airdolomiti.it
Flights from Milano Malpensa Airport to Amsterdam Airport Schiphol via Frankfurt
- Ave. Duration
- 3h 50m
- When
- Every day
- Estimated price
- €130–600
Flights from Genoa Cristoforo Colombo Airport to Amsterdam Airport Schiphol via Munich
- Ave. Duration
- 3h 50m
- When
- Monday and Saturday
- Estimated price
- €180–900
- Website
- airfrance.com
Flights from Turin Caselle Airport to Amsterdam Airport Schiphol via Paris Charles de Gaulle
- Ave. Duration
- 3h 40m
- When
- Every day
- Estimated price
- €55–310
- Phone
- +39.06.5210550
- Website
- trenitalia.com
Train from Milano Centrale to Marne La Vallee Chessy
- Ave. Duration
- 6h 53m
- Frequency
- Twice a week
- Estimated price
- €100–180
- Website
- https://www.trenitalia.com/en.html
Train from Milano Rogoredo to Genova P.Za Principe
- Ave. Duration
- 2h 18m
- Frequency
- Hourly
- Estimated price
- €16–27
- Website
- https://www.trenitalia.com/en.html
- Phone
- +44 343 218 6186
- Website
- eurostar.com
Train from Marne La Vallee Chessy to Rotterdam Centraal
- Ave. Duration
- 2h 52m
- Frequency
- 4 times a week
- Estimated price
- €150–250
- Website
- https://www.eurostar.com/rw-en
- Phone
- +31 30 751 5155
- Website
- ns.nl
Train from Rotterdam Centraal to Haarlem
- Ave. Duration
- 55 min
- Frequency
- Every 30 minutes
- Estimated price
- €7–17
- Website
- https://www.ns.nl/en
Train from Eindhoven to Amsterdam Sloterdijk
- Ave. Duration
- 1h 29m
- Frequency
- Every 30 minutes
- Estimated price
- €13–30
- Website
- https://www.ns.nl/en
- Phone
- +39 06 68475475
- ufficiogruppi@trenitalia.it
- Website
- trenitalia.com
Train from Milano Centrale to Zuerich Hb
- Ave. Duration
- 3h 17m
- Frequency
- Every 2 hours
- Estimated price
- €55–110
- Website
- https://www.trenitalia.com/en.html
- 1st Class
- €70–110
- 2nd Class
- €55–75
- Phone
- +41 848 446 688
- Website
- sbb.ch
Night train from Zürich HB to Amsterdam Centraal
- Ave. Duration
- 11h 13m
- Frequency
- Once daily
- Estimated price
- €290–850
- Website
- https://www.sbb.ch/en
- Phone
- +39 02 7249 4494
- my-link@trenord.it
- Website
- trenord.it
Train from Milano Porta Garibaldi to Malpensa Aeroporto T1
- Ave. Duration
- 43 min
- Frequency
- Every 30 minutes
- Estimated price
- €4–6
- Website
- https://www.trenord.it/en/
- Phone
- +39 06 8937 1892
- Website
- italotreno.it
Train from Milano Centrale to Torino Porta di Susa
- Ave. Duration
- 48 min
- Frequency
- Hourly
- Estimated price
- €18–40
- Website
- https://www.italotreno.it/en
- Phone
- +39 06 68475475
- Website
- trenitalia.com
Train from Milano Rogoredo to Genova P.Za Principe
- Ave. Duration
- 1h 39m
- Frequency
- Every 4 hours
- Estimated price
- €13–29
- Website
- https://www.trenitalia.com/en.html
- Phone
- +39 06 68475475
- Website
- trenitalia.com
Train from Milano Rogoredo to Genova P.Za Principe
- Ave. Duration
- 1h 18m
- Frequency
- Once daily
- Estimated price
- €19–40
- Schedules at
- trenitalia.com
- Phone
- +49 (0) 221 800 20 820
- info@urlaubs-express.de
- Website
- urlaubs-express.de
Car train from München Ost to Kassel-Wilhelmshöhe
- Ave. Duration
- 5h 21m
- Frequency
- Once a week
- Estimated price
- €95–120
- Website
- https://urlaubs-express.de/?lang=en
- Phone
- +3-389-268-0068
- Website
- blablacar.co.uk
Bus from Milano, Autostazione Lampugnano to Amsterdam City Center - Sloterdijk
- Ave. Duration
- 16h 5m
- Frequency
- 3 times a day
- Estimated price
- €85–160
- Website
- https://www.blablacar.co.uk/bus
- info@flibco.com
- Website
- flibco.com
Bus from Piazza Luigi di Savoia to Bergamo Airport Bus Station
- Ave. Duration
- 50 min
- Frequency
- Hourly
- Estimated price
- €8–21
- Website
- https://www.flibco.com/en
- customerservices@terravision.eu
- Website
- terravision.eu
Bus from Piazza Luigi di Savoia to Bergamo Airport Bus Station
- Ave. Duration
- 50 min
- Frequency
- Every 30 minutes
- Estimated price
- €5–25
- Website
- https://www.terravision.eu/
- Phone
- +39 02 3008 9000
- mail@autostradale.it
- Website
- autostradale.it
Bus from Piazza Luigi di Savoia to Bergamo Airport Bus Station
- Ave. Duration
- 1h
- Frequency
- Every 30 minutes
- Estimated price
- €4–8
- Website
- https://autostradale.it/?lang=en-GB
- Phone
- +49 30 300 137 300
- service@flixbus.com
- Website
- https://www.flixbus.fr
Bus from Milan to Amsterdam Sloterdijk
- Ave. Duration
- 16h 20m
- Frequency
- Twice daily
- Estimated price
- €75–140
- Website
- https://www.flixbus.co.uk
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
More Questions & Answers
Book your Milan to Haarlem train tickets online with Omio.
There are 2970+ hotels available in Haarlem.







































































