The average bus between Perth and Dalkeith takes 2h 19m and the fastest bus takes 1h 48m. There is a bus service every few hours from Perth to Dalkeith. The journey time may be longer on weekends and holidays; use the search form on this page to search for a specific travel date.
Buses run every 2 hours between Perth and Dalkeith. The earliest departure is at 12:54 AM at night, and the last departure from Perth is at 11:17 PM which arrives into Dalkeith at 1:15 AM. All services require a transfer at George Street and take an average of 2h 19m. The schedules shown below are for the next available departures.

2h 18m • 1 change

2h 14m • 1 change

2h 6m • 1 change

2h 34m • 1 change

2h 18m • 1 change

2h 14m • 1 change

2h 6m • 1 change

2h 34m • 1 change

2h 18m • 1 change

2h 14m • 1 change

2h 6m • 1 change

2h 34m • 1 change

2h 18m • 1 change

2h 52m • 1 change

2h 4m • 1 change

2h 35m • 1 change

1h 48m • 1 change

3h 37m • 1 change

2h 27m • 1 change

2h 32m • 1 change
Want to know about travelling from Perth to Dalkeith? We have put together a list of the most frequently asked questions from our users such as: What is the cheapest mode of transport? What is the quickest option? How much do tickets usually cost? and many more.
No, there is no direct bus from Perth to Dalkeith. However, there are services departing from Perth station and arriving at Dalkeith station via George Street. The journey, including transfers, takes approximately 2h 19m.
Perth to Dalkeith bus services, operated by Ember, depart from Perth station.
Perth to Dalkeith bus services, operated by Ember, arrive at Buccleuch Street station.
The distance between Perth and Dalkeith is 60 km. The road distance is 87 km.
You can take a bus from Perth station to Buccleuch Street via George Street and Princes Street in around 2h 17m.