Bus 23 in Calgary links WB Front ST @ Main Ent. South Health Campus SE and Saddletowne Terminal Stop A. The route is 29.9 km long with 63 stops, and the official schedule from Calgary Transit puts the full trip at about 78 minutes. On a weekday it runs 86 trips in one direction, and 64 on a weekend day.

Route at a glance
| Mode | Bus |
|---|---|
| Route number | 23 |
| City | Calgary |
| Transit authority | Calgary Transit |
| Start → end | WB Front ST @ Main Ent. South Health Campus SE → Saddletowne Terminal Stop A |
| End → start | Saddletowne Terminal Stop A → WB Front ST @ Main Ent. South Health Campus SE |
| Route length | 29.9 km / 28.7 km in the opposite direction |
| Number of stops | 63 / 60 in the opposite direction |
| Travel time | about 78 minutes |
| Trips per day | 86 on weekdays, 64 on weekends one way (82 on weekdays → WB Front ST @ Main Ent. South Health Campus SE) |
| Frequency | peak 10–22 · midday 11–22 · weekend 17–21 |
| First / last trip from «WB Front ST @ Main Ent. South Health Campus SE» | 00:21 / 23:56 |
| First / last trip from «Saddletowne Terminal Stop A» | 00:02 / 23:36 |
| Fare | 4.00 $ |
| Updated | August 22, 2026 |
Route of Bus 23
Outbound: WB Front ST @ Main Ent. South Health Campus SE → Saddletowne Terminal Stop A
This direction has 63 stops and runs 29.9 km. The route passes NB Seton WY @ Front ST SE, NB 52 ST SE @ 114 AV SE, NB 52 ST SE @ Erin Woods DR (N. Leg), NB 52 ST NE @ S. of 32 AV NE. Below is the full list with the distance from the first stop.
| No. | Stop | From start | Note |
|---|---|---|---|
| 1 | WB Front ST @ Main Ent. South Health Campus SE | 0.0 km | Terminus |
| 2 | NB Seton WY @ Front ST SE | 0.6 km | |
| 3 | EB Seton BV @ Auburn Bay LI SE | 0.9 km | |
| 4 | NB 52 ST @ Mahogany DR SE | 2.5 km | |
| 5 | NB 52 ST @ Mahogany DR SE | 2.6 km | |
| 6 | NB 52 ST @ Mahogany RD SE | 2.9 km | |
| 7 | NB 52 ST @ Mahogany ST SE | 3.1 km | |
| 8 | NB 52 ST @ Mahogany GA SE | 3.3 km | |
| 9 | NB 52 ST SE @ Copperfield GA | 4.7 km | |
| 10 | NB 52 ST SE @ McIvor BV | 5.1 km | |
| 11 | NB 52 ST SE @ McKenzie Terminal | 5.7 km | |
| 12 | NB 52 ST SE @ New Brighton GA | 6.1 km | |
| 13 | NB 52 ST SE @ Prestwick AV | 6.5 km | |
| 14 | NB 52 ST SE @ New Brighton DR | 6.9 km | |
| 15 | NB 52 ST SE @ 130 AV SE NB | 7.4 km | |
| 16 | NB 52 ST SE @ 126 AV SE | 7.8 km | |
| 17 | NB 52 ST SE @ 114 AV SE | 9.7 km | |
| 18 | NB 52 ST SE @ Dufferin BV SE | 10.1 km | |
| 19 | NB 52 ST SE @ Dufferin PL SE | 10.5 km | |
| 20 | NB 52 ST SE @ 94 AV SE | 11.8 km | |
| 21 | NB 52 ST SE @ 90 AV SE | 12.1 km | |
| 22 | NB 52 ST SE @ 86 AV SE | 12.5 km | |
| 23 | NB 52 ST SE @ 76 AV SE | 13.6 km | |
| 24 | NB 52 ST SE @ 72 AV SE | 14.1 km | |
| 25 | NB 52 ST SE @ 68 AV SE | 14.6 km | |
| 26 | NB 52 ST SE @ 61 AV SE | 15.1 km | |
| 27 | NB 52 ST SE @ 54 AV SE | 15.6 km | |
| 28 | NB 52 ST SE @ 52 AV SE | 15.9 km | |
| 29 | NB 52 ST SE @ 50 AV SE | 16.2 km | |
| 30 | NB 52 ST SE @ 48 AV SE | 16.4 km | |
| 31 | NB 52 ST SE @ Erin Woods DR (S. Leg) | 17.3 km | |
| 32 | NB 52 ST SE @ Erin Woods DR (N. Leg) | 17.9 km | |
| 33 | NB 52 St SE @ 21 AV SE | 19.0 km | |
| 34 | NB 52 ST SE @ 17 AV SE | 19.4 km | |
| 35 | NB 52 ST SE @ 14 AV SE | 19.8 km | |
| 36 | NB 52 ST SE @ 8 AV SE | 20.3 km | |
| 37 | NB 52 ST SE @ 5 AV SE | 20.7 km | |
| 38 | NB 52 ST SE @ S. of Memorial DR | 20.9 km | |
| 39 | NB 52 ST NE @ Memorial DR | 21.2 km | |
| 40 | NB 52 ST & 4 AV NE | 21.4 km | |
| 41 | NB 52 ST NE @ Maryvale DR | 21.6 km | |
| 42 | NB 52 ST NE @ Madeira WY | 21.9 km | |
| 43 | NB 52 ST NE @ Madigan DR | 22.2 km | |
| 44 | NB 52 ST NE @ Rundlehorn DR | 23.3 km | |
| 45 | NB 52 ST NE @ 23 AV NE | 23.5 km | |
| 46 | NB 52 ST NE @ 26 AV NE | 23.8 km | |
| 47 | NB 52 ST NE @ S. of 32 AV NE | 24.1 km | |
| 48 | 32nd Avenue NE Station (NB) | 24.3 km | |
| 49 | Whitehorn Drive Station (NB) | 24.8 km | |
| 50 | NB 52 ST NE @ N. of ped crossing | 25.1 km | |
| 51 | 44th Avenue NE Station (NB) | 25.4 km | |
| 52 | Castleridge Boulevard Station (NB) | 26.4 km | |
| 53 | NB Falconridge BV @ Falworth RD NE | 26.8 km | |
| 54 | NB Falconridge BV @ Falworth WY NE | 27.1 km | |
| 55 | Falshire Drive Station (NB) | 27.3 km | |
| 56 | NB Falconridge BV @ 64 AV NE | 27.9 km | |
| 57 | Martindale Boulevard Station (NB) | 28.2 km | |
| 58 | NB Falconridge BV @ Martinwood RD NE | 28.5 km | |
| 59 | NB Falconridge BV @ Taracove Estates DR NE | 28.8 km | |
| 60 | Saddletowne Circle Station (NB) | 28.9 km | |
| 61 | NB Saddletowne CI @ Taravista DR NE | 29.2 km | |
| 62 | NB Saddletowne CI @ 80 AV NE | 29.6 km | |
| 63 | Saddletowne Terminal Stop A | 29.9 km | Terminus |
Inbound: Saddletowne Terminal Stop A → WB Front ST @ Main Ent. South Health Campus SE
This direction has 60 stops and runs 28.7 km. The route passes SB Saddletowne CI @ Martindale DR NE, SB 52 ST NE @ S. of 32 AV NE, SB 52 ST SE @ Erin Woods DR (N. Leg) SE, SB 52 ST SE @ 110 AV SE. Below is the full list with the distance from the first stop.
| No. | Stop | From start | Note |
|---|---|---|---|
| 1 | Saddletowne Terminal Stop A | 0.0 km | Terminus |
| 2 | SB Saddletowne CI @ Martindale DR NE | 0.4 km | |
| 3 | Saddletowne Circle Station (SB) | 0.7 km | |
| 4 | SB Falconridge BV @ Taracove Estate DR NE | 0.9 km | |
| 5 | SB Falconbridge BV @ Martinwood RD NE | 1.2 km | |
| 6 | Martindale Boulevard Station (SB) | 1.4 km | |
| 7 | SB Falconridge BV @ 64 AV NE | 1.9 km | |
| 8 | Falshire Drive Station (SB) | 2.3 km | |
| 9 | SB Falconridge BV @ Falworth WY NE | 2.6 km | |
| 10 | SB Falconridge BV @ Castlebrook DR NE | 3.0 km | |
| 11 | Castleridge Boulevard Station (SB) | 3.4 km | |
| 12 | 44th Avenue NE Station (SB) | 4.3 km | |
| 13 | SB 52 ST NE @ S. of 44 AV NE | 4.6 km | |
| 14 | Whitehorn Drive Station (SB) | 4.9 km | |
| 15 | 32nd Avenue NE Station (SB) | 5.3 km | |
| 16 | SB 52 ST NE @ S. of 32 AV NE | 5.6 km | |
| 17 | SB 52 ST NE @ 26 AV NE | 6.0 km | |
| 18 | SB 52 ST NE @ 23 AV NE | 6.2 km | |
| 19 | SB 52 ST NE @ Rundlehorn DR | 6.5 km | |
| 20 | SB 52 ST NE @ Marbank DR | 7.6 km | |
| 21 | SB 52 ST NE @ Marlborough DR | 7.8 km | |
| 22 | SB 52 ST NE @ Maryvale DR | 8.2 km | |
| 23 | SB 52 ST E @ Memorial DR | 8.6 km | |
| 24 | SB 52 ST SE @ 5 AV SE | 9.0 km | |
| 25 | SB 52 ST SE @ 8 AV SE | 9.5 km | |
| 26 | SB 52 ST SE @ 14 AV SE | 10.0 km | |
| 27 | SB 52 ST SE @ 17 AV SE | 10.4 km | |
| 28 | SB 52 ST SE @ 21 AV SE | 10.6 km | |
| 29 | SB 52 ST SE @ 23 AV SE | 11.0 km | |
| 30 | SB 52 ST SE @ Erin Woods DR (N. Leg) SE | 11.9 km | |
| 31 | SB 52 ST SE @ S. Leg Erin Woods DR | 12.4 km | |
| 32 | SB 52 ST SE@ 48 AV SE | 13.3 km | |
| 33 | SB 52 ST SE @ 50 AV SE | 13.6 km | |
| 34 | SB 52 ST SE @ 52 AV SE | 13.8 km | |
| 35 | SB 52 ST SE @ 54 AV SE | 14.1 km | |
| 36 | SB 52 ST SE @ 61 AV SE | 14.7 km | |
| 37 | SB 52 ST SE @ 68 AV SE | 15.2 km | |
| 38 | SB 52 ST SE @ 72 AV SE | 15.7 km | |
| 39 | SB 52 ST SE @ 76 AV SE | 16.2 km | |
| 40 | SB 52 ST SE @ 86 AV SE | 17.3 km | |
| 41 | SB 52 ST SE @ 90 AV SE | 17.7 km | |
| 42 | SB 52 ST SE @ 94 AV SE | 18.0 km | |
| 43 | SB 52 ST SE @ 106 AV SE | 19.2 km | |
| 44 | SB 52 ST SE @ 110 AV SE | 19.7 km | |
| 45 | SB 52 ST SE @ 114 AV SE | 20.1 km | |
| 46 | SB 52 ST SE @ 126 AV SE | 21.9 km | |
| 47 | SB 52 ST SE @ 130 AV SE | 22.2 km | |
| 48 | SB 52 ST SE @ N. of Prestwick GA | 22.6 km | |
| 49 | SB 52 ST SE @ Prestwick AV | 23.2 km | |
| 50 | SB 52 ST SE @ McKenzie Towne BV | 23.6 km | |
| 51 | SB 52 St @ Mckenzie Towne Li SE | 23.9 km | |
| 52 | SB 52 ST SE @ McKenzie Towne DR | 24.1 km | |
| 53 | SB 52 ST SE @ McIvor BV | 24.4 km | |
| 54 | SB 52 ST SE @ Copperfield GA | 24.6 km | |
| 55 | SB 52 ST @ Auburn Bay DR SE | 26.0 km | |
| 56 | SB 52 ST SE @ Auburn Meadows AV SE | 26.2 km | |
| 57 | SB 52 ST @ Auburn Meadows DR SE | 26.7 km | |
| 58 | SB 52 ST @ Auburn Bay AV SE | 26.9 km | |
| 59 | WB Market ST @ 45 ST SE | 28.2 km | |
| 60 | WB Front ST @ Main Ent. South Health Campus SE | 28.7 km | Terminus |
Schedule and frequency
According to the official schedule from Calgary Transit, the route runs 86 trips in one direction on a weekday, and 64 on a weekend day.
| Direction | Weekdays | Weekends and holidays |
|---|---|---|
| From «WB Front ST @ Main Ent. South Health Campus SE» | 00:21 — 23:56 | 00:01 — 23:42 |
| From «Saddletowne Terminal Stop A» | 00:02 — 23:36 | 00:05 — 23:47 |
Frequency calculated from the departure table: in the morning peak buses run every 10–22 minutes, most often every 12; midday every 11–22 minutes; in the afternoon peak every 11–15; on weekends every 17–21 minutes.
Fare and payment
A single ride costs 4.00 $. The same fare applies to CTrain and buses in Calgary.
An adult cash fare is $4.00 and is valid for 90 minutes, transfers included. Youth and students pay $2.65; children 12 and under ride free. A day pass is $12.65, an adult monthly pass $126.00. Transfers within 90 minutes are free. The cash fare itself covers 90 minutes of travel, so transfers within that window cost nothing extra. An unlimited monthly pass costs $126.00.
Frequently asked questions
How much does a ride on bus 23 cost?
4.00 $ for a single ride.
When do the first and last trips run?
From WB Front ST @ Main Ent. South Health Campus SE the first is at 00:21 and the last at 23:56. From Saddletowne Terminal Stop A they are 00:02 and 23:36.
How long does the trip from WB Front ST @ Main Ent. South Health Campus SE to Saddletowne Terminal Stop A take?
About 78 minutes end to end — the median of full trips in the official schedule.
How many stops does the route have?
63 outbound and 60 inbound according to the official GTFS feed. The two lists do not match exactly.
Does bus 23 run on weekends?
Yes. On weekends and holidays there are 64 trips in one direction, running from WB Front ST @ Main Ent. South Health Campus SE between 00:01 and 23:42.
Every route number with its termini, operating hours and travel time is collected in the Calgary buses overview.
Data current as of August 22, 2026. Schedule and termini — Calgary Transit. Fares — Calgary Transit, Fares & passes. Stop list, schedule and route geometry come from the official GTFS feed (City of Calgary Open Data).