VIA Rail 69 Montréal – Toronto

View line VIA Rail

Montréal 16:38 → Toronto 21:48 Daily 5 h 10 min · 8 stops VIA Rail

Running now · updated 21:09

Between Kingston and Oshawa +26 min

Estimated arrival at Toronto 22:14 21:48 · 145 km/h

  1. Montréal16:38
  2. Dorval17:04
  3. Cornwall17:53
  4. Kingston19:24
  5. Oshawa21:05
  6. Guildwood21:28
  7. Toronto21:48
On-time · 30 days
0%
0/4 runs under 3 min
RT coverage: 3 full · 1 partial · 26 no data
On-time · 90 days
0%
0/4 runs under 3 min
RT coverage: 3 full · 1 partial · 85 no data
Typical delay
—
Needs at least 5 runs with data (4 so far)
P90
—
Needs at least 5 runs with data (4 so far)

Last 30 days

Arrival delay at Toronto, in minutes. One bar per run.

  • On time (<3 min)
  • 3–10 min
  • 10–30 min
  • 30+ min
  • Partial coverage
  • No data

Worst days

  • Tue 6 Oct Max en route +48 min · last fix heading to Toronto +47 min
  • Thu 8 Oct Max en route +25 min · last fix heading to Oshawa +25 min
  • Mon 5 Oct Max en route +19 min · last fix heading to Toronto +17 min
  • Wed 7 Oct Max en route +20 min · last fix heading to Toronto +16 min

Distribution · 90 days

4 runs with a known final delay. On time = under 3 min, the same cut the map uses.

  • Early 0% · 0
  • On time 0% · 0
  • 3–10 min 0% · 0
  • 10–30 min 75% · 3
  • 30+ min 25% · 1

On-time by weekday

  • 0% M n=1
  • 0% T n=1
  • 0% W n=1
  • 0% T n=1
  • — F n=0
  • — S n=0
  • — S n=0

Stops and timetable

Timetable of the latest run from the operator’s GTFS (8 stops).

StopSched.Today
16:38Passed
17:04 / 17:08Passed
17:53 / 17:55Passed
18:40 / 18:42Passed
19:24 / 19:28Passed
21:05 / 21:08Next
21:28 / 21:30
21:48

Each run is closed into train_runs (country, train number, service day) from the live positions. Final delay = last delay seen. Partial coverage: the feed stopped before the final stop (last value used, hatched in the chart). No data: a run without any valid delay; counts as neither on time nor late. Data collected since 10 July 2026.

Recent runs

DateLast stopFinalMax
Thu 8 OctOshawa 21:04Partial coverage+25 min+25 min
Wed 7 OctToronto 22:04+16 min+20 min
Tue 6 OctToronto 22:35+47 min+48 min
Mon 5 OctToronto 22:05+17 min+19 min
Sun 4 OctToronto 21:49No data—
Sat 3 OctToronto 21:49No data—
Fri 2 OctCornwall 17:11Partial coverageNo data—
Thu 1 OctOshawa 19:59Partial coverageNo data—
Wed 30 SeptOshawa 19:59Partial coverageNo data—
Tue 29 SeptOshawa 19:59Partial coverageNo data—
Mon 28 SeptOshawa 19:59Partial coverageNo data—
Sun 27 SeptOshawa 19:59Partial coverageNo data—
Sat 26 SeptOshawa 19:59Partial coverageNo data—
Fri 25 SeptOshawa 19:59Partial coverageNo data—
Thu 24 SeptOshawa 19:59Partial coverageNo data—
Wed 23 SeptOshawa 19:59Partial coverageNo data—
Tue 22 SeptOshawa 19:59Partial coverageNo data—
Mon 21 SeptOshawa 19:59Partial coverageNo data—
Sun 20 SeptOshawa 19:59Partial coverageNo data—
Sat 19 SeptOshawa 19:59Partial coverageNo data—
Fri 18 SeptOshawa 19:59Partial coverageNo data—
Thu 17 SeptOshawa 19:59Partial coverageNo data—
Wed 16 SeptOshawa 19:59Partial coverageNo data—
Tue 15 SeptOshawa 19:59Partial coverageNo data—
Mon 14 SeptOshawa 19:59Partial coverageNo data—
Sun 13 SeptOshawa 19:59Partial coverageNo data—
Sat 12 SeptOshawa 19:59Partial coverageNo data—
Fri 11 SeptOshawa 19:59Partial coverageNo data—
Thu 10 SeptOshawa 19:59Partial coverageNo data—
Wed 9 SeptOshawa 19:59Partial coverageNo data—