The average bus between Mallaig and Portsoy takes 11h 39m and the fastest bus takes 8h 58m. The bus service runs several times per day from Mallaig to Portsoy. 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 twice daily between Mallaig and Portsoy. The earliest departure is at 8:55 AM in the morning, and the last departure from Mallaig is at 3:50 PM which arrives into Portsoy at 8:33 AM. All services require a transfer at Fort William Bus Station and take an average of 11h 39m. The schedules shown below are for the next available departures.





8h 58m • 5 changes





10h 38m • 5 changes
Arrives next day





15h 43m • 5 changes





8h 58m • 5 changes





10h 38m • 5 changes
Arrives next day





15h 43m • 5 changes





8h 58m • 5 changes





10h 38m • 5 changes
Arrives next day





15h 43m • 5 changes





8h 58m • 5 changes





10h 38m • 5 changes
Arrives next day





15h 43m • 5 changes
Want to know about travelling from Mallaig to Portsoy? 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 Mallaig to Portsoy. However, there are services departing from Mallaig station and arriving at Portsoy station via Fort William Bus Station station. The journey, including transfers, takes approximately 11h 39m.
Mallaig to Portsoy bus services, operated by Shiel Buses, depart from Boatyard station.
Mallaig to Portsoy bus services, operated by Shiel Buses, arrive at Seafield Street station.
The distance between Mallaig and Portsoy is 202.7 km. The road distance is 286 km.
You can take a bus from Boatyard to Seafield Street via Fort William Bus Station, Inverness Union Street, Bus Station, Bus Station, and Shanks Lane in around 8h 13m.