The average bus between Perth and Cromarty takes 4h 26m and the fastest bus takes 3h 37m. The bus service runs several times per day from Perth to Cromarty. 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 Perth and Cromarty. The earliest departure is at 12:29 AM at night, and the last departure from Perth is at 7:17 PM which arrives into Cromarty at 11:28 PM. All services require a transfer at Inverness Union Street and take an average of 4h 26m. The schedules shown below are for the next available departures.

5h 15m • 1 change

3h 41m • 1 change

4h 38m • 1 change

4h 8m • 1 change

5h 15m • 1 change

3h 41m • 1 change

4h 38m • 1 change

4h 8m • 1 change

5h 15m • 1 change

3h 41m • 1 change

4h 38m • 1 change

4h 8m • 1 change

5h 15m • 1 change

3h 41m • 1 change

4h 38m • 1 change

4h 8m • 1 change

4h 58m • 1 change

3h 46m • 1 change

4h 38m • 1 change

4h 23m • 1 change

4h 31m • 1 change

3h 49m • 1 change

5h 42m • 1 change

5h 54m • 1 change
Want to know about travelling from Perth to Cromarty? 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 Cromarty. However, there are services departing from Perth station and arriving at Cromarty station via Inverness Union Street. The journey, including transfers, takes approximately 4h 26m.
Perth to Cromarty bus services, operated by Ember, depart from Perth station.
Perth to Cromarty bus services, operated by Ember, arrive at Victoria Hall station.
The distance between Perth and Cromarty is 147.5 km. The road distance is 225 km.
You can take a bus from Perth station to Victoria Hall via Inverness Union Street and Bus Station Stance 4 in around 3h 53m.