BC Cycle Tourism Society

To and Fro: moving your bike around British Columbia

My bike and I are in and we’d like to be in .
We show what transit connections accept bikes. Check with the operator for prices, schedules, and reservations.
Same place twice. You’re already there, so enjoy the ride.

Good news: buses, ferries, trains and flights can carry you and your bike from Galiano Island to Williams Lake.

For scale
As the crow flies371 km
Biking whole way677 km Β· 47 h 54 m
By car572 km Β· 7 h 06 m

We found six ways to get you there, ferries doing the heavy lifting.

πŸŽ’ Riding a coach? Most BC coach operators want your bike bagged or boxed. Our field note walks through packing it, including an inexpensive packable bike bag we like: How to bike-and-bus in BC ›
Note: Most carriers carry only a handful of bikes, and summer weekends fill up fast. Reserve where you can. Where you can't, go early or have a backup plan.
Option one · five legs⚠ doesn't run every day — check the schedule
Grab a window seat, the scenery's included.
CarrierRideYour bike
⛴️BC FerriesTsawwassen – Southern Gulf IslandsSturdies Bay (Galiano Island) β†’Tsawwassen (Delta)36 kmRoll on, free β€” no reservation neededE-bikes OK β€” no charging on board
Sailing times vary a lot by routing: some trips are about 50 minutes, others run 2 to 3 hours via Swartz Bay. Check the specific sailing before you book.
🚎TransLink620 Bridgeport Station / Tsawwassen Ferryor the 900 Bike Bus (seasonal)Tsawwassen (Delta) β†’Bridgeport (Richmond)22 kmRack on the bus, free2 bikes β€” first come, first servedE-bikes OK
620 Bridgeport Station / Tsawwassen Ferry: The 620 is year-round, roughly hourly, timed to sailings, with two bike-rack spots. On busy summer ferry days the seasonal 900 Bike Bus can carry an extra 10 bikes.
900 Bike Bus: Seasonal: June 12 to September 7, Fridays, weekends and holidays; hourly, timed to ferry sailings. Carries 10 bikes.
🚝SkyTrainTransLinkBridgeport (Richmond) β†’Pacific Central Station (Vancouver)Roll on, free β€” 2 bikes per carAvoid rush hourE-bikes OK
🚌EbusVancouver – Kamloopsor Ebus (Vancouver – Calgary (Hwy 1)) or Rider Express (Vancouver – Calgary (Hwy 1))Pacific Central Station (Vancouver) β†’Kamloops301 kmRides in the hold β€” bagged or cloth-wrapped (no plastic), or boxed$30 per bike
Runs the same Highway 1 corridor as Rider Express, so compare schedules and fares.
🚌EbusKamloops – Prince GeorgeKamloops β†’Williams Lake253 kmRides in the hold β€” bagged or cloth-wrapped (no plastic), or boxed$30 per bike
Runs Wed/Fri/Sun toward Prince George and Mon/Thu/Sat toward Kamloops; no service on Tuesdays.
🚲You arrive at Williams Lake.
Option two · six legs⚠ doesn't run every day — check the schedule
A long haul, but it all connects.
CarrierRideYour bike
⛴️BC FerriesTsawwassen – Southern Gulf IslandsSturdies Bay (Galiano Island) β†’Tsawwassen (Delta)36 kmRoll on, free β€” no reservation neededE-bikes OK β€” no charging on board
Sailing times vary a lot by routing: some trips are about 50 minutes, others run 2 to 3 hours via Swartz Bay. Check the specific sailing before you book.
🚎TransLink620 Bridgeport Station / Tsawwassen FerryTsawwassen (Delta) β†’Bridgeport (Richmond)22 kmRack on the bus, free2 bikes β€” first come, first servedE-bikes OK
The 620 is year-round, roughly hourly, timed to sailings, with two bike-rack spots. On busy summer ferry days the seasonal 900 Bike Bus can carry an extra 10 bikes.
🚎TransLink351 White Rock Centre / Bridgeport StationBridgeport (Richmond) β†’White Rock Centre30 kmRack on the bus, free2 bikes β€” first come, first servedE-bikes OK
Express to the Canada Line at Bridgeport, seven days a week, with two bike-rack spots.
🚎TransLink321 White Rock / Newton / Surrey Central StationWhite Rock Centre β†’Surrey Central18 kmRack on the bus, free2 bikes β€” first come, first servedE-bikes OK
Daily service up King George Boulevard to Surrey Central SkyTrain, with two bike-rack spots.
🚲Travel the short hop from Surrey Central to Surrey (Guildford Rec Centre), about 3.4 km. If pedalling it doesn't appeal, Aldergrove-Langley Taxi Ltd., Green Cab might help.
🚌EbusVancouver – Kamloopsor Ebus (Vancouver – Calgary (Hwy 1)) or Rider Express (Vancouver – Calgary (Hwy 1))Surrey (Guildford Rec Centre) β†’Kamloops277 kmRides in the hold β€” bagged or cloth-wrapped (no plastic), or boxed$30 per bike
Runs the same Highway 1 corridor as Rider Express, so compare schedules and fares.
🚌EbusKamloops – Prince GeorgeKamloops β†’Williams Lake253 kmRides in the hold β€” bagged or cloth-wrapped (no plastic), or boxed$30 per bike
Runs Wed/Fri/Sun toward Prince George and Mon/Thu/Sat toward Kamloops; no service on Tuesdays.
🚲You arrive at Williams Lake.
Option three · four legs⚠ doesn't run every day — check the schedule
A ferry and three coach buses.
CarrierRideYour bike
⛴️BC FerriesTsawwassen – Southern Gulf IslandsSturdies Bay (Galiano Island) β†’Tsawwassen (Delta)36 kmRoll on, free β€” no reservation neededE-bikes OK β€” no charging on board
Sailing times vary a lot by routing: some trips are about 50 minutes, others run 2 to 3 hours via Swartz Bay. Check the specific sailing before you book.
🚌Wilson's Transportation (BC Connector)BC Ferries Connector β€” Vancouver / VictoriaTsawwassen (Delta) β†’Pacific Central Station (Vancouver)33 kmRides in the hold β€” bagged or boxed$42 per bike β€” 50 lb maxReserve bike spot β€” recommended
⛴️ Downtown to downtown via the Tsawwassen–Swartz Bay ferry crossing.
🚌EbusVancouver – Kamloopsor Ebus (Vancouver – Calgary (Hwy 1)) or Rider Express (Vancouver – Calgary (Hwy 1))Pacific Central Station (Vancouver) β†’Kamloops301 kmRides in the hold β€” bagged or cloth-wrapped (no plastic), or boxed$30 per bike
Runs the same Highway 1 corridor as Rider Express, so compare schedules and fares.
🚌EbusKamloops – Prince GeorgeKamloops β†’Williams Lake253 kmRides in the hold β€” bagged or cloth-wrapped (no plastic), or boxed$30 per bike
Runs Wed/Fri/Sun toward Prince George and Mon/Thu/Sat toward Kamloops; no service on Tuesdays.
🚲You arrive at Williams Lake.
Option four · four legs⚠ doesn't run every day — check the schedule
The same idea as Option three, on different routes.
CarrierRideYour bike
⛴️BC FerriesSwartz Bay – Southern Gulf IslandsSturdies Bay (Galiano Island) β†’Swartz Bay (North Saanich)23 kmRoll on, free β€” no reservation neededE-bikes OK β€” no charging on board
🚌Wilson's Transportation (BC Connector)BC Ferries Connector β€” Vancouver / VictoriaSwartz Bay (North Saanich) β†’Pacific Central Station (Vancouver)74 kmRides in the hold β€” bagged or boxed$42 per bike β€” 50 lb maxReserve bike spot β€” recommended
⛴️ Downtown to downtown via the Tsawwassen–Swartz Bay ferry crossing.
🚌EbusVancouver – Kamloopsor Ebus (Vancouver – Calgary (Hwy 1)) or Rider Express (Vancouver – Calgary (Hwy 1))Pacific Central Station (Vancouver) β†’Kamloops301 kmRides in the hold β€” bagged or cloth-wrapped (no plastic), or boxed$30 per bike
Runs the same Highway 1 corridor as Rider Express, so compare schedules and fares.
🚌EbusKamloops – Prince GeorgeKamloops β†’Williams Lake253 kmRides in the hold β€” bagged or cloth-wrapped (no plastic), or boxed$30 per bike
Runs Wed/Fri/Sun toward Prince George and Mon/Thu/Sat toward Kamloops; no service on Tuesdays.
🚲You arrive at Williams Lake.
Show two moreShow fewer
Option five · five legs📅 seasonal⚠ doesn't run every day — check the schedule
The same idea as Option one, on different routes.
CarrierRideYour bike
⛴️BC FerriesTsawwassen – Southern Gulf IslandsSturdies Bay (Galiano Island) β†’Tsawwassen (Delta)36 kmRoll on, free β€” no reservation neededE-bikes OK β€” no charging on board
Sailing times vary a lot by routing: some trips are about 50 minutes, others run 2 to 3 hours via Swartz Bay. Check the specific sailing before you book.
🚎TransLink900 Bike BusTsawwassen (Delta) β†’Bridgeport (Richmond)22 kmRack on the bus, free2 bikes β€” first come, first servedE-bikes OK
Seasonal: June 12 to September 7, Fridays, weekends and holidays; hourly, timed to ferry sailings. Carries 10 bikes.
🚝SkyTrainTransLinkBridgeport (Richmond) β†’Surrey CentralRoll on, free β€” 2 bikes per carAvoid rush hourE-bikes OK
🚲Travel the short hop from Surrey Central to Surrey (Guildford Rec Centre), about 3.4 km.
🚌EbusVancouver – Calgary (Hwy 1)or Rider Express (Vancouver – Calgary (Hwy 1))Surrey (Guildford Rec Centre) β†’Kamloops280 kmRides in the hold β€” bagged or cloth-wrapped (no plastic), or boxed$30 per bike
Runs the same Highway 1 corridor as Rider Express, so compare schedules and fares.
🚌EbusKamloops – Prince GeorgeKamloops β†’Williams Lake253 kmRides in the hold β€” bagged or cloth-wrapped (no plastic), or boxed$30 per bike
Runs Wed/Fri/Sun toward Prince George and Mon/Thu/Sat toward Kamloops; no service on Tuesdays.
🚲You arrive at Williams Lake.
Option six · four legs✈ the splurge
SkyTrain helps connect the dots.
CarrierRideYour bike
⛴️BC FerriesTsawwassen – Southern Gulf IslandsSturdies Bay (Galiano Island) β†’Tsawwassen (Delta)36 kmRoll on, free β€” no reservation neededE-bikes OK β€” no charging on board
Sailing times vary a lot by routing: some trips are about 50 minutes, others run 2 to 3 hours via Swartz Bay. Check the specific sailing before you book.
🚎TransLink620 Bridgeport Station / Tsawwassen FerryTsawwassen (Delta) β†’Bridgeport (Richmond)22 kmRack on the bus, free2 bikes β€” first come, first servedE-bikes OK
The 620 is year-round, roughly hourly, timed to sailings, with two bike-rack spots. On busy summer ferry days the seasonal 900 Bike Bus can carry an extra 10 bikes.
🚝SkyTrainTransLinkBridgeport (Richmond) β†’Vancouver Airport (YVR) (Richmond)Roll on, free β€” 2 bikes per carAvoid rush hourE-bikes OK
✈️Pacific Coastal AirlinesVancouver – Williams LakeVancouver Airport (YVR) (Richmond) β†’YWL (Williams Lake)342 kmRides in the hold β€” small aircraft, limited spaceAbout $105 per directionNo e-bikes
🚲At the far end, Central Williams Lake is about 8.4 km from YWL (Williams Lake). Ride it, or take a local bus or taxi.
Route facts last checked October 2026. We check that every leg here carries bikes, but policies and seasons change. Check times and book with the operator. Something wrong or out of date? Tell us and we'll fix it.
Explore more

Heading back: Williams Lake to Galiano Island (best: bus + SkyTrain + ferry)

Connections from Galiano Island: Duncan (Cowichan Valley) (best: ferry + bus) · Port Alberni (best: ferry + bus + SkyTrain) · Salmon Arm (best: ferry + bus + SkyTrain) · Whitehorse, YT (best: ferry + bus + SkyTrain)

Connections from Williams Lake: 100 Mile House (best: bus) · Port Moody (best: bus + SkyTrain) · Field (best: bus) · Whitehorse, YT (best: bus + plane)

Check out BC Bike Stops in Galiano Island and Williams Lake