There are 4 ways to get from Badulla to Diyatalawa by bus, train, 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.
Bus
best- Take the bus from Badulla Main Bus Station to Diyatalawabus Route 99
1h 4mRs 800–1,100Train
- Take the train from Badulla Station to Diyatalawatrain Badulla
1h 35mRs 1,200–2,900Drive 36.6 km
- Drive from Badulla to Diyatalawacar 36.6 km
38 minRs 1,670–2,413Taxi
- Take the taxi from Badulla to Diyatalawataxi 36.6 km
38 minRs 4,500–5,500
Badulla to Diyatalawa by train
Questions & Answers
The cheapest way to get from Badulla to Diyatalawa is to bus which costs Rs. 800 - Rs. 1100 and takes 1h 4m.
The fastest way to get from Badulla to Diyatalawa is to drive which takes 38 min and costs Rs. 1600 - Rs. 2500.
Yes, there is a direct bus departing from Badulla Main Bus Station station and arriving at Diyatalawa. Services depart every four hours, and operate every day. The journey takes approximately 1h 4m.
Yes, there is a direct train departing from Badulla Station station and arriving at Diyatalawa. Services depart twice daily, and operate every day. The journey takes approximately 1h 35m.
The distance between Badulla and Diyatalawa is 35 km. The road distance is 36.6 km.
The best way to get from Badulla to Diyatalawa without a car is to bus which takes 1h 4m and costs Rs. 800 - Rs. 1100.
The bus from Badulla Main Bus Station to Diyatalawa takes 1h 4m including transfers and departs every four hours.
Badulla to Diyatalawa bus services, operated by Sri Lanka Transport Board - SLTB ICT, depart from Badulla Main Bus Station.
Badulla to Diyatalawa train services, operated by Sri Lanka Railways, depart from Badulla Station.
The best way to get from Badulla to Diyatalawa is to bus which takes 1h 4m and costs Rs. 800 - Rs. 1100. Alternatively, you can train, which costs Rs. 1200 - Rs. 2900 and takes 1h 35m.
What companies run services between Badulla, Sri Lanka and Diyatalawa, Uva, Sri Lanka?
Sri Lanka Transport Board - SLTB ICT operates a bus from Badulla Main Bus Station to Diyatalawa every 4 hours. Tickets cost Rs 800–1,100 and the journey takes 1h 4m. Alternatively, Sri Lanka Railways operates a train from Badulla Station to Diyatalawa twice daily. Tickets cost Rs 1,200–2,900 and the journey takes 1h 35m.
- Phone
- +94 114 600 111
- Website
- seatreservation.railway.gov.lk
Train from Badulla Station to Diyatalawa
- Ave. Duration
- 1h 35m
- Frequency
- Twice daily
- Estimated price
- Rs 1,200–2,900
- Website
- https://seatreservation.railway.gov.lk/mtktwebslr/
- 2nd Class Fare
- Rs 1,300–1,900
- 3rd Class Fare
- Rs 1,200–1,500
- Air Conditioned Saloon
- Rs 2,200–2,900
- Phone
- +94 70 311 0501
- [email protected]
- Website
- sltb.eseat.lk
Bus from Badulla Main Bus Station to Diyatalawa
- Ave. Duration
- 1h 4m
- Frequency
- Every 4 hours
- Estimated price
- Rs 800–1,100
- Schedules at
- sltb.eseat.lk
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 get from Heathrow Airport into central London, Want to know more about Flixbus?, and Travelling to the US: What do I need to know? - to help you get the most out of your next trip.
More Questions & Answers
Badulla to Diyatalawa bus services, operated by Sri Lanka Transport Board - SLTB ICT, arrive at Diyatalawa station.
Badulla to Diyatalawa train services, operated by Sri Lanka Railways, arrive at Diyatalawa station.
Yes, the driving distance between Badulla to Diyatalawa is 37 km. It takes approximately 38 min to drive from Badulla to Diyatalawa.
There are 1610+ hotels available in Diyatalawa.







