There are 5 ways to get from Milan to Caviano by train, bus, or car
Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2Rio's travel planner.
Train, line 350 bus
best- Take the train from Milano Centrale to Cadenazzotrain Re80
- Take the bus from Cadenazzo, Stazione to Dirinella, Bivio per Cavianobus 350
2h 31mCHF 10–13Train
cheapest- Take the train from Milano Porta Garibaldi to Gallaratetrain S5 / ...
- Take the train from Gallarate to Ranzo-S. Abbondiotrain S30
3h 3mCHF 9–69Bus, line 350 bus
- Take the bus from Milano, Autostazione Lampugnano to Luganobus BlaBlaCar Bus
- Take the bus from Cadenazzo, Stazione to Dirinella, Bivio per Cavianobus 350
2h 54mCHF 14–43Drive 100.2 km
- Drive from Milan to Cavianocar 100.2 km
1h 27mCHF 17–24Train, line 350 bus via Lugano
- Take the train from Milano Centrale to Luganotrain Ec
- Take the bus from Cadenazzo, Stazione to Dirinella, Bivio per Cavianobus 350
2h 40mCHF 27–89
Milan to Caviano by train and bus
Questions & Answers
The cheapest way to get from Milan to Caviano is to train and line 350 bus which costs SFr 9 - SFr 14 and takes 2h 31m.
The fastest way to get from Milan to Caviano is to drive which takes 1h 27m and costs SFr 16 - SFr 24.
No, there is no direct bus from Milan to Caviano. However, there are services departing from Milano, Autostazione Lampugnano and arriving at Dirinella, Bivio per Caviano via Lugano, Via Ciani/Cornaredo and Cadenazzo, Stazione. The journey, including transfers, takes approximately 2h 54m.
No, there is no direct train from Milan to Caviano. However, there are services departing from Milano Porta Garibaldi and arriving at Ranzo-S. Abbondio via Gallarate. The journey, including transfers, takes approximately 3h 3m.
The distance between Milan and Caviano is 116 km. The road distance is 100.2 km.
The best way to get from Milan to Caviano without a car is to train and line 350 bus which takes 2h 31m and costs SFr 9 - SFr 14.
It takes approximately 2h 31m to get from Milan to Caviano, including transfers.
Milan to Caviano bus services, operated by BlaBlaCar Bus, depart from Milano, Autostazione Lampugnano station.
Milan to Caviano train services, operated by Trenord, depart from Milano Porta Garibaldi station.
The best way to get from Milan to Caviano is to bus and line 350 bus which takes 2h 54m and costs SFr 14 - SFr 45. Alternatively, you can train, which costs SFr 8 - SFr 70 and takes 3h 3m.
What companies run services between Milan, Italy and Caviano, Switzerland?
You can take a bus from Milano, Autostazione Lampugnano to Dirinella, Bivio per Caviano via Lugano, Lugano, Via Ciani/Cornaredo, Lugano, Stazione, Lugano, Cadenazzo, and Cadenazzo, Stazione in around 2h 54m. Alternatively, you can take a train from Milano Porta Garibaldi to Ranzo-S. Abbondio via Gallarate in around 3h 3m.
- Phone
- +39 02 7249 4494
- [email protected]
- Website
- trenord.it
Train from Milano Centrale to Cadenazzo
- Ave. Duration
- 1h 37m
- Frequency
- Hourly
- Estimated price
- CHF 6–9
- Website
- https://www.trenord.it/en/
Train from Milano Porta Garibaldi to Gallarate
- Ave. Duration
- 48 min
- Frequency
- Every 15 minutes
- Estimated price
- CHF 3–5
- Website
- https://www.trenord.it/en/
Train from Gallarate to Ranzo-S. Abbondio
- Ave. Duration
- 1h 15m
- Frequency
- Twice daily
- Estimated price
- CHF 5–7
- Website
- https://www.trenord.it/en/
- Phone
- +39 06 68475475
- [email protected]
- Website
- trenitalia.com
Train from Milano Centrale to Lugano
- Ave. Duration
- 1h 18m
- Frequency
- Hourly
- Estimated price
- CHF 21–65
- Website
- https://www.trenitalia.com/en.html
- 1st Class
- CHF 40–65
- 2nd Class
- CHF 21–29
- Phone
- +41 848 446 688
- Website
- sbb.ch
Train from Gallarate to Ranzo-S. Abbondio
- Ave. Duration
- 1h 15m
- Frequency
- Every 4 hours
- Estimated price
- CHF 21–65
- Website
- https://www.sbb.ch/en
- Phone
- +41 (0)848 818 818
- [email protected]
- Website
- postauto.ch
Bus from Cadenazzo, Stazione to Dirinella, Bivio per Caviano
- Ave. Duration
- 29 min
- Frequency
- Hourly
- Estimated price
- CHF 3–5
- Website
- https://www.postauto.ch
Bus from Cadenazzo, Stazione to Dirinella, Bivio per Caviano
- Ave. Duration
- 29 min
- Frequency
- Hourly
- Estimated price
- CHF 3–5
- Website
- https://www.postauto.ch
Bus from Cadenazzo, Stazione to Dirinella, Bivio per Caviano
- Ave. Duration
- 29 min
- Frequency
- Hourly
- Estimated price
- CHF 3–5
- Website
- https://www.postauto.ch
- Phone
- +3 318 576 2228
- Website
- blablacar.co.uk
Bus from Milano, Autostazione Lampugnano to Lugano
- Ave. Duration
- 1h 10m
- Frequency
- 4 times a day
- Estimated price
- CHF 6–11
- Website
- https://www.blablacar.co.uk/bus
Want to know more about travelling around Switzerland
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
Italian Lakes: Getting around by train
Read the travel guide
Heading to Europe? Read this before you buy a Eurail Pass
Read the travel guide
Italy Travel Guides
Read the travel guide
More Questions & Answers
Milan to Caviano bus services, operated by BlaBlaCar Bus, arrive at Lugano station.
Milan to Caviano train services, operated by Trenord, arrive at Gallarate station.
Yes, the driving distance between Milan to Caviano is 100 km. It takes approximately 1h 27m to drive from Milan to Caviano.
There are 3285+ hotels available in Caviano.

























