Bus 39 in Ottawa links Millennium B and Blair C. The route is 24.0 km long with 33 stops, and the official schedule from OC Transpo puts the full trip at about 40 minutes. On a weekday it runs 83 trips in one direction, and 65 on a weekend day.

Route at a glance
| Mode | Bus |
|---|---|
| Route number | 39 |
| City | Ottawa |
| Transit authority | OC Transpo |
| Start → end | Millennium B → Blair C |
| End → start | Blair C → Millennium B |
| Route length | 24.0 km / 29.6 km in the opposite direction |
| Number of stops | 33 / 45 in the opposite direction |
| Travel time | about 40 minutes |
| Trips per day | 83 on weekdays, 65 on weekends one way (80 on weekdays → Millennium B) |
| Frequency | peak 3–25 · midday 2–30 · weekend 8–30 |
| First / last trip from «Millennium B» | 00:25 / 23:55 |
| First / last trip from «Blair C» | 00:22 / 23:52 |
| Fare | — |
| Updated | August 23, 2026 |
Route of Bus 39
Outbound: Millennium B → Blair C
This direction has 33 stops and runs 24.0 km. The route passes Millennium / Trim, Valin / Trim, Springridge / Caprihani, Taylor Creek / Lacolle. Below is the full list with the distance from the first stop.
| No. | Stop | From start | Note |
|---|---|---|---|
| 1 | Millennium B | 0.0 km | Terminus |
| 2 | Millennium / Trim | 0.2 km | |
| 3 | Trim / Salzburg | 0.6 km | |
| 4 | Innes / Trim | 0.9 km | |
| 5 | Valin / Innes | 1.5 km | |
| 6 | Valin / Trail Side | 1.7 km | |
| 7 | Valin / Mondavi | 2.0 km | |
| 8 | Valin / Breezewood | 2.3 km | |
| 9 | Valin / Trim | 2.5 km | |
| 10 | Valin / Provence | 2.9 km | |
| 11 | Valin / Demeter | 3.2 km | |
| 12 | Valin / Frenette | 3.5 km | |
| 13 | Portobello / Ad. 1538 | 3.9 km | |
| 14 | Springridge / Trim | 4.3 km | |
| 15 | Springridge / Lobelia | 4.5 km | |
| 16 | Springridge / Caprihani | 4.7 km | |
| 17 | Springridge / Heatherstone | 4.9 km | |
| 18 | Springridge / Birdseye | 5.1 km | |
| 19 | Trim / Tempo Pathway | 5.4 km | |
| 20 | Trim / Watters | 5.8 km | |
| 21 | Trim / Antigonish | 5.9 km | |
| 22 | St Joseph / Trim | 6.5 km | |
| 23 | Taylor Creek / Lacolle | 7.2 km | |
| 24 | Taylor Creek / Lacolle | 7.3 km | |
| 25 | Taylor Creek / Vimont | 7.6 km | |
| 26 | Taylor Creek / Lacolle | 8.0 km | |
| 27 | Taylor Creek / Trim | 8.1 km | |
| 28 | Trim 2A | 8.7 km | |
| 29 | Place D’orléans E | 13.5 km | |
| 30 | Place D’orléans – Park & Ride F | 14.2 km | |
| 31 | Jeanne D’arc 2A | 16.7 km | |
| 32 | R.r. 174 / Montréal | 20.4 km | |
| 33 | Blair C | 24.0 km | Terminus |
Inbound: Blair C → Millennium B
This direction has 45 stops and runs 29.6 km. The route passes Laurier E / Copernicus, Tremblay / Avenue P, Ogilvie / Beaulieu, Jeanne D’arc / Youville. Below is the full list with the distance from the first stop.
| No. | Stop | From start | Note |
|---|---|---|---|
| 1 | Rideau B | 0.0 km | Terminus |
| 2 | Laurier E / Copernicus | 1.1 km | |
| 3 | King Edward / Osgoode | 1.4 km | |
| 4 | Uottawa A | 1.7 km | |
| 5 | King Edward / Templeton | 1.9 km | |
| 6 | Lees / Chapel | 2.7 km | |
| 7 | Lees A | 3.0 km | |
| 8 | 169 Lees Ave | 3.1 km | |
| 9 | Hurdman A | 5.6 km | |
| 10 | Tremblay A | 7.5 km | |
| 11 | Tremblay / Avenue K | 7.7 km | |
| 12 | Tremblay / Avenue P | 8.1 km | |
| 13 | Tremblay / Avenue R | 8.2 km | |
| 14 | Tremblay / Avenue U | 8.5 km | |
| 15 | Tremblay / Ad. 530 | 8.8 km | |
| 16 | St-laurent / Tremblay | 9.1 km | |
| 17 | St-laurent C | 10.1 km | |
| 18 | St-laurent / Ogilvie | 11.0 km | |
| 19 | Cyrville / Joseph Cyr | 11.3 km | |
| 20 | Cyrville D | 11.7 km | |
| 21 | Ogilvie / Cummings | 12.0 km | |
| 22 | Ogilvie / Beaulieu | 12.2 km | |
| 23 | Ogilvie / Aviation | 12.4 km | |
| 24 | Ogilvie / Palmerston | 12.7 km | |
| 25 | Ogilvie / Cadboro | 13.0 km | |
| 26 | Ogilvie / City Park | 13.3 km | |
| 27 | Ogilvie / Ad. 1820 | 13.5 km | |
| 28 | City Park / Ogilvie | 13.7 km | |
| 29 | Blair G | 14.7 km | |
| 30 | R.R.174 / Montréal | 18.9 km | |
| 31 | Jeanne D’arc 1B | 22.4 km | |
| 32 | Jeanne D’arc / Youville | 22.7 km | |
| 33 | Jeanne D’arc / St Joseph | 22.9 km | |
| 34 | St Joseph / Notre Dame | 23.2 km | |
| 35 | St Joseph / Grey Nuns | 23.5 km | |
| 36 | St Joseph / Boyer | 23.8 km | |
| 37 | St Joseph / Orléans | 24.0 km | |
| 38 | St Joseph / Dussere | 24.3 km | |
| 39 | St Joseph / St Jean | 24.4 km | |
| 40 | St Joseph / Belcourt | 24.8 km | |
| 41 | St Joseph / Edgar Brault | 25.1 km | |
| 42 | Place D’orléans / St Joseph | 25.3 km | |
| 43 | Place D’orléans / Rocque | 25.5 km | |
| 44 | Place D’orléans B | 25.8 km | |
| 45 | Trim 1A | 29.6 km | Terminus |
Schedule and frequency
According to the official schedule from OC Transpo, the route runs 83 trips in one direction on a weekday, and 65 on a weekend day.
| Direction | Weekdays | Weekends and holidays |
|---|---|---|
| From «Millennium B» | 00:25 — 23:55 | 00:00 — 23:30 |
| From «Blair C» | 00:22 — 23:52 | 00:38 — 23:38 |
Frequency calculated from the departure table: in the morning peak buses run every 3–25 minutes, most often every 14; midday every 2–30 minutes; in the afternoon peak every 1–30; on weekends every 8–30 minutes.
Frequently asked questions
When do the first and last trips run?
From Millennium B the first is at 00:25 and the last at 23:55. From Blair C they are 00:22 and 23:52.
How long does the trip from Millennium B to Blair C take?
About 40 minutes end to end — the median of full trips in the official schedule.
How many stops does the route have?
33 outbound and 45 inbound according to the official GTFS feed. The two lists do not match exactly.
Does bus 39 run on weekends?
Yes. On weekends and holidays there are 65 trips in one direction, running from Millennium B between 00:00 and 23:30.
Every route number with its termini, operating hours and travel time is collected in the Ottawa buses overview.
Data current as of August 23, 2026. Schedule and termini — OC Transpo. Fares — OC Transpo. Stop list, schedule and route geometry come from the official GTFS feed (OC Transpo, version S1000512-S1000514).