Inverness Airport: The sensible public-transport gateway. Take the Citylink 917 direct to Portree when its timetable fits: about 3 hr 55 min, with fares from roughly £17. It is not frequent, so book/check the specific departure before committing to a flight. A taxi or rental car only starts making sense if you miss it or need to reach trailheads independently.
Inverness Bus Station / Inverness railway station: From the rail station, walk to the bus station and take Citylink 917 via Loch Ness, Broadford and Sligachan: about 3 hr 30 min to Somerled Square. Portree has no railway station; do not plan on a final train leg.
Glasgow Airport: Citylink 914/915 is the cleanest no-car option, running onward to Portree via Loch Lomond, Glencoe, Fort William, Kyle of Lochalsh and the Skye Bridge. Expect roughly 6–8 hours depending on the specific service and about £58–£60; there are only a few departures a day. It is long, but it avoids an unnecessary Glasgow-city transfer.
Glasgow Buchanan Bus Station: Take Citylink 914/915 direct to Portree’s Somerled Square: around 8 hours. This is a scenic but full-day ride, not a quick airport transfer.
Kyle of Lochalsh railway station: Useful if arriving on the Inverness–Kyle train, but not a Portree station in disguise. Connect to a Skye-bound Citylink bus across the toll-free Skye Bridge; allow about an hour onward plus connection time. Check the timetable before relying on it.
Armadale ferry pier: For the Mallaig–Armadale ferry route, Stagecoach Highlands 52 runs via Broadford to Portree in about 75 minutes, only around three times daily. It works with the right ferry sailing; it is not a robust late-arrival plan.