The average bus between Armadale and Perth takes 2h 53m and the fastest bus takes 2h 19m. The bus service runs several times per day from Armadale to Perth. 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 3 hours between Armadale and Perth. The earliest departure is at 5:23 AM in the morning, and the last departure from Armadale is at 9:57 PM which arrives into Perth at 12:29 AM. All services require a transfer at Haymarket Station and take an average of 2h 53m. The schedules shown below are for the next available departures.

2h 48m • 1 change

3h • 1 change

2h 58m • 1 change

2h 58m • 1 change

2h 48m • 1 change

3h • 1 change

2h 58m • 1 change

2h 58m • 1 change

2h 48m • 1 change

3h • 1 change

2h 58m • 1 change

2h 58m • 1 change

2h 19m • 1 change

2h 30m • 1 change

3h 1m • 1 change

2h 57m • 1 change

3h 13m • 1 change

2h 31m • 1 change

3h 6m • 1 change

2h 58m • 1 change
Want to know about travelling from Armadale to Perth? 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 Armadale to Perth. However, there are services departing from Armadale station and arriving at Perth station via Haymarket Station station. The journey, including transfers, takes approximately 2h 53m.
Armadale to Perth bus services, operated by Lothian Country Buses, depart from Kross Bar station.
Armadale to Perth bus services, operated by Lothian Country Buses, arrive at Perth station.
The distance between Armadale and Perth is 57.7 km. The road distance is 106 km.
You can take a bus from Kross Bar to Perth station via Haymarket Station and Haymarket in around 3h 34m.