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 Duncan (Cowichan Valley) to Armstrong.

For scale
As the crow flies374 km
Biking whole way537 km · 35 h 44 m
By car592 km · 7 h 36 m

We found 10 ways to get you there.

🎒 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
Grab a window seat, the scenery's included.
CarrierRideYour bike
🚎BC Transit70 NCX Nanaimo - Cowichan ExpressDuncan →Bay D at Downtown Nanaimo Exch46 kmRack on the bus, free — 2 bikes · first come, first servedE-bikes OK
🚲Travel the short hop from Bay D at Downtown Nanaimo Exch to Hullo Nanaimo Terminal (Port Way), about 1.4 km. If pedalling it doesn't appeal, A.C. Taxi, Yellow Cab Nanaimo might help.
⛴️HulloHullo (Nanaimo – Vancouver)Hullo Nanaimo Terminal (Port Way) →CXH (Vancouver)61 kmBook online ahead — 6 bike spots per sailing, 1 per guest$19.99 one way — $25 in personNo e-bikes — no trailers, 80 in / 50 lb max
🚲Travel the short hop from CXH (Vancouver) to Vancouver Canada Place, about 0.8 km. If pedalling it doesn't appeal, Black Top Cabs, Maclure'S Cabs might help.
🚝SkyTrainTransLinkVancouver Canada Place →Pacific Central Station (Vancouver)Roll on, free — 2 bikes per carAvoid rush hourE-bikes OK
🚌EbusVancouver – KelownaPacific Central Station (Vancouver) →Kelowna (Orchard Park Mall)331 kmRides in the hold — bagged or cloth-wrapped (no plastic), or boxed$30 per bike
🚌EbusKamloops – Kelowna (via Salmon Arm)or Ebus (Kelowna/Salmon Arm – Golden)Kelowna (Orchard Park Mall) →Armstrong68 kmRides in the hold — bagged or cloth-wrapped (no plastic), or boxed$30 per bike
🚲You arrive at Armstrong.
Option two · five legs
The same idea as Option one, on different routes.
CarrierRideYour bike
🚎BC Transit70 NCX Nanaimo - Cowichan ExpressDuncan →Bay D at Downtown Nanaimo Exch46 kmRack on the bus, free — 2 bikes · first come, first servedE-bikes OK
🚲Travel the short hop from Bay D at Downtown Nanaimo Exch to Hullo Nanaimo Terminal (Port Way), about 1.4 km.
⛴️HulloHullo (Nanaimo – Vancouver)Hullo Nanaimo Terminal (Port Way) →CXH (Vancouver)61 kmBook online ahead — 6 bike spots per sailing, 1 per guest$19.99 one way — $25 in personNo e-bikes — no trailers, 80 in / 50 lb max
🚲Travel the short hop from CXH (Vancouver) to Vancouver Canada Place, about 0.8 km.
🚝SkyTrainTransLinkVancouver Canada Place →Pacific Central Station (Vancouver)Roll on, free — 2 bikes per carAvoid rush hourE-bikes OK
🚌EbusVancouver – Kamloopsor Rider Express (Vancouver – Calgary)Pacific Central Station (Vancouver) →Kamloops301 kmRides in the hold — bagged or cloth-wrapped (no plastic), or boxed$30 per bike
🚌EbusKamloops – Kelowna (via Salmon Arm)Kamloops →Armstrong121 kmRides in the hold — bagged or cloth-wrapped (no plastic), or boxed$30 per bike
🚲You arrive at Armstrong.
Option three · five legs
Another way: the same idea as Option one, on different routes.
CarrierRideYour bike
🚎BC Transit70 NCX Nanaimo - Cowichan ExpressDuncan →Bay D at Downtown Nanaimo Exch46 kmRack on the bus, free — 2 bikes · first come, first servedE-bikes OK
🚲Travel the short hop from Bay D at Downtown Nanaimo Exch to Hullo Nanaimo Terminal (Port Way), about 1.4 km.
⛴️HulloHullo (Nanaimo – Vancouver)Hullo Nanaimo Terminal (Port Way) →CXH (Vancouver)61 kmBook online ahead — 6 bike spots per sailing, 1 per guest$19.99 one way — $25 in personNo e-bikes — no trailers, 80 in / 50 lb max
🚲Travel the short hop from CXH (Vancouver) to Vancouver Canada Place, about 0.8 km.
🚝SkyTrainTransLinkVancouver Canada Place →Pacific Central Station (Vancouver)Roll on, free — 2 bikes per carAvoid rush hourE-bikes OK
🚌EbusVancouver – Calgary (Hwy 1)Pacific Central Station (Vancouver) →Sorrento368 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 – Kelowna (via Salmon Arm)Sorrento →Armstrong55 kmRides in the hold — bagged or cloth-wrapped (no plastic), or boxed$30 per bike
🚲You arrive at Armstrong.
Option four · six legs⚠ doesn't run every day — check the schedule
A little bit of everything.
CarrierRideYour bike
🚎BC Transit70 NCX Nanaimo - Cowichan ExpressDuncan →Bay D at Downtown Nanaimo Exch46 kmRack on the bus, free — 2 bikes · first come, first servedE-bikes OK
🚲Travel the short hop from Bay D at Downtown Nanaimo Exch to Hullo Nanaimo Terminal (Port Way), about 1.4 km.
⛴️HulloHullo (Nanaimo – Vancouver)Hullo Nanaimo Terminal (Port Way) →CXH (Vancouver)61 kmBook online ahead — 6 bike spots per sailing, 1 per guest$19.99 one way — $25 in personNo e-bikes — no trailers, 80 in / 50 lb max
🚲Travel the short hop from CXH (Vancouver) to Vancouver Canada Place, about 0.8 km.
🚝SkyTrainTransLinkVancouver Canada Place →Pacific Central Station (Vancouver)Roll on, free — 2 bikes per carAvoid rush hourE-bikes OK
🚌Rider ExpressVancouver – CalgaryPacific Central Station (Vancouver) →Hudson Ave NE & 6 St NE (Salmon Arm)390 kmRides in the hold — bagged, wrapped, or boxed$50 per bike — non-refundable
🚎BC Transit41 Salmon Arm-EnderbyHudson Ave NE & 6 St NE (Salmon Arm) →Enderby19 kmRack on the bus, free — 2 bikes · first come, first servedE-bikes OK
🚎BC Transit60 Enderby/VernonEnderby →Armstrong12 kmRack on the bus, free — 2 bikes · first come, first servedE-bikes OK
🚲You arrive at Armstrong.
Show six moreShow fewer
Option five · five legs
The same trip, but with Rider Express for the coach bus leg.
CarrierRideYour bike
🚎BC Transit70 NCX Nanaimo - Cowichan ExpressDuncan →Bay D at Downtown Nanaimo Exch46 kmRack on the bus, free — 2 bikes · first come, first servedE-bikes OK
🚲Travel the short hop from Bay D at Downtown Nanaimo Exch to Hullo Nanaimo Terminal (Port Way), about 1.4 km.
⛴️HulloHullo (Nanaimo – Vancouver)Hullo Nanaimo Terminal (Port Way) →CXH (Vancouver)61 kmBook online ahead — 6 bike spots per sailing, 1 per guest$19.99 one way — $25 in personNo e-bikes — no trailers, 80 in / 50 lb max
🚲Travel the short hop from CXH (Vancouver) to Vancouver Canada Place, about 0.8 km.
🚝SkyTrainTransLinkVancouver Canada Place →Pacific Central Station (Vancouver)Roll on, free — 2 bikes per carAvoid rush hourE-bikes OK
🚌Rider ExpressVancouver – CalgaryPacific Central Station (Vancouver) →Hudson Ave NE & 6 St NE (Salmon Arm)390 kmRides in the hold — bagged, wrapped, or boxed$50 per bike — non-refundable
🚌EbusKelowna/Salmon Arm – GoldenHudson Ave NE & 6 St NE (Salmon Arm) →Armstrong31 kmRides in the hold — bagged or cloth-wrapped (no plastic), or boxed$30 per bike
🚲You arrive at Armstrong.
Option six · six legs
A ferry in the middle ties it all together.
CarrierRideYour bike
🚎BC Transit70 NCX Nanaimo - Cowichan ExpressDuncan →Bay D at Downtown Nanaimo Exch46 kmRack on the bus, free — 2 bikes · first come, first servedE-bikes OK
🚲Travel the short hop from Bay D at Downtown Nanaimo Exch to Hullo Nanaimo Terminal (Port Way), about 1.4 km.
⛴️HulloHullo (Nanaimo – Vancouver)Hullo Nanaimo Terminal (Port Way) →CXH (Vancouver)61 kmBook online ahead — 6 bike spots per sailing, 1 per guest$19.99 one way — $25 in personNo e-bikes — no trailers, 80 in / 50 lb max
🚲Travel the short hop from CXH (Vancouver) to Vancouver Canada Place, about 0.8 km.
🚝SkyTrainTransLinkVancouver Canada Place →Lougheed Stn Bay 5 (Burnaby)Roll on, free — 2 bikes per carAvoid rush hourE-bikes OK
🚎BC Transit66 Fraser Valley ExpressLougheed Stn Bay 5 (Burnaby) →Downtown Chilliwack Bay B76 kmRack on the bus, free — 2 bikes · first come, first servedE-bikes OK
🚲Travel the short hop from Downtown Chilliwack Bay B to Chilliwack, about 1.3 km. If pedalling it doesn't appeal, Chilliwack Taxi might help.
🚌Rider ExpressVancouver – Calgary (Hwy 1)Chilliwack →Sorrento274 kmRides in the hold — bagged, wrapped, or boxed$50 per bike — non-refundable
🚌EbusKamloops – Kelowna (via Salmon Arm)Sorrento →Armstrong55 kmRides in the hold — bagged or cloth-wrapped (no plastic), or boxed$30 per bike
🚲You arrive at Armstrong.
Option seven · seven legs
A few connections, but each one moves you closer.
CarrierRideYour bike
🚎BC Transit66 CVX Cowichan - Victoria ExpressHwy 1 & Boys Rd (North Cowichan) →Legislature Exch (Belleville St) Bay G (Victoria)46 kmRack on the bus, free — 2 bikes · first come, first servedE-bikes OK
🚲Travel the short hop from Legislature Exch (Belleville St) Bay G (Victoria) to Douglas St at Pandora Ave (Victoria), about 1.3 km. If pedalling it doesn't appeal, Bluebird Cabs, Sidney Taxi might help.
🚎BC Transit70 Swartz Bay / Downtownor the 72 Swartz Bay / Downtown (via Saanichton)Douglas St at Pandora Ave (Victoria) →Swartz Bay (North Saanich)29 kmRack on the bus, free — 2 bikes · first come, first servedE-bikes OK
⛴️BC FerriesTsawwassen – Swartz BaySwartz Bay (North Saanich) →Tsawwassen (Delta)41 kmRoll on, free — no reservation neededE-bikes OK — no charging on board
🚎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) →Pacific Central Station (Vancouver)Roll on, free — 2 bikes per carAvoid rush hourE-bikes OK
🚌EbusVancouver – KelownaPacific Central Station (Vancouver) →Kelowna (Orchard Park Mall)331 kmRides in the hold — bagged or cloth-wrapped (no plastic), or boxed$30 per bike
🚌EbusKamloops – Kelowna (via Salmon Arm)or Ebus (Kelowna/Salmon Arm – Golden)Kelowna (Orchard Park Mall) →Armstrong68 kmRides in the hold — bagged or cloth-wrapped (no plastic), or boxed$30 per bike
🚲You arrive at Armstrong.
Option eight · seven legs
The same idea as Option seven, on different routes.
CarrierRideYour bike
🚎BC Transit66 CVX Cowichan - Victoria ExpressHwy 1 & Boys Rd (North Cowichan) →Legislature Exch (Belleville St) Bay G (Victoria)46 kmRack on the bus, free — 2 bikes · first come, first servedE-bikes OK
🚲Travel the short hop from Legislature Exch (Belleville St) Bay G (Victoria) to Douglas St at Pandora Ave (Victoria), about 1.3 km.
🚎BC Transit70 Swartz Bay / Downtownor the 72 Swartz Bay / Downtown (via Saanichton)Douglas St at Pandora Ave (Victoria) →Swartz Bay (North Saanich)29 kmRack on the bus, free — 2 bikes · first come, first servedE-bikes OK
⛴️BC FerriesTsawwassen – Swartz BaySwartz Bay (North Saanich) →Tsawwassen (Delta)41 kmRoll on, free — no reservation neededE-bikes OK — no charging on board
🚎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) →Pacific Central Station (Vancouver)Roll on, free — 2 bikes per carAvoid rush hourE-bikes OK
🚌EbusVancouver – Kamloopsor Rider Express (Vancouver – Calgary)Pacific Central Station (Vancouver) →Kamloops301 kmRides in the hold — bagged or cloth-wrapped (no plastic), or boxed$30 per bike
🚌EbusKamloops – Kelowna (via Salmon Arm)Kamloops →Armstrong121 kmRides in the hold — bagged or cloth-wrapped (no plastic), or boxed$30 per bike
🚲You arrive at Armstrong.
Option 9 · seven legs
Another way: the same idea as Option seven, on different routes.
CarrierRideYour bike
🚎BC Transit66 CVX Cowichan - Victoria ExpressHwy 1 & Boys Rd (North Cowichan) →Legislature Exch (Belleville St) Bay G (Victoria)46 kmRack on the bus, free — 2 bikes · first come, first servedE-bikes OK
🚲Travel the short hop from Legislature Exch (Belleville St) Bay G (Victoria) to Douglas St at Pandora Ave (Victoria), about 1.3 km.
🚎BC Transit70 Swartz Bay / Downtownor the 72 Swartz Bay / Downtown (via Saanichton)Douglas St at Pandora Ave (Victoria) →Swartz Bay (North Saanich)29 kmRack on the bus, free — 2 bikes · first come, first servedE-bikes OK
⛴️BC FerriesTsawwassen – Swartz BaySwartz Bay (North Saanich) →Tsawwassen (Delta)41 kmRoll on, free — no reservation neededE-bikes OK — no charging on board
🚎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) →Pacific Central Station (Vancouver)Roll on, free — 2 bikes per carAvoid rush hourE-bikes OK
🚌EbusVancouver – Calgary (Hwy 1)Pacific Central Station (Vancouver) →Sorrento368 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 – Kelowna (via Salmon Arm)Sorrento →Armstrong55 kmRides in the hold — bagged or cloth-wrapped (no plastic), or boxed$30 per bike
🚲You arrive at Armstrong.
Option 10 · five legs✈ the splurge
A city bus, two flights, a SkyTrain, and a coach bus.
CarrierRideYour bike
🚎BC Transit66 CVX Cowichan - Victoria ExpressHwy 1 & Boys Rd (North Cowichan) →Legislature Exch (Belleville St) Bay G (Victoria)46 kmRack on the bus, free — 2 bikes · first come, first servedE-bikes OK
🚲Travel the short hop from Legislature Exch (Belleville St) Bay G (Victoria) to Victoria Harbour, about 0.7 km.
🛩️Harbour AirVancouver Harbour – Victoria HarbourVictoria Harbour →CXH (Vancouver)98 kmFront wheel must come off$20 handling fee — bike weight counts toward your baggage allowanceNot on the Twin Otter — other floatplanes are fine; confirm when booking
🚲Travel the short hop from CXH (Vancouver) to Vancouver Canada Place, about 0.8 km.
🚝SkyTrainTransLinkVancouver Canada Place →Vancouver Airport (YVR) (Richmond)Roll on, free — 2 bikes per carAvoid rush hourE-bikes OK
✈️Air CanadaVancouver (YVR) – Kelowna (YLW)Vancouver Airport (YVR) (Richmond) →Kelowna Airport288 kmBox or sturdy bag requiredBook ahead for your bikeAbout $50 per directionNo e-bikes
🚌EbusKamloops – Kelowna (via Salmon Arm)Kelowna Airport →Armstrong56 kmRides in the hold — bagged or cloth-wrapped (no plastic), or boxed$30 per bike
🚲You arrive at Armstrong.
Route facts last checked July 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: Armstrong to Duncan (Cowichan Valley) (best: bus + SkyTrain + ferry)

Connections from Duncan (Cowichan Valley): Galiano Island (best: bus + ferry) · Squamish (best: bus + ferry) · Enderby (best: bus + ferry + SkyTrain) · Prince Rupert (best: bus + rental car + ferry)

Connections from Armstrong: Sicamous (best: bus) · Pemberton (best: bus + SkyTrain) · Sechelt (best: bus + ferry) · Haida Gwaii (best: bus + train + ferry)

Check out BC Bike Stops in Duncan (Cowichan Valley) and Armstrong