# Route 49 Forest Heights — Calgary Transit Bus Schedule, Frequency & Stops

Route 49 Forest Heights is a Calgary Transit bus route running toward FOREST HEIGHTS. Service operates on Monday–Friday, Monday–Thursday, Sunday & holidays, Saturday (Jun 27 – Aug 29), Stampede (Jul 6–10), Friday, Stampede (Jul 4–11), Saturday (Jun 6), Sunday (Jun 7), Saturday (Jun 13), Sunday (Jun 14), Saturday (Jun 20), Sunday (Jun 21), Stampede (Jul 2), Stampede (Jul 3), Stampede (Jul 5), Stampede (Jul 8), Stampede (Jul 12) and Stampede (Jul 13) days. On Monday–Friday & Stampede (Jul 6–10) & Stampede (Jul 2) & Stampede (Jul 3) & Stampede (Jul 8) & Stampede (Jul 13) days, service toward FOREST HEIGHTS runs from 4:41 AM to 12:54 AM, about every 14 minutes at peak and every 22 minutes midday. All times are scheduled times, effective Jun 3 – Aug 30, 2026.

## Service alerts

### Service alert

Active Jan 1, 2026, 10:00 AM MT until Jun 11, 2026, 11:59 PM MT.

Some trips may have been removed from this route's daily trips. Please use the trip planner on calgarytransit.com to double-check your schedule before you head out to catch your bus.
### Stop moved

Active Jun 8, 2026, 4:00 AM MT until Jun 26, 2026, 11:59 PM MT.

Starting Monday, June 8 at the start of service through the end of service on Friday, June 26, there will be concrete work at stop #6184 - routes 43, 49, 87 and 135 will have a stop closure.

The following stop will be temporarily closed:

- SB 36 ST E. @ Radcliffe DR (#6184) - Routes 43, 49, 87 and 135

Please use the following stop in lieu of the closed stop:

- SB 36 ST S.E. @ Radcliffe DR - temporary stop, 20m south of the closed stop*

*Please note: temporary stop is not universally accessible.

Alerts as of Jun 10, 2026, 6:11 AM MT

## Frequency & span — toward FOREST HEIGHTS

Route 49 frequency and service span toward FOREST HEIGHTS, effective Jun 3 – Aug 30, 2026

| Days | First | Last | Peak | Midday | Evening |
| --- | --- | --- | --- | --- | --- |
| Monday–Friday & Stampede (Jul 6–10) & Stampede (Jul 2) & Stampede (Jul 3) & Stampede (Jul 8) & Stampede (Jul 13) | 4:41 AM | 12:54 AM | every 14 min | every 22 min | every 22 min |
| Monday–Thursday | 4:41 AM | 12:54 AM | every 14 min | every 22 min | every 22 min |
| Sunday & holidays & Sunday (Jun 7) & Sunday (Jun 14) & Sunday (Jun 21) & Stampede (Jul 5) & Stampede (Jul 12) | 5:50 AM | 12:39 AM | every 35 min | every 37 min | every 36 min |
| Saturday (Jun 27 – Aug 29) & Stampede (Jul 4–11) & Saturday (Jun 6) & Saturday (Jun 13) & Saturday (Jun 20) | 5:20 AM | 12:41 AM | every 39 min | every 43 min | every 43 min |
| Friday | 4:41 AM | 12:54 AM | every 14 min | every 22 min | every 22 min |

## Departures from Marlborough LRT Station (SB 36 ST NE @ 8 AV NE) — toward FOREST HEIGHTS

### Monday–Friday & Stampede (Jul 6–10) & Stampede (Jul 2) & Stampede (Jul 3) & Stampede (Jul 8) & Stampede (Jul 13)

Route 49 toward FOREST HEIGHTS — departures from Marlborough LRT Station (SB 36 ST NE @ 8 AV NE), Monday–Friday & Stampede (Jul 6–10) & Stampede (Jul 2) & Stampede (Jul 3) & Stampede (Jul 8) & Stampede (Jul 13), effective Jun 3 – Aug 30, 2026

| Hour | Departures |
| --- | --- |
| 4 AM | 4:41 |
| 5 AM | 5:03, 5:25, 5:38, 5:52 |
| 6 AM | 6:07, 6:22, 6:36, 6:50 |
| 7 AM | 7:05, 7:20, 7:34, 7:48 |
| 8 AM | 8:03, 8:17, 8:30, 8:47 |
| 9 AM | 9:00, 9:14, 9:36, 9:58 |
| 10 AM | 10:20, 10:42 |
| 11 AM | 11:04, 11:26, 11:48 |
| 12 PM | 12:10, 12:32, 12:54 |
| 1 PM | 1:16, 1:38 |
| 2 PM | 2:00, 2:22, 2:34, 2:46, 2:58 |
| 3 PM | 3:10, 3:22, 3:34, 3:45, 3:57 |
| 4 PM | 4:09, 4:23, 4:38, 4:54 |
| 5 PM | 5:10, 5:26, 5:42, 5:58 |
| 6 PM | 6:14, 6:30, 6:46 |
| 7 PM | 7:02, 7:24, 7:46 |
| 8 PM | 8:08, 8:30, 8:52 |
| 9 PM | 9:14, 9:36, 9:58 |
| 10 PM | 10:42 |
| 11 PM | 11:26 |
| After midnight | 12:10 AM, 12:54 AM (after midnight — late-night service from the previous service day) |

All departures (Monday–Friday & Stampede (Jul 6–10) & Stampede (Jul 2) & Stampede (Jul 3) & Stampede (Jul 8) & Stampede (Jul 13)): 4:41 AM, 5:03 AM, 5:25 AM, 5:38 AM, 5:52 AM, 6:07 AM, 6:22 AM, 6:36 AM, 6:50 AM, 7:05 AM, 7:20 AM, 7:34 AM, 7:48 AM, 8:03 AM, 8:17 AM, 8:30 AM, 8:47 AM, 9:00 AM, 9:14 AM, 9:36 AM, 9:58 AM, 10:20 AM, 10:42 AM, 11:04 AM, 11:26 AM, 11:48 AM, 12:10 PM, 12:32 PM, 12:54 PM, 1:16 PM, 1:38 PM, 2:00 PM, 2:22 PM, 2:34 PM, 2:46 PM, 2:58 PM, 3:10 PM, 3:22 PM, 3:34 PM, 3:45 PM, 3:57 PM, 4:09 PM, 4:23 PM, 4:38 PM, 4:54 PM, 5:10 PM, 5:26 PM, 5:42 PM, 5:58 PM, 6:14 PM, 6:30 PM, 6:46 PM, 7:02 PM, 7:24 PM, 7:46 PM, 8:08 PM, 8:30 PM, 8:52 PM, 9:14 PM, 9:36 PM, 9:58 PM, 10:42 PM, 11:26 PM, 12:10 AM (after midnight), 12:54 AM (after midnight)

### Monday–Thursday

Route 49 toward FOREST HEIGHTS — departures from Marlborough LRT Station (SB 36 ST NE @ 8 AV NE), Monday–Thursday, effective Jun 3 – Aug 30, 2026

| Hour | Departures |
| --- | --- |
| 4 AM | 4:41 |
| 5 AM | 5:03, 5:25, 5:38, 5:52 |
| 6 AM | 6:07, 6:22, 6:36, 6:50 |
| 7 AM | 7:05, 7:20, 7:34, 7:48 |
| 8 AM | 8:03, 8:17, 8:30, 8:36, 8:47 |
| 9 AM | 9:00, 9:14, 9:36, 9:58 |
| 10 AM | 10:20, 10:42 |
| 11 AM | 11:04, 11:26, 11:48 |
| 12 PM | 12:10, 12:32, 12:54 |
| 1 PM | 1:16, 1:38 |
| 2 PM | 2:00, 2:22, 2:34, 2:46, 2:58 |
| 3 PM | 3:10, 3:22, 3:32, 3:37, 3:45, 3:57 |
| 4 PM | 4:09, 4:23, 4:38, 4:54 |
| 5 PM | 5:10, 5:26, 5:42, 5:58 |
| 6 PM | 6:14, 6:30, 6:46 |
| 7 PM | 7:02, 7:24, 7:46 |
| 8 PM | 8:08, 8:30, 8:52 |
| 9 PM | 9:14, 9:36, 9:58 |
| 10 PM | 10:42 |
| 11 PM | 11:26 |
| After midnight | 12:10 AM, 12:54 AM (after midnight — late-night service from the previous service day) |

All departures (Monday–Thursday): 4:41 AM, 5:03 AM, 5:25 AM, 5:38 AM, 5:52 AM, 6:07 AM, 6:22 AM, 6:36 AM, 6:50 AM, 7:05 AM, 7:20 AM, 7:34 AM, 7:48 AM, 8:03 AM, 8:17 AM, 8:30 AM, 8:36 AM, 8:47 AM, 9:00 AM, 9:14 AM, 9:36 AM, 9:58 AM, 10:20 AM, 10:42 AM, 11:04 AM, 11:26 AM, 11:48 AM, 12:10 PM, 12:32 PM, 12:54 PM, 1:16 PM, 1:38 PM, 2:00 PM, 2:22 PM, 2:34 PM, 2:46 PM, 2:58 PM, 3:10 PM, 3:22 PM, 3:32 PM, 3:37 PM, 3:45 PM, 3:57 PM, 4:09 PM, 4:23 PM, 4:38 PM, 4:54 PM, 5:10 PM, 5:26 PM, 5:42 PM, 5:58 PM, 6:14 PM, 6:30 PM, 6:46 PM, 7:02 PM, 7:24 PM, 7:46 PM, 8:08 PM, 8:30 PM, 8:52 PM, 9:14 PM, 9:36 PM, 9:58 PM, 10:42 PM, 11:26 PM, 12:10 AM (after midnight), 12:54 AM (after midnight)

### Sunday & holidays & Sunday (Jun 7) & Sunday (Jun 14) & Sunday (Jun 21) & Stampede (Jul 5) & Stampede (Jul 12)

Route 49 toward FOREST HEIGHTS — departures from Marlborough LRT Station (SB 36 ST NE @ 8 AV NE), Sunday & holidays & Sunday (Jun 7) & Sunday (Jun 14) & Sunday (Jun 21) & Stampede (Jul 5) & Stampede (Jul 12), effective Jun 3 – Aug 30, 2026

| Hour | Departures |
| --- | --- |
| 5 AM | 5:50 |
| 6 AM | 6:25 |
| 7 AM | 7:00, 7:35 |
| 8 AM | 8:10, 8:45 |
| 9 AM | 9:20, 9:56 |
| 10 AM | 10:33 |
| 11 AM | 11:10, 11:47 |
| 12 PM | 12:24 |
| 1 PM | 1:01, 1:38 |
| 2 PM | 2:15, 2:52 |
| 3 PM | 3:30 |
| 4 PM | 4:09, 4:48 |
| 5 PM | 5:27 |
| 6 PM | 6:03, 6:39 |
| 7 PM | 7:15, 7:51 |
| 8 PM | 8:27 |
| 9 PM | 9:03, 9:39 |
| 10 PM | 10:15, 10:51 |
| 11 PM | 11:27 |
| After midnight | 12:03 AM, 12:39 AM (early Monday — late-night Sunday service) |

All departures (Sunday & holidays & Sunday (Jun 7) & Sunday (Jun 14) & Sunday (Jun 21) & Stampede (Jul 5) & Stampede (Jul 12)): 5:50 AM, 6:25 AM, 7:00 AM, 7:35 AM, 8:10 AM, 8:45 AM, 9:20 AM, 9:56 AM, 10:33 AM, 11:10 AM, 11:47 AM, 12:24 PM, 1:01 PM, 1:38 PM, 2:15 PM, 2:52 PM, 3:30 PM, 4:09 PM, 4:48 PM, 5:27 PM, 6:03 PM, 6:39 PM, 7:15 PM, 7:51 PM, 8:27 PM, 9:03 PM, 9:39 PM, 10:15 PM, 10:51 PM, 11:27 PM, 12:03 AM (after midnight), 12:39 AM (after midnight)

### Saturday (Jun 27 – Aug 29) & Stampede (Jul 4–11) & Saturday (Jun 6) & Saturday (Jun 13) & Saturday (Jun 20)

Route 49 toward FOREST HEIGHTS — departures from Marlborough LRT Station (SB 36 ST NE @ 8 AV NE), Saturday (Jun 27 – Aug 29) & Stampede (Jul 4–11) & Saturday (Jun 6) & Saturday (Jun 13) & Saturday (Jun 20), effective Jun 3 – Aug 30, 2026

| Hour | Departures |
| --- | --- |
| 5 AM | 5:20, 5:59 |
| 6 AM | 6:38 |
| 7 AM | 7:17, 7:56 |
| 8 AM | 8:35 |
| 9 AM | 9:14, 9:55 |
| 10 AM | 10:38 |
| 11 AM | 11:21 |
| 12 PM | 12:04, 12:47 |
| 1 PM | 1:30 |
| 2 PM | 2:13, 2:56 |
| 3 PM | 3:39 |
| 4 PM | 4:22 |
| 5 PM | 5:05, 5:48 |
| 6 PM | 6:31 |
| 7 PM | 7:14, 7:57 |
| 8 PM | 8:40 |
| 9 PM | 9:21 |
| 10 PM | 10:01, 10:41 |
| 11 PM | 11:21 |
| After midnight | 12:01 AM, 12:41 AM (after midnight — late-night service from the previous service day) |

All departures (Saturday (Jun 27 – Aug 29) & Stampede (Jul 4–11) & Saturday (Jun 6) & Saturday (Jun 13) & Saturday (Jun 20)): 5:20 AM, 5:59 AM, 6:38 AM, 7:17 AM, 7:56 AM, 8:35 AM, 9:14 AM, 9:55 AM, 10:38 AM, 11:21 AM, 12:04 PM, 12:47 PM, 1:30 PM, 2:13 PM, 2:56 PM, 3:39 PM, 4:22 PM, 5:05 PM, 5:48 PM, 6:31 PM, 7:14 PM, 7:57 PM, 8:40 PM, 9:21 PM, 10:01 PM, 10:41 PM, 11:21 PM, 12:01 AM (after midnight), 12:41 AM (after midnight)

### Friday

Route 49 toward FOREST HEIGHTS — departures from Marlborough LRT Station (SB 36 ST NE @ 8 AV NE), Friday, effective Jun 3 – Aug 30, 2026

| Hour | Departures |
| --- | --- |
| 4 AM | 4:41 |
| 5 AM | 5:03, 5:25, 5:38, 5:52 |
| 6 AM | 6:07, 6:22, 6:36, 6:50 |
| 7 AM | 7:05, 7:20, 7:34, 7:48 |
| 8 AM | 8:03, 8:17, 8:30, 8:36, 8:47 |
| 9 AM | 9:00, 9:14, 9:36, 9:58 |
| 10 AM | 10:20, 10:42 |
| 11 AM | 11:04, 11:26, 11:48 |
| 12 PM | 12:10, 12:32, 12:54 |
| 1 PM | 1:16, 1:38 |
| 2 PM | 2:00, 2:13, 2:22, 2:34, 2:46, 2:58 |
| 3 PM | 3:10, 3:22, 3:32, 3:37, 3:45, 3:57 |
| 4 PM | 4:09, 4:23, 4:38, 4:54 |
| 5 PM | 5:10, 5:26, 5:42, 5:58 |
| 6 PM | 6:14, 6:30, 6:46 |
| 7 PM | 7:02, 7:24, 7:46 |
| 8 PM | 8:08, 8:30, 8:52 |
| 9 PM | 9:14, 9:36, 9:58 |
| 10 PM | 10:42 |
| 11 PM | 11:26 |
| After midnight | 12:10 AM, 12:54 AM (early Saturday — late-night Friday service) |

All departures (Friday): 4:41 AM, 5:03 AM, 5:25 AM, 5:38 AM, 5:52 AM, 6:07 AM, 6:22 AM, 6:36 AM, 6:50 AM, 7:05 AM, 7:20 AM, 7:34 AM, 7:48 AM, 8:03 AM, 8:17 AM, 8:30 AM, 8:36 AM, 8:47 AM, 9:00 AM, 9:14 AM, 9:36 AM, 9:58 AM, 10:20 AM, 10:42 AM, 11:04 AM, 11:26 AM, 11:48 AM, 12:10 PM, 12:32 PM, 12:54 PM, 1:16 PM, 1:38 PM, 2:00 PM, 2:13 PM, 2:22 PM, 2:34 PM, 2:46 PM, 2:58 PM, 3:10 PM, 3:22 PM, 3:32 PM, 3:37 PM, 3:45 PM, 3:57 PM, 4:09 PM, 4:23 PM, 4:38 PM, 4:54 PM, 5:10 PM, 5:26 PM, 5:42 PM, 5:58 PM, 6:14 PM, 6:30 PM, 6:46 PM, 7:02 PM, 7:24 PM, 7:46 PM, 8:08 PM, 8:30 PM, 8:52 PM, 9:14 PM, 9:36 PM, 9:58 PM, 10:42 PM, 11:26 PM, 12:10 AM (after midnight), 12:54 AM (after midnight)

## Stops served — toward FOREST HEIGHTS

36 stops, in order of travel:

1. [Stop 6765 — Marlborough LRT Station (SB 36 ST NE @ 8 AV NE)](https://calgarytransittimes.com/stops/6765/)
1. [Stop 8123 — SB 36 ST NE @ 5 AV NE](https://calgarytransittimes.com/stops/8123/)
1. [Stop 6761 — SB 36 ST E @ Memorial DR](https://calgarytransittimes.com/stops/6761/)
1. [Stop 6184 — SB 36 ST SE @ Radcliffe DR](https://calgarytransittimes.com/stops/6184/)
1. [Stop 6185 — EB 8 AV SE @ 36 ST SE](https://calgarytransittimes.com/stops/6185/)
1. [Stop 6381 — EB 8 AV SE @ 40 ST SE](https://calgarytransittimes.com/stops/6381/)
1. [Stop 6219 — EB 8 AV SE @ 44 ST SE](https://calgarytransittimes.com/stops/6219/)
1. [Stop 4336 — EB 8 AV SE @ 47 ST SE](https://calgarytransittimes.com/stops/4336/)
1. [Stop 4335 — EB 8 AV SE @ 52 ST SE](https://calgarytransittimes.com/stops/4335/)
1. [Stop 2850 — EB 8 AV SE @ Pensdale RD](https://calgarytransittimes.com/stops/2850/)
1. [Stop 5065 — EB 8 AV SE @ Pensacola WY](https://calgarytransittimes.com/stops/5065/)
1. [Stop 8836 — EB Penbrooke DR @ 60 ST SE](https://calgarytransittimes.com/stops/8836/)
1. [Stop 8837 — EB Penbrooke DR @ Penedo WY SE](https://calgarytransittimes.com/stops/8837/)
1. [Stop 8838 — NB Penbrooke DR @ Penbrooke RD SE](https://calgarytransittimes.com/stops/8838/)
1. [Stop 5066 — NB Penbrooke DR @ 4 AV SE](https://calgarytransittimes.com/stops/5066/)
1. [Stop 5068 — NB Penbrooke DR @ Penbrooke Terminal SE](https://calgarytransittimes.com/stops/5068/)
1. [Stop 6170 — EB Memorial DR @ 68 ST SE](https://calgarytransittimes.com/stops/6170/)
1. [Stop 4369 — NB Abbeydale DR @ Memorial DR E](https://calgarytransittimes.com/stops/4369/)
1. [Stop 6172 — NB Abbeydale DR @ 4 AV NE](https://calgarytransittimes.com/stops/6172/)
1. [Stop 4367 — NB Abbeydale DR @ Abalone CR NE](https://calgarytransittimes.com/stops/4367/)
1. [Stop 4368 — NB Abbeydale DR @ Aberdare CR NE](https://calgarytransittimes.com/stops/4368/)
1. [Stop 6155 — WB Abbeydale DR @ Abbotsford DR NE](https://calgarytransittimes.com/stops/6155/)
1. [Stop 4374 — WB Abbeydale DR @ Aboyne WY NE](https://calgarytransittimes.com/stops/4374/)
1. [Stop 2851 — WB Abbeydale DR @ 68 ST NE](https://calgarytransittimes.com/stops/2851/)
1. [Stop 2852 — NB Madigan DR @ 8 AV NE](https://calgarytransittimes.com/stops/2852/)
1. [Stop 4333 — NB Madigan DR @ Maitland DR NE](https://calgarytransittimes.com/stops/4333/)
1. [Stop 6224 — WB Madigan DR @ Manora DR NE](https://calgarytransittimes.com/stops/6224/)
1. [Stop 4332 — WB Madigan DR @ Manora HL NE](https://calgarytransittimes.com/stops/4332/)
1. [Stop 4331 — WB Madigan DR @ Madeira DR NE](https://calgarytransittimes.com/stops/4331/)
1. [Stop 6225 — WB Marbank DR @ 52 ST NE](https://calgarytransittimes.com/stops/6225/)
1. [Stop 8126 — WB Marbank DR @ Mardale RD NE](https://calgarytransittimes.com/stops/8126/)
1. [Stop 8130 — WB Marbank DR @ Mardale DR NE](https://calgarytransittimes.com/stops/8130/)
1. [Stop 8128 — WB Marbank DR @ Marlyn WY NE](https://calgarytransittimes.com/stops/8128/)
1. [Stop 6226 — WB Marbank DR @ Marlyn WY NE](https://calgarytransittimes.com/stops/6226/)
1. [Stop 6026 — SB 36 ST NE @ 12 AV NE](https://calgarytransittimes.com/stops/6026/)
1. [Stop 6765 — Marlborough LRT Station (SB 36 ST NE @ 8 AV NE)](https://calgarytransittimes.com/stops/6765/)

## Service exceptions

July 1, 2026 and August 3, 2026 run the Sunday schedule.

Stampede (Jul 6–10): a special schedule applies on July 6, 2026, July 7, 2026, July 9, 2026, July 10, 2026.

Stampede (Jul 4–11): a special schedule applies on July 4, 2026, July 11, 2026.

Stampede (Jul 2): a special schedule applies on July 2, 2026.

Stampede (Jul 3): a special schedule applies on July 3, 2026.

Stampede (Jul 5): a special schedule applies on July 5, 2026.

Stampede (Jul 8): a special schedule applies on July 8, 2026.

Stampede (Jul 12): a special schedule applies on July 12, 2026.

Stampede (Jul 13): a special schedule applies on July 13, 2026.

## Frequently asked questions

### How often does Route 49 run?

On Monday–Friday & Stampede (Jul 6–10) & Stampede (Jul 2) & Stampede (Jul 3) & Stampede (Jul 8) & Stampede (Jul 13) days Route 49 runs about every 14 minutes at peak and every 22 minutes midday.

### What time is the first and last Route 49 bus toward FOREST HEIGHTS?

On Monday–Friday & Stampede (Jul 6–10) & Stampede (Jul 2) & Stampede (Jul 3) & Stampede (Jul 8) & Stampede (Jul 13) days the first bus toward FOREST HEIGHTS leaves Marlborough LRT Station (SB 36 ST NE @ 8 AV NE) at 4:41 AM and the last at 12:54 AM.

### Does Route 49 run on Sundays?

Yes — see the Sunday & holidays rows in the frequency tables above.

---

Contains information licensed under the [Open Government Licence – City of Calgary](https://data.calgary.ca/stories/s/u45n-7awa). Independent site, not affiliated with or endorsed by Calgary Transit or The City of Calgary — official info at [calgarytransit.com](https://www.calgarytransit.com). Schedule data from the City of Calgary GTFS feed published Jun 3, 2026, valid Jun 3 – Aug 30, 2026.
