There are 4 ways to get from Badulla to Kegalle by train, bus, car, or taxi
Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2Rio's travel planner.
Train
best- Take the train from Badulla Station to Kandytrain Badulla
8h 48mRs 1,479–3,222Bus
cheapest- Take the bus from Badulla Main Bus Station to Colombo Bastian Mawatha Bus Terminalbus Route 99
- Take the bus from Colombo Bastian Mawatha Bus Terminal to Kegallebus Colombo
8h 58mRs 1,195–3,020Drive 146.2 km
- Drive from Badulla to Kegallecar 146.2 km
2h 48mRs 6,588–9,516Taxi
- Take the taxi from Badulla to Kegalletaxi 146.2 km
2h 48mRs 7,000–9,000
Badulla to Kegalle by train and bus
Comparing Your Travel Options
The cheapest way to get from Badulla to Kegalle is to train which costs Rs. 1400 - Rs. 3300 and takes 8h 48m.
The fastest way to get from Badulla to Kegalle is to drive which takes 2h 48m and costs Rs. 6500 - Rs. 9500.
No, there is no direct bus from Badulla station to Kegalle. However, there are services departing from Badulla Main Bus Station and arriving at Kegalle via Colombo Bastian Mawatha Bus Terminal. The journey, including transfers, takes approximately 8h 58m.
No, there is no direct train from Badulla station to Kegalle. However, there are services departing from Badulla Station and arriving at Kandy via . The journey, including transfers, takes approximately 8h 48m.
The distance between Badulla and Kegalle is 216 km. The road distance is 146.2 km.
The best way to get from Badulla to Kegalle without a car is to train which takes 8h 48m and costs Rs. 1400 - Rs. 3300.
It takes approximately 8h 48m to get from Badulla to Kegalle, including transfers.
Badulla to Kegalle bus services, operated by Sri Lanka Transport Board - SLTB ICT, depart from Badulla Main Bus Station.
Badulla to Kegalle train services, operated by Sri Lanka Railways, depart from Badulla Station.
The best way to get from Badulla to Kegalle is to train which takes 8h 48m and costs Rs. 1400 - Rs. 3300. Alternatively, you can bus, which costs Rs. 1200 - Rs. 3100 and takes 8h 58m.
What companies run services between Badulla, Sri Lanka and Kegalle, Sri Lanka?
Sri Lanka Railways operates a train from Badulla Station to Kandy 3 times a day. Tickets cost Rs 1,300–3,100 and the journey takes 7h 15m. Alternatively, you can take a bus from Badulla Main Bus Station to Kegalle via Colombo Bastian Mawatha Bus Terminal in around 8h 58m.
- Phone
- +94 114 600 111
- Website
- Sri Lanka Railways
Train from Badulla Station to Kandy
- Ave. Duration
- 7h 15m
- Frequency
- 3 times a day
- Estimated price
- Rs 1,300–3,100
- Website
- Sri Lanka Railways
- 2nd Class Fare
- Rs 1,300–1,900
- 3rd Class Fare
- Rs 1,300–1,600
- Air Conditioned Saloon
- Rs 2,400–3,100
- Phone
- +94 70 311 0501
- [email protected]
- Website
- sltb.eseat.lk
Bus from Badulla Main Bus Station to Colombo Bastian Mawatha Bus Terminal
- Ave. Duration
- 6h 15m
- Frequency
- Every 4 hours
- Estimated price
- Rs 900–1,300
- Schedules at
- sltb.eseat.lk
- Seater
- Rs 900–1,300
- Phone
- +94 777 382 186
- [email protected]
- Website
- Superline Travels
Bus from Badulla Main Bus Station to Colombo Bastian Mawatha Bus Terminal
- Ave. Duration
- 5h 50m
- Frequency
- Twice daily
- Estimated price
- Rs 2,200–2,800
- Website
- Superline Travels
- Phone
- +94 011-2587372
- [email protected]
- Website
- National Transport Commission
Bus from Colombo Bastian Mawatha Bus Terminal to Kegalle
- Ave. Duration
- 2h 40m
- Frequency
- Every 10 minutes
- Estimated price
- Rs 280–310
- Website
- National Transport Commission
- Schedules at
- NTC Schedules
- Standard
- Rs 280–310
- Semi Lux
- Rs 320–450
- Super Lux
- Rs 600–750
Want to know more about travelling around the world?
Rome2Rio's Travel Guide series provide vital information for the global traveller. Read our range of informative guides on popular transport routes and companies - including How to plan an amazing trip around Scandinavia, Getting to Milan from the airport, and What documents do I need to cross Niagara Falls? - to help you get the most out of your next trip.
Booking & Getting There
Badulla to Kegalle bus services, operated by Sri Lanka Transport Board - SLTB ICT, arrive at Colombo Bastian Mawatha Bus Terminal station.
Badulla to Kegalle train services, operated by Sri Lanka Railways, arrive at Kandy station.
Yes, the driving distance between Badulla to Kegalle is 146 km. It takes approximately 2h 48m to drive from Badulla to Kegalle.
There are 115+ hotels available in Kegalle.













