train: 951657,0,4
Thu Aug  6 13:16:58 2026 2026-08-06T13:16:58Z

plat dest
 scheduled
 estimated
__323905    Stations on the Belgrave and Lilydale lines will be affected by temporary car park closures, platform closures and changes to pedestrian access at select times, due to works as part of the Level Crossing Removal Project and other maintenance works.
_*344824    From 8.30pm Monday 29 September 2025 until August 2026, there will be changes to the way you access and exit the station, due to escalator upgrade works.
__357977    To enable Boronia Station Upgrade works, there will be temporary changes to vehicle and pedestrian access.
__362298    Monday 11 May to late 2026
** current, _* Later today, __ in the future

Final stop Belgrave

3 1071 Flinders Street Station 2026-08-06T13:05:00Z 23:05:00 -11m-58s -718 23:04:40 -12m-18s -738 disruptions 362298 357977 344824 323905
10 1181 Southern Cross Station 2026-08-06T13:09:00Z 23:09:00 -7m-58s -478 23:09:00 -7m-58s -478 disruptions 362298 357977 344824 323905
4 1068 Flagstaff Station 2026-08-06T13:11:00Z 23:11:00 -5m-58s -358 23:12:00 -4m-58s -298 disruptions 362298 357977 344824 323905
4 1120 Melbourne Central Station 2026-08-06T13:12:00Z 23:12:00 -4m-58s -298 23:13:00 -3m-58s -238 disruptions 362298 357977 344824 323905
4 1155 Parliament Station 2026-08-06T13:14:00Z 23:14:00 -2m-58s -178 23:15:32 -1m-26s -86 disruptions 362298 357977 344824 323905
9 1162 Richmond Station 2026-08-06T13:17:00Z 23:17:00 0m2s 2 23:19:00 2m2s 122 disruptions 362298 357977 344824 323905

3 1030 Burnley Station 2026-08-06T13:20:00Z 23:20:00 3m2s 182 23:22:00 5m2s 302 disruptions 362298 357977 344824 323905
2 1090 Hawthorn Station 2026-08-06T13:22:00Z 23:22:00 5m2s 302 23:24:00 7m2s 422 disruptions 362298 357977 344824 323905
2 1080 Glenferrie Station 2026-08-06T13:24:00Z 23:24:00 7m2s 422 23:27:00 10m2s 602 disruptions 362298 357977 344824 323905
2 1012 Auburn Station 2026-08-06T13:26:00Z 23:26:00 9m2s 542 23:28:00 11m2s 662 disruptions 362298 357977 344824 323905
3 1032 Camberwell Station 2026-08-06T13:28:00Z 23:28:00 11m2s 662 23:31:00 14m2s 842 disruptions 362298 357977 344824 323905
2 1057 East Camberwell Station 2026-08-06T13:30:00Z 23:30:00 13m2s 782 23:32:00 15m2s 902 disruptions 362298 357977 344824 323905
2 1033 Canterbury Station 2026-08-06T13:32:00Z 23:32:00 15m2s 902 23:34:00 17m2s 1022 disruptions 362298 357977 344824 323905
2 1037 Chatham Station 2026-08-06T13:34:00Z 23:34:00 17m2s 1022 23:36:00 19m2s 1142 disruptions 362298 357977 344824 323905
2 1229 Union Station 2026-08-06T13:36:00Z 23:36:00 19m2s 1142 23:38:00 21m2s 1262 disruptions 362298 357977 344824 323905
3 1026 Box Hill Station 2026-08-06T13:40:00Z 23:40:00 23m2s 1382 23:41:00 24m2s 1442 disruptions 362298 357977 344824 323905
2 1111 Laburnum Station 2026-08-06T13:42:00Z 23:42:00 25m2s 1502 23:44:00 27m2s 1622 disruptions 362298 357977 344824 323905
2 1023 Blackburn Station 2026-08-06T13:44:00Z 23:44:00 27m2s 1622 23:46:00 29m2s 1742 disruptions 362298 357977 344824 323905
2 1148 Nunawading Station 2026-08-06T13:47:00Z 23:47:00 30m2s 1802 23:49:00 32m2s 1922 disruptions 362298 357977 344824 323905
2 1128 Mitcham Station 2026-08-06T13:49:00Z 23:49:00 32m2s 1922 23:51:00 34m2s 2042 disruptions 362298 357977 344824 323905
2 1091 Heatherdale Station 2026-08-06T13:52:00Z 23:52:00 35m2s 2102 23:54:00 37m2s 2222 disruptions 362298 357977 344824 323905
2 1163 Ringwood Station 2026-08-06T13:55:00Z 23:55:00 38m2s 2282 23:56:00 39m2s 2342 disruptions 362298 357977 344824 323905
2 1092 Heathmont Station 2026-08-06T13:58:00Z 23:58:00 41m2s 2462 23:59:00 42m2s 2522 disruptions 362298 357977 344824 323905
2 1016 Bayswater Station 2026-08-06T14:01:00Z 00:01:00 44m2s 2642 00:03:00 46m2s 2762 disruptions 362298 357977 344824 323905
2 1025 Boronia Station 2026-08-06T14:03:00Z 00:03:00 46m2s 2762 00:06:00 49m2s 2942 disruptions 362298 357977 344824 323905
2 1067 Ferntree Gully Station 2026-08-06T14:07:00Z 00:07:00 50m2s 3002 00:10:00 53m2s 3182 disruptions 362298 357977 344824 323905
2 1199 Upper Ferntree Gully Station 2026-08-06T14:10:00Z 00:10:00 53m2s 3182 00:12:00 55m2s 3302 disruptions 362298 357977 344824 323905
2 1200 Upwey Station 2026-08-06T14:14:00Z 00:14:00 57m2s 3422 00:16:00 59m2s 3542 disruptions 362298 357977 344824 323905
1 1191 Tecoma Station 2026-08-06T14:16:00Z 00:16:00 59m2s 3542 no est disruptions 362298 357977 344824 323905
2 1018 Belgrave Station 2026-08-06T14:19:00Z 00:19:00 62m2s 3722 no est disruptions 362298 357977 344824 323905
$perl_scalar = { 'departures' => [ { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 1, 'direction_id' => 2, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T13:04:40Z', 'flags' => '', 'platform_number' => '3', 'route_id' => 2, 'run_id' => 951657, 'run_ref' => '951657', 'scheduled_departure_utc' => '2026-08-06T13:05:00Z', 'skipped_stops' => [], 'stop_id' => 1071 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 2, 'direction_id' => 2, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T13:09:00Z', 'flags' => '', 'platform_number' => '10', 'route_id' => 2, 'run_id' => 951657, 'run_ref' => '951657', 'scheduled_departure_utc' => '2026-08-06T13:09:00Z', 'skipped_stops' => [], 'stop_id' => 1181 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 3, 'direction_id' => 2, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T13:12:00Z', 'flags' => '', 'platform_number' => '4', 'route_id' => 2, 'run_id' => 951657, 'run_ref' => '951657', 'scheduled_departure_utc' => '2026-08-06T13:11:00Z', 'skipped_stops' => [], 'stop_id' => 1068 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 4, 'direction_id' => 2, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T13:13:00Z', 'flags' => '', 'platform_number' => '4', 'route_id' => 2, 'run_id' => 951657, 'run_ref' => '951657', 'scheduled_departure_utc' => '2026-08-06T13:12:00Z', 'skipped_stops' => [], 'stop_id' => 1120 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 5, 'direction_id' => 2, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T13:15:32Z', 'flags' => '', 'platform_number' => '4', 'route_id' => 2, 'run_id' => 951657, 'run_ref' => '951657', 'scheduled_departure_utc' => '2026-08-06T13:14:00Z', 'skipped_stops' => [], 'stop_id' => 1155 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 6, 'direction_id' => 2, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T13:19:00Z', 'flags' => '', 'platform_number' => '9', 'route_id' => 2, 'run_id' => 951657, 'run_ref' => '951657', 'scheduled_departure_utc' => '2026-08-06T13:17:00Z', 'skipped_stops' => [], 'stop_id' => 1162 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 7, 'direction_id' => 2, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T13:22:00Z', 'flags' => '', 'platform_number' => '3', 'route_id' => 2, 'run_id' => 951657, 'run_ref' => '951657', 'scheduled_departure_utc' => '2026-08-06T13:20:00Z', 'skipped_stops' => [], 'stop_id' => 1030 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 8, 'direction_id' => 2, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T13:24:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 2, 'run_id' => 951657, 'run_ref' => '951657', 'scheduled_departure_utc' => '2026-08-06T13:22:00Z', 'skipped_stops' => [], 'stop_id' => 1090 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 9, 'direction_id' => 2, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T13:27:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 2, 'run_id' => 951657, 'run_ref' => '951657', 'scheduled_departure_utc' => '2026-08-06T13:24:00Z', 'skipped_stops' => [], 'stop_id' => 1080 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 10, 'direction_id' => 2, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T13:28:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 2, 'run_id' => 951657, 'run_ref' => '951657', 'scheduled_departure_utc' => '2026-08-06T13:26:00Z', 'skipped_stops' => [], 'stop_id' => 1012 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 11, 'direction_id' => 2, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T13:31:00Z', 'flags' => '', 'platform_number' => '3', 'route_id' => 2, 'run_id' => 951657, 'run_ref' => '951657', 'scheduled_departure_utc' => '2026-08-06T13:28:00Z', 'skipped_stops' => [], 'stop_id' => 1032 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 12, 'direction_id' => 2, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T13:32:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 2, 'run_id' => 951657, 'run_ref' => '951657', 'scheduled_departure_utc' => '2026-08-06T13:30:00Z', 'skipped_stops' => [], 'stop_id' => 1057 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 13, 'direction_id' => 2, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T13:34:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 2, 'run_id' => 951657, 'run_ref' => '951657', 'scheduled_departure_utc' => '2026-08-06T13:32:00Z', 'skipped_stops' => [], 'stop_id' => 1033 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 14, 'direction_id' => 2, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T13:36:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 2, 'run_id' => 951657, 'run_ref' => '951657', 'scheduled_departure_utc' => '2026-08-06T13:34:00Z', 'skipped_stops' => [], 'stop_id' => 1037 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 15, 'direction_id' => 2, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T13:38:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 2, 'run_id' => 951657, 'run_ref' => '951657', 'scheduled_departure_utc' => '2026-08-06T13:36:00Z', 'skipped_stops' => [], 'stop_id' => 1229 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 16, 'direction_id' => 2, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T13:41:00Z', 'flags' => '', 'platform_number' => '3', 'route_id' => 2, 'run_id' => 951657, 'run_ref' => '951657', 'scheduled_departure_utc' => '2026-08-06T13:40:00Z', 'skipped_stops' => [], 'stop_id' => 1026 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 17, 'direction_id' => 2, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T13:44:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 2, 'run_id' => 951657, 'run_ref' => '951657', 'scheduled_departure_utc' => '2026-08-06T13:42:00Z', 'skipped_stops' => [], 'stop_id' => 1111 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 18, 'direction_id' => 2, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T13:46:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 2, 'run_id' => 951657, 'run_ref' => '951657', 'scheduled_departure_utc' => '2026-08-06T13:44:00Z', 'skipped_stops' => [], 'stop_id' => 1023 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 19, 'direction_id' => 2, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T13:49:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 2, 'run_id' => 951657, 'run_ref' => '951657', 'scheduled_departure_utc' => '2026-08-06T13:47:00Z', 'skipped_stops' => [], 'stop_id' => 1148 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 20, 'direction_id' => 2, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T13:51:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 2, 'run_id' => 951657, 'run_ref' => '951657', 'scheduled_departure_utc' => '2026-08-06T13:49:00Z', 'skipped_stops' => [], 'stop_id' => 1128 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 21, 'direction_id' => 2, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T13:54:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 2, 'run_id' => 951657, 'run_ref' => '951657', 'scheduled_departure_utc' => '2026-08-06T13:52:00Z', 'skipped_stops' => [], 'stop_id' => 1091 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 22, 'direction_id' => 2, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T13:56:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 2, 'run_id' => 951657, 'run_ref' => '951657', 'scheduled_departure_utc' => '2026-08-06T13:55:00Z', 'skipped_stops' => [], 'stop_id' => 1163 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 23, 'direction_id' => 2, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T13:59:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 2, 'run_id' => 951657, 'run_ref' => '951657', 'scheduled_departure_utc' => '2026-08-06T13:58:00Z', 'skipped_stops' => [], 'stop_id' => 1092 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 24, 'direction_id' => 2, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T14:03:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 2, 'run_id' => 951657, 'run_ref' => '951657', 'scheduled_departure_utc' => '2026-08-06T14:01:00Z', 'skipped_stops' => [], 'stop_id' => 1016 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 25, 'direction_id' => 2, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T14:06:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 2, 'run_id' => 951657, 'run_ref' => '951657', 'scheduled_departure_utc' => '2026-08-06T14:03:00Z', 'skipped_stops' => [], 'stop_id' => 1025 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 26, 'direction_id' => 2, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T14:10:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 2, 'run_id' => 951657, 'run_ref' => '951657', 'scheduled_departure_utc' => '2026-08-06T14:07:00Z', 'skipped_stops' => [], 'stop_id' => 1067 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 27, 'direction_id' => 2, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T14:12:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 2, 'run_id' => 951657, 'run_ref' => '951657', 'scheduled_departure_utc' => '2026-08-06T14:10:00Z', 'skipped_stops' => [], 'stop_id' => 1199 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 28, 'direction_id' => 2, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T14:16:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 2, 'run_id' => 951657, 'run_ref' => '951657', 'scheduled_departure_utc' => '2026-08-06T14:14:00Z', 'skipped_stops' => [], 'stop_id' => 1200 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 29, 'direction_id' => 2, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '1', 'route_id' => 2, 'run_id' => 951657, 'run_ref' => '951657', 'scheduled_departure_utc' => '2026-08-06T14:16:00Z', 'skipped_stops' => [], 'stop_id' => 1191 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 30, 'direction_id' => 2, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => undef, 'flags' => 'E', 'platform_number' => '2', 'route_id' => 2, 'run_id' => 951657, 'run_ref' => '951657', 'scheduled_departure_utc' => '2026-08-06T14:19:00Z', 'skipped_stops' => [], 'stop_id' => 1018 } ], 'directions' => { '2' => { 'direction_id' => 2, 'direction_name' => 'Belgrave', 'route_id' => 2, 'route_type' => 0 } }, 'disruptions' => [ { 'colour' => '#ffbb00', 'description' => 'Monday 11 May to Tuesday 4 August', 'display_on_board' => 'false', 'display_status' => 'false', 'disruption_id' => 362298, 'disruption_status' => 'Current', 'disruption_type' => 'Station detour', 'from_date' => '2026-05-12T00:51:00Z', 'last_updated' => '2026-07-23T02:45:26Z', 'published_on' => '2026-05-12T02:11:45Z', 'routes' => [], 'stops' => [], 'title' => 'Belgrave Line: Replacement bus stop relocation at Bayswater Station until Tuesday 4 August 2026', 'to_date' => undef, 'url' => 'http://ptv.vic.gov.au/live-travel-updates/article/belgrave-line-replacement-bus-stop-relocation-at-bayswater-station-until-late-2026' }, { 'colour' => '#ffd500', 'description' => 'Works will continue until spring 2026. When complete, the new station precinct will feature:', 'display_on_board' => 'false', 'display_status' => 'false', 'disruption_id' => 357977, 'disruption_status' => 'Current', 'disruption_type' => 'Planned Closure', 'from_date' => '2026-03-26T16:10:00Z', 'last_updated' => '2026-08-04T08:47:49Z', 'published_on' => '2026-03-18T04:56:31Z', 'routes' => [], 'stops' => [], 'title' => 'Boronia Station: Major changes until spring 2026', 'to_date' => undef, 'url' => 'http://ptv.vic.gov.au/live-travel-updates/article/boronia-disruptions' }, { 'colour' => '#ffbb00', 'description' => 'Southern Cross Station: From 8.30pm Monday 29 September 2025 until August 2026, there will be changes to the way you access and exit the station, due to escalator upgrade works.', 'display_on_board' => 'true', 'display_status' => 'false', 'disruption_id' => 344824, 'disruption_status' => 'Current', 'disruption_type' => 'Station detour', 'from_date' => '2025-09-25T05:13:00Z', 'last_updated' => '2026-02-10T10:00:02Z', 'published_on' => '2025-09-25T05:26:57Z', 'routes' => [], 'stops' => [], 'title' => 'Southern Cross Station: From 8.30pm Monday 29 September 2025 until August 2026, there will be changes to the way you access and exit the station, due to escalator upgrade works.', 'to_date' => '2026-08-31T17:00:00Z', 'url' => 'http://ptv.vic.gov.au/live-travel-updates/article/page/plan-a-journey/maps/southern-cross-station-map-and-travel-information/' }, { 'colour' => '#ffd500', 'description' => 'Stations on the Alamein, Belgrave, Glen Waverley and Lilydale lines will be affected by temporary car park closures, platform closures and changes to pedestrian access at select times, due to works as part of the Level Crossing Removal Project and other maintenance works.', 'display_on_board' => 'false', 'display_status' => 'false', 'disruption_id' => 323905, 'disruption_status' => 'Current', 'disruption_type' => 'Planned Closure', 'from_date' => '2024-10-28T10:54:00Z', 'last_updated' => '2026-07-02T09:13:53Z', 'published_on' => '2024-10-29T04:29:05Z', 'routes' => [], 'stops' => [], 'title' => 'Alamein, Belgrave, Glen Waverley and Lilydale line stations: Temporary car park closures and pedestrian access changes until further notice', 'to_date' => undef, 'url' => 'http://ptv.vic.gov.au/live-travel-updates/article/alamein-belgrave-glen-waverley-and-lilydale-line-stations-temporary-car-park-closures-and-pedestrian-access-changes-until-further-notice' } ], 'routes' => { '2' => { 'geopath' => [], 'route_gtfs_id' => '2-BEG', 'route_id' => 2, 'route_name' => 'Belgrave', 'route_number' => '', 'route_type' => 0 } }, 'runs' => { '951657' => { 'destination_name' => 'Belgrave', 'direction_id' => 2, 'express_stop_count' => 1, 'externalService' => 7, 'final_stop_id' => 1018, 'geopath' => [], 'interchange' => { 'distributor' => undef, 'feeder' => { 'advertised' => 'false', 'destination_name' => 'Parliament', 'direction_id' => 1, 'route_id' => 7, 'run_ref' => '950160', 'stop_id' => 1155 } }, 'route_id' => 2, 'route_type' => 0, 'run_id' => 951657, 'run_note' => '', 'run_ref' => '951657', 'run_sequence' => 0, 'status' => 'updated', 'vehicle_descriptor' => { 'air_conditioned' => undef, 'description' => '6 Car Xtrapolis', 'id' => '1320T-39M-40M', 'length' => '71', 'low_floor' => undef, 'operator' => 'Metro Trains Melbourne', 'supplier' => 'CIS - Metro Trains Melbourne' }, 'vehicle_position' => { 'bearing' => '127.512611802856', 'datetime_utc' => '2026-08-06T23:16:55', 'direction' => 'Outbound', 'easting' => '322366.5', 'expiry_time' => '2026-08-06T23:17:30', 'latitude' => '-37.8206013431763', 'longitude' => '144.981789231251', 'northing' => '5812170.5', 'supplier' => 'CIS - Metro Trains Melbourne' } } }, 'status' => { 'health' => 1, 'version' => '3.0' }, 'stops' => { '1012' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1012, 'stop_landmark' => '', 'stop_latitude' => '-37.8224', 'stop_longitude' => '145.045837', 'stop_name' => 'Auburn', 'stop_sequence' => 0, 'stop_suburb' => 'Hawthorn East', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1016' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1016, 'stop_landmark' => '', 'stop_latitude' => '-37.84173', 'stop_longitude' => '145.268143', 'stop_name' => 'Bayswater', 'stop_sequence' => 0, 'stop_suburb' => 'Bayswater', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'false', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1018' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1018, 'stop_landmark' => '', 'stop_latitude' => '-37.9091', 'stop_longitude' => '145.355286', 'stop_name' => 'Belgrave', 'stop_sequence' => 0, 'stop_suburb' => 'Belgrave', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1023' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1023, 'stop_landmark' => '', 'stop_latitude' => '-37.82007', 'stop_longitude' => '145.150009', 'stop_name' => 'Blackburn', 'stop_sequence' => 0, 'stop_suburb' => 'Blackburn', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1025' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1025, 'stop_landmark' => '', 'stop_latitude' => '-37.8604546', 'stop_longitude' => '145.284378', 'stop_name' => 'Boronia', 'stop_sequence' => 0, 'stop_suburb' => 'Boronia', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1026' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1026, 'stop_landmark' => '', 'stop_latitude' => '-37.8192177', 'stop_longitude' => '145.121429', 'stop_name' => 'Box Hill', 'stop_sequence' => 0, 'stop_suburb' => 'Box Hill', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'false', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1030' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1030, 'stop_landmark' => '', 'stop_latitude' => '-37.8275566', 'stop_longitude' => '145.007553', 'stop_name' => 'Burnley', 'stop_sequence' => 0, 'stop_suburb' => 'Burnley', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1032' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1032, 'stop_landmark' => '', 'stop_latitude' => '-37.8265648', 'stop_longitude' => '145.058685', 'stop_name' => 'Camberwell', 'stop_sequence' => 0, 'stop_suburb' => 'Camberwell', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1033' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1033, 'stop_landmark' => '', 'stop_latitude' => '-37.82449', 'stop_longitude' => '145.081223', 'stop_name' => 'Canterbury', 'stop_sequence' => 0, 'stop_suburb' => 'Canterbury', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1, 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1,Zone 2' } }, '1037' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1037, 'stop_landmark' => '', 'stop_latitude' => '-37.8241463', 'stop_longitude' => '145.08873', 'stop_name' => 'Chatham', 'stop_sequence' => 0, 'stop_suburb' => 'Surrey Hills', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1, 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1,Zone 2' } }, '1057' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1057, 'stop_landmark' => '', 'stop_latitude' => '-37.8258934', 'stop_longitude' => '145.068192', 'stop_name' => 'East Camberwell', 'stop_sequence' => 0, 'stop_suburb' => 'Camberwell', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1067' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1067, 'stop_landmark' => '', 'stop_latitude' => '-37.8817', 'stop_longitude' => '145.295258', 'stop_name' => 'Ferntree Gully', 'stop_sequence' => 0, 'stop_suburb' => 'Ferntree Gully', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1068' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1068, 'stop_landmark' => '', 'stop_latitude' => '-37.8119774', 'stop_longitude' => '144.955658', 'stop_name' => 'Flagstaff', 'stop_sequence' => 0, 'stop_suburb' => 'Melbourne City', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1071' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1071, 'stop_landmark' => '', 'stop_latitude' => '-37.81831', 'stop_longitude' => '144.966965', 'stop_name' => 'Flinders Street', 'stop_sequence' => 0, 'stop_suburb' => 'Melbourne City', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1080' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1080, 'stop_landmark' => '', 'stop_latitude' => '-37.8214645', 'stop_longitude' => '145.036438', 'stop_name' => 'Glenferrie', 'stop_sequence' => 0, 'stop_suburb' => 'Hawthorn', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1090' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1090, 'stop_landmark' => '', 'stop_latitude' => '-37.8218231', 'stop_longitude' => '145.0229', 'stop_name' => 'Hawthorn', 'stop_sequence' => 0, 'stop_suburb' => 'Hawthorn', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1091' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1091, 'stop_landmark' => '', 'stop_latitude' => '-37.81884', 'stop_longitude' => '145.213547', 'stop_name' => 'Heatherdale', 'stop_sequence' => 0, 'stop_suburb' => 'Ringwood', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1092' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1092, 'stop_landmark' => '', 'stop_latitude' => '-37.82832', 'stop_longitude' => '145.244553', 'stop_name' => 'Heathmont', 'stop_sequence' => 0, 'stop_suburb' => 'Heathmont', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1111' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1111, 'stop_landmark' => '', 'stop_latitude' => '-37.8207779', 'stop_longitude' => '145.1407', 'stop_name' => 'Laburnum', 'stop_sequence' => 0, 'stop_suburb' => 'Blackburn', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'false', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1120' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1120, 'stop_landmark' => '', 'stop_latitude' => '-37.8099365', 'stop_longitude' => '144.9626', 'stop_name' => 'Melbourne Central', 'stop_sequence' => 0, 'stop_suburb' => 'Melbourne City', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1128' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1128, 'stop_landmark' => '', 'stop_latitude' => '-37.8180122', 'stop_longitude' => '145.191971', 'stop_name' => 'Mitcham', 'stop_sequence' => 0, 'stop_suburb' => 'Mitcham', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1148' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1148, 'stop_landmark' => '', 'stop_latitude' => '-37.8204231', 'stop_longitude' => '145.175232', 'stop_name' => 'Nunawading', 'stop_sequence' => 0, 'stop_suburb' => 'Nunawading', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1155' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1155, 'stop_landmark' => '', 'stop_latitude' => '-37.8110542', 'stop_longitude' => '144.9729', 'stop_name' => 'Parliament', 'stop_sequence' => 0, 'stop_suburb' => 'Melbourne City', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1162' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1162, 'stop_landmark' => '', 'stop_latitude' => '-37.8240738', 'stop_longitude' => '144.990158', 'stop_name' => 'Richmond', 'stop_sequence' => 0, 'stop_suburb' => 'Richmond', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1163' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1163, 'stop_landmark' => '', 'stop_latitude' => '-37.81589', 'stop_longitude' => '145.228973', 'stop_name' => 'Ringwood', 'stop_sequence' => 0, 'stop_suburb' => 'Ringwood', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'false', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1181' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1181, 'stop_landmark' => '', 'stop_latitude' => '-37.8179321', 'stop_longitude' => '144.951416', 'stop_name' => 'Southern Cross', 'stop_sequence' => 0, 'stop_suburb' => 'Melbourne City', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'true', 'zone' => 'Zone 1' } }, '1191' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1191, 'stop_landmark' => '', 'stop_latitude' => '-37.9081154', 'stop_longitude' => '145.343', 'stop_name' => 'Tecoma', 'stop_sequence' => 0, 'stop_suburb' => 'Tecoma', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1199' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1199, 'stop_landmark' => '', 'stop_latitude' => '-37.8926735', 'stop_longitude' => '145.307526', 'stop_name' => 'Upper Ferntree Gully', 'stop_sequence' => 0, 'stop_suburb' => 'Upper Ferntree Gully', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1200' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1200, 'stop_landmark' => '', 'stop_latitude' => '-37.90369', 'stop_longitude' => '145.331329', 'stop_name' => 'Upwey', 'stop_sequence' => 0, 'stop_suburb' => 'Upwey', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1229' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1229, 'stop_landmark' => '', 'stop_latitude' => '-37.82312', 'stop_longitude' => '145.100281', 'stop_name' => 'Union', 'stop_sequence' => 0, 'stop_suburb' => 'Mont Albert', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1, 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1,Zone 2' } } } }