train: 949362,0,4
Thu Aug 6 13:15:54 2026 2026-08-06T13:15:55Z plat dest scheduled estimated __306628 Watsonia Station car park will close from Thursday 4 April 2024 to 2028, due to 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. __358623 Heidelberg Station will be affected by temporary pedestrian access changes from 7.30am to 3.30pm each day, Monday 16 March to early April, due to works. __363497 Macleod Station will be affected by temporary car space closures from Wednesday 10 June 2026 to early March 2027, due to project works. __366366 Greensborough Station will be affected by temporary car parking closures from Monday 6 July to Late August, due to project works. __367110 Montmorency Station will be affected by temporary car space closures from Thursday 6 August 2026, due to project works. ** current, _* Later today, __ in the future Final stop Parliament
1 1100 Hurstbridge Station 2026-08-06T11:57:00Z 21:57:00 -78m-54s -4734 22:00:40 -75m-14s -4514 disruptions 366366 344824 367110 306628 363497 358623
1 1204 Wattle Glen Station 2026-08-06T12:01:00Z 22:01:00 -74m-54s -4494 22:06:00 -69m-54s -4194 disruptions 366366 344824 367110 306628 363497 358623
2 1054 Diamond Creek Station 2026-08-06T12:05:00Z 22:05:00 -70m-54s -4254 22:08:00 -67m-54s -4074 disruptions 366366 344824 367110 306628 363497 358623
2 1062 Eltham Station 2026-08-06T12:12:00Z 22:12:00 -63m-54s -3834 22:16:00 -59m-54s -3594 disruptions 366366 344824 367110 306628 363497 358623
1 1130 Montmorency Station 2026-08-06T12:16:00Z 22:16:00 -59m-54s -3594 22:21:00 -54m-54s -3294 disruptions 366366 344824 367110 306628 363497 358623
1 1084 Greensborough Station 2026-08-06T12:19:00Z 22:19:00 -56m-54s -3414 22:24:00 -51m-54s -3114 disruptions 366366 344824 367110 306628 363497 358623
1 1203 Watsonia Station 2026-08-06T12:23:00Z 22:23:00 -52m-54s -3174 22:28:00 -47m-54s -2874 disruptions 366366 344824 367110 306628 363497 358623
1 1117 Macleod Station 2026-08-06T12:26:00Z 22:26:00 -49m-54s -2994 22:31:00 -44m-54s -2694 disruptions 366366 344824 367110 306628 363497 358623
1 1168 Rosanna Station 2026-08-06T12:28:00Z 22:28:00 -47m-54s -2874 22:33:00 -42m-54s -2574 disruptions 366366 344824 367110 306628 363497 358623
1 1093 Heidelberg Station 2026-08-06T12:30:00Z 22:30:00 -45m-54s -2754 22:36:00 -39m-54s -2394 disruptions 366366 344824 367110 306628 363497 358623
1 1056 Eaglemont Station 2026-08-06T12:32:00Z 22:32:00 -43m-54s -2634 22:38:00 -37m-54s -2274 disruptions 366366 344824 367110 306628 363497 358623
1 1101 Ivanhoe Station 2026-08-06T12:34:00Z 22:34:00 -41m-54s -2514 22:40:00 -35m-54s -2154 disruptions 366366 344824 367110 306628 363497 358623
1 1050 Darebin Station 2026-08-06T12:35:00Z 22:35:00 -40m-54s -2454 22:41:00 -34m-54s -2094 disruptions 366366 344824 367110 306628 363497 358623
1 1004 Alphington Station 2026-08-06T12:37:00Z 22:37:00 -38m-54s -2334 22:42:32 -33m-22s -2002 disruptions 366366 344824 367110 306628 363497 358623
1 1065 Fairfield Station 2026-08-06T12:39:00Z 22:39:00 -36m-54s -2214 22:44:00 -31m-54s -1914 disruptions 366366 344824 367110 306628 363497 358623
1 1053 Dennis Station 2026-08-06T12:41:00Z 22:41:00 -34m-54s -2094 22:46:00 -29m-54s -1794 disruptions 366366 344824 367110 306628 363497 358623
1 1209 Westgarth Station 2026-08-06T12:42:00Z 22:42:00 -33m-54s -2034 22:47:00 -28m-54s -1734 disruptions 366366 344824 367110 306628 363497 358623
1 1041 Clifton Hill Station 2026-08-06T12:45:00Z 22:45:00 -30m-54s -1854 22:50:00 -25m-54s -1554 disruptions 366366 344824 367110 306628 363497 358623
1 1201 Victoria Park Station 2026-08-06T12:47:00Z 22:47:00 -28m-54s -1734 22:51:32 -24m-22s -1462 disruptions 366366 344824 367110 306628 363497 358623
1 1043 Collingwood Station 2026-08-06T12:48:00Z 22:48:00 -27m-54s -1674 22:53:00 -22m-54s -1374 disruptions 366366 344824 367110 306628 363497 358623
1 1145 North Richmond Station 2026-08-06T12:50:00Z 22:50:00 -25m-54s -1554 22:55:00 -20m-54s -1254 disruptions 366366 344824 367110 306628 363497 358623
1 1207 West Richmond Station 2026-08-06T12:51:00Z 22:51:00 -24m-54s -1494 22:56:00 -19m-54s -1194 disruptions 366366 344824 367110 306628 363497 358623
1 1104 Jolimont-MCG Station 2026-08-06T12:53:00Z 22:53:00 -22m-54s -1374 22:57:00 -18m-54s -1134 disruptions 366366 344824 367110 306628 363497 358623
1 1071 Flinders Street Station 2026-08-06T13:00:00Z 23:00:00 -15m-54s -954 23:01:00 -14m-54s -894 disruptions 366366 344824 367110 306628 363497 358623
9 1181 Southern Cross Station 2026-08-06T13:05:00Z 23:05:00 -10m-54s -654 23:06:00 -9m-54s -594 disruptions 366366 344824 367110 306628 363497 358623
1 1068 Flagstaff Station 2026-08-06T13:07:00Z 23:07:00 -8m-54s -534 23:08:00 -7m-54s -474 disruptions 366366 344824 367110 306628 363497 358623
1 1120 Melbourne Central Station 2026-08-06T13:09:00Z 23:09:00 -6m-54s -414 23:09:12 -6m-42s -402 disruptions 366366 344824 367110 306628 363497 358623
1 1155 Parliament Station 2026-08-06T13:11:00Z 23:11:00 -4m-54s -294 23:11:52 -4m-2s -242 disruptions 366366 344824 367110 306628 363497 358623
$perl_scalar = { 'departures' => [ { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 1, 'direction_id' => 1, 'disruption_ids' => [ 366366, 344824, 367110, 306628, 363497, 358623 ], 'estimated_departure_utc' => '2026-08-06T12:00:40Z', 'flags' => '', 'platform_number' => '1', 'route_id' => 8, 'run_id' => 949362, 'run_ref' => '949362', 'scheduled_departure_utc' => '2026-08-06T11:57:00Z', 'skipped_stops' => [], 'stop_id' => 1100 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 2, 'direction_id' => 1, 'disruption_ids' => [ 366366, 344824, 367110, 306628, 363497, 358623 ], 'estimated_departure_utc' => '2026-08-06T12:06:00Z', 'flags' => '', 'platform_number' => '1', 'route_id' => 8, 'run_id' => 949362, 'run_ref' => '949362', 'scheduled_departure_utc' => '2026-08-06T12:01:00Z', 'skipped_stops' => [], 'stop_id' => 1204 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 3, 'direction_id' => 1, 'disruption_ids' => [ 366366, 344824, 367110, 306628, 363497, 358623 ], 'estimated_departure_utc' => '2026-08-06T12:08:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 8, 'run_id' => 949362, 'run_ref' => '949362', 'scheduled_departure_utc' => '2026-08-06T12:05:00Z', 'skipped_stops' => [], 'stop_id' => 1054 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 4, 'direction_id' => 1, 'disruption_ids' => [ 366366, 344824, 367110, 306628, 363497, 358623 ], 'estimated_departure_utc' => '2026-08-06T12:16:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 8, 'run_id' => 949362, 'run_ref' => '949362', 'scheduled_departure_utc' => '2026-08-06T12:12:00Z', 'skipped_stops' => [], 'stop_id' => 1062 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 5, 'direction_id' => 1, 'disruption_ids' => [ 366366, 344824, 367110, 306628, 363497, 358623 ], 'estimated_departure_utc' => '2026-08-06T12:21:00Z', 'flags' => '', 'platform_number' => '1', 'route_id' => 8, 'run_id' => 949362, 'run_ref' => '949362', 'scheduled_departure_utc' => '2026-08-06T12:16:00Z', 'skipped_stops' => [], 'stop_id' => 1130 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 6, 'direction_id' => 1, 'disruption_ids' => [ 366366, 344824, 367110, 306628, 363497, 358623 ], 'estimated_departure_utc' => '2026-08-06T12:24:00Z', 'flags' => '', 'platform_number' => '1', 'route_id' => 8, 'run_id' => 949362, 'run_ref' => '949362', 'scheduled_departure_utc' => '2026-08-06T12:19:00Z', 'skipped_stops' => [], 'stop_id' => 1084 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 7, 'direction_id' => 1, 'disruption_ids' => [ 366366, 344824, 367110, 306628, 363497, 358623 ], 'estimated_departure_utc' => '2026-08-06T12:28:00Z', 'flags' => '', 'platform_number' => '1', 'route_id' => 8, 'run_id' => 949362, 'run_ref' => '949362', 'scheduled_departure_utc' => '2026-08-06T12:23:00Z', 'skipped_stops' => [], 'stop_id' => 1203 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 8, 'direction_id' => 1, 'disruption_ids' => [ 366366, 344824, 367110, 306628, 363497, 358623 ], 'estimated_departure_utc' => '2026-08-06T12:31:00Z', 'flags' => '', 'platform_number' => '1', 'route_id' => 8, 'run_id' => 949362, 'run_ref' => '949362', 'scheduled_departure_utc' => '2026-08-06T12:26:00Z', 'skipped_stops' => [], 'stop_id' => 1117 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 9, 'direction_id' => 1, 'disruption_ids' => [ 366366, 344824, 367110, 306628, 363497, 358623 ], 'estimated_departure_utc' => '2026-08-06T12:33:00Z', 'flags' => '', 'platform_number' => '1', 'route_id' => 8, 'run_id' => 949362, 'run_ref' => '949362', 'scheduled_departure_utc' => '2026-08-06T12:28:00Z', 'skipped_stops' => [], 'stop_id' => 1168 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 10, 'direction_id' => 1, 'disruption_ids' => [ 366366, 344824, 367110, 306628, 363497, 358623 ], 'estimated_departure_utc' => '2026-08-06T12:36:00Z', 'flags' => '', 'platform_number' => '1', 'route_id' => 8, 'run_id' => 949362, 'run_ref' => '949362', 'scheduled_departure_utc' => '2026-08-06T12:30:00Z', 'skipped_stops' => [], 'stop_id' => 1093 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 11, 'direction_id' => 1, 'disruption_ids' => [ 366366, 344824, 367110, 306628, 363497, 358623 ], 'estimated_departure_utc' => '2026-08-06T12:38:00Z', 'flags' => '', 'platform_number' => '1', 'route_id' => 8, 'run_id' => 949362, 'run_ref' => '949362', 'scheduled_departure_utc' => '2026-08-06T12:32:00Z', 'skipped_stops' => [], 'stop_id' => 1056 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 12, 'direction_id' => 1, 'disruption_ids' => [ 366366, 344824, 367110, 306628, 363497, 358623 ], 'estimated_departure_utc' => '2026-08-06T12:40:00Z', 'flags' => '', 'platform_number' => '1', 'route_id' => 8, 'run_id' => 949362, 'run_ref' => '949362', 'scheduled_departure_utc' => '2026-08-06T12:34:00Z', 'skipped_stops' => [], 'stop_id' => 1101 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 13, 'direction_id' => 1, 'disruption_ids' => [ 366366, 344824, 367110, 306628, 363497, 358623 ], 'estimated_departure_utc' => '2026-08-06T12:41:00Z', 'flags' => '', 'platform_number' => '1', 'route_id' => 8, 'run_id' => 949362, 'run_ref' => '949362', 'scheduled_departure_utc' => '2026-08-06T12:35:00Z', 'skipped_stops' => [], 'stop_id' => 1050 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 14, 'direction_id' => 1, 'disruption_ids' => [ 366366, 344824, 367110, 306628, 363497, 358623 ], 'estimated_departure_utc' => '2026-08-06T12:42:32Z', 'flags' => '', 'platform_number' => '1', 'route_id' => 8, 'run_id' => 949362, 'run_ref' => '949362', 'scheduled_departure_utc' => '2026-08-06T12:37:00Z', 'skipped_stops' => [], 'stop_id' => 1004 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 15, 'direction_id' => 1, 'disruption_ids' => [ 366366, 344824, 367110, 306628, 363497, 358623 ], 'estimated_departure_utc' => '2026-08-06T12:44:00Z', 'flags' => '', 'platform_number' => '1', 'route_id' => 8, 'run_id' => 949362, 'run_ref' => '949362', 'scheduled_departure_utc' => '2026-08-06T12:39:00Z', 'skipped_stops' => [], 'stop_id' => 1065 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 16, 'direction_id' => 1, 'disruption_ids' => [ 366366, 344824, 367110, 306628, 363497, 358623 ], 'estimated_departure_utc' => '2026-08-06T12:46:00Z', 'flags' => '', 'platform_number' => '1', 'route_id' => 8, 'run_id' => 949362, 'run_ref' => '949362', 'scheduled_departure_utc' => '2026-08-06T12:41:00Z', 'skipped_stops' => [], 'stop_id' => 1053 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 17, 'direction_id' => 1, 'disruption_ids' => [ 366366, 344824, 367110, 306628, 363497, 358623 ], 'estimated_departure_utc' => '2026-08-06T12:47:00Z', 'flags' => '', 'platform_number' => '1', 'route_id' => 8, 'run_id' => 949362, 'run_ref' => '949362', 'scheduled_departure_utc' => '2026-08-06T12:42:00Z', 'skipped_stops' => [], 'stop_id' => 1209 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 18, 'direction_id' => 1, 'disruption_ids' => [ 366366, 344824, 367110, 306628, 363497, 358623 ], 'estimated_departure_utc' => '2026-08-06T12:50:00Z', 'flags' => '', 'platform_number' => '1', 'route_id' => 8, 'run_id' => 949362, 'run_ref' => '949362', 'scheduled_departure_utc' => '2026-08-06T12:45:00Z', 'skipped_stops' => [], 'stop_id' => 1041 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 19, 'direction_id' => 1, 'disruption_ids' => [ 366366, 344824, 367110, 306628, 363497, 358623 ], 'estimated_departure_utc' => '2026-08-06T12:51:32Z', 'flags' => '', 'platform_number' => '1', 'route_id' => 8, 'run_id' => 949362, 'run_ref' => '949362', 'scheduled_departure_utc' => '2026-08-06T12:47:00Z', 'skipped_stops' => [], 'stop_id' => 1201 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 20, 'direction_id' => 1, 'disruption_ids' => [ 366366, 344824, 367110, 306628, 363497, 358623 ], 'estimated_departure_utc' => '2026-08-06T12:53:00Z', 'flags' => '', 'platform_number' => '1', 'route_id' => 8, 'run_id' => 949362, 'run_ref' => '949362', 'scheduled_departure_utc' => '2026-08-06T12:48:00Z', 'skipped_stops' => [], 'stop_id' => 1043 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 21, 'direction_id' => 1, 'disruption_ids' => [ 366366, 344824, 367110, 306628, 363497, 358623 ], 'estimated_departure_utc' => '2026-08-06T12:55:00Z', 'flags' => '', 'platform_number' => '1', 'route_id' => 8, 'run_id' => 949362, 'run_ref' => '949362', 'scheduled_departure_utc' => '2026-08-06T12:50:00Z', 'skipped_stops' => [], 'stop_id' => 1145 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 22, 'direction_id' => 1, 'disruption_ids' => [ 366366, 344824, 367110, 306628, 363497, 358623 ], 'estimated_departure_utc' => '2026-08-06T12:56:00Z', 'flags' => '', 'platform_number' => '1', 'route_id' => 8, 'run_id' => 949362, 'run_ref' => '949362', 'scheduled_departure_utc' => '2026-08-06T12:51:00Z', 'skipped_stops' => [], 'stop_id' => 1207 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 23, 'direction_id' => 1, 'disruption_ids' => [ 366366, 344824, 367110, 306628, 363497, 358623 ], 'estimated_departure_utc' => '2026-08-06T12:57:00Z', 'flags' => '', 'platform_number' => '1', 'route_id' => 8, 'run_id' => 949362, 'run_ref' => '949362', 'scheduled_departure_utc' => '2026-08-06T12:53:00Z', 'skipped_stops' => [], 'stop_id' => 1104 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 24, 'direction_id' => 1, 'disruption_ids' => [ 366366, 344824, 367110, 306628, 363497, 358623 ], 'estimated_departure_utc' => '2026-08-06T13:01:00Z', 'flags' => '', 'platform_number' => '1', 'route_id' => 8, 'run_id' => 949362, 'run_ref' => '949362', 'scheduled_departure_utc' => '2026-08-06T13:00:00Z', 'skipped_stops' => [], 'stop_id' => 1071 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 25, 'direction_id' => 1, 'disruption_ids' => [ 366366, 344824, 367110, 306628, 363497, 358623 ], 'estimated_departure_utc' => '2026-08-06T13:06:00Z', 'flags' => '', 'platform_number' => '9', 'route_id' => 8, 'run_id' => 949362, 'run_ref' => '949362', 'scheduled_departure_utc' => '2026-08-06T13:05:00Z', 'skipped_stops' => [], 'stop_id' => 1181 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 26, 'direction_id' => 1, 'disruption_ids' => [ 366366, 344824, 367110, 306628, 363497, 358623 ], 'estimated_departure_utc' => '2026-08-06T13:08:00Z', 'flags' => '', 'platform_number' => '1', 'route_id' => 8, 'run_id' => 949362, 'run_ref' => '949362', 'scheduled_departure_utc' => '2026-08-06T13:07:00Z', 'skipped_stops' => [], 'stop_id' => 1068 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 27, 'direction_id' => 1, 'disruption_ids' => [ 366366, 344824, 367110, 306628, 363497, 358623 ], 'estimated_departure_utc' => '2026-08-06T13:09:12Z', 'flags' => '', 'platform_number' => '1', 'route_id' => 8, 'run_id' => 949362, 'run_ref' => '949362', 'scheduled_departure_utc' => '2026-08-06T13:09:00Z', 'skipped_stops' => [], 'stop_id' => 1120 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 28, 'direction_id' => 1, 'disruption_ids' => [ 366366, 344824, 367110, 306628, 363497, 358623 ], 'estimated_departure_utc' => '2026-08-06T13:11:52Z', 'flags' => 'E', 'platform_number' => '1', 'route_id' => 8, 'run_id' => 949362, 'run_ref' => '949362', 'scheduled_departure_utc' => '2026-08-06T13:11:00Z', 'skipped_stops' => [], 'stop_id' => 1155 } ], 'directions' => { '1' => { 'direction_id' => 1, 'direction_name' => 'City', 'route_id' => 8, 'route_type' => 0 } }, 'disruptions' => [ { 'colour' => '#ffd500', 'description' => 'Greensborough Station will be affected by temporary car parking closures from Monday 6 July to Late August, due to project works.', 'display_on_board' => 'false', 'display_status' => 'false', 'disruption_id' => 366366, 'disruption_status' => 'Current', 'disruption_type' => 'Planned Closure', 'from_date' => '2026-07-15T00:45:00Z', 'last_updated' => '2026-07-15T00:59:31Z', 'published_on' => '2026-07-15T00:55:27Z', 'routes' => [], 'stops' => [], 'title' => 'Greensborough Station: Temporary car park closures from Monday 6 July to Late August 2026', 'to_date' => '2026-08-30T17:00:00Z', 'url' => 'http://ptv.vic.gov.au/live-travel-updates/article/greensborough-station-temporary-car-park-closures-from-monday-6-july-to-late-august-2026' }, { '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' => 'Montmorency Station will be affected by temporary car space closures from Thursday 6 August 2026, due to project works.', 'display_on_board' => 'false', 'display_status' => 'false', 'disruption_id' => 367110, 'disruption_status' => 'Current', 'disruption_type' => 'Planned Closure', 'from_date' => '2026-08-05T17:00:00Z', 'last_updated' => '2026-08-05T17:02:12Z', 'published_on' => '2026-07-27T09:43:29Z', 'routes' => [], 'stops' => [], 'title' => 'Montmorency Station: Temporary car park closures from Thursday 6 August 2026', 'to_date' => '2026-08-06T17:00:00Z', 'url' => 'http://ptv.vic.gov.au/live-travel-updates/article/montmorency-station-temporary-car-park-closures-from-thursday-6-august-2026' }, { 'colour' => '#ffd500', 'description' => 'Watsonia Station car park will close from Thursday 4 April 2024 to 2028, due to works.', 'display_on_board' => 'false', 'display_status' => 'false', 'disruption_id' => 306628, 'disruption_status' => 'Current', 'disruption_type' => 'Planned Closure', 'from_date' => '2024-04-03T16:00:00Z', 'last_updated' => '2025-12-20T10:25:13Z', 'published_on' => '2024-02-14T04:45:53Z', 'routes' => [], 'stops' => [], 'title' => 'Watsonia Station: Temporary car park closures from Thursday 4 April 2024 to 2028', 'to_date' => undef, 'url' => 'http://ptv.vic.gov.au/live-travel-updates/article/watsonia-station-temporary-car-park-closures-from-mid-march-2024-to-2028' }, { 'colour' => '#ffd500', 'description' => 'Macleod Station will be affected by temporary car space closures from Wednesday 10 June 2026 to early March 2027, due to project works.', 'display_on_board' => 'false', 'display_status' => 'false', 'disruption_id' => 363497, 'disruption_status' => 'Current', 'disruption_type' => 'Planned Closure', 'from_date' => '2026-06-09T17:00:00Z', 'last_updated' => '2026-07-31T00:44:44Z', 'published_on' => '2026-05-28T03:29:30Z', 'routes' => [], 'stops' => [], 'title' => 'Macleod Station: Temporary car park closures from Wednesday 10 June 2026 to early March 2027', 'to_date' => undef, 'url' => 'http://ptv.vic.gov.au/live-travel-updates/article/macleod-station-temporary-car-park-closures-from-wednesday-10-june-to-early-march-2027' }, { 'colour' => '#ffbb00', 'description' => 'Heidelberg Station will be affected by temporary pedestrian access changes from 7.30am to 3.30pm each day, Monday 16 March to early April, due to works.', 'display_on_board' => 'false', 'display_status' => 'false', 'disruption_id' => 358623, 'disruption_status' => 'Current', 'disruption_type' => 'Station detour', 'from_date' => '2026-03-26T06:47:00Z', 'last_updated' => '2026-03-26T07:08:08Z', 'published_on' => '2026-03-26T06:58:56Z', 'routes' => [], 'stops' => [], 'title' => 'Heidelberg Station: Temporary pedestrian access changes from Monday 16 March to early April 2026', 'to_date' => undef, 'url' => 'http://ptv.vic.gov.au/live-travel-updates/article/heidelberg-station-temporary-pedestrian-access-changes-from-monday-16-march-to-early-april-2026' } ], 'routes' => { '8' => { 'geopath' => [], 'route_gtfs_id' => '2-HBE', 'route_id' => 8, 'route_name' => 'Hurstbridge', 'route_number' => '', 'route_type' => 0 } }, 'runs' => { '949362' => { 'destination_name' => 'Parliament', 'direction_id' => 1, 'express_stop_count' => 0, 'externalService' => 7, 'final_stop_id' => 1155, 'geopath' => [], 'interchange' => { 'distributor' => { 'advertised' => 'false', 'destination_name' => 'Mernda', 'direction_id' => 9, 'route_id' => 5, 'run_ref' => '949777', 'stop_id' => 1228 }, 'feeder' => { 'advertised' => 'false', 'destination_name' => 'Hurstbridge', 'direction_id' => 7, 'route_id' => 8, 'run_ref' => '949951', 'stop_id' => 1100 } }, 'route_id' => 8, 'route_type' => 0, 'run_id' => 949362, 'run_note' => '', 'run_ref' => '949362', 'run_sequence' => 0, 'status' => 'scheduled', 'vehicle_descriptor' => { 'air_conditioned' => undef, 'description' => '6 Car Xtrapolis', 'id' => '1308T-15M-1633T-16M-865M-866M', 'length' => '142', 'low_floor' => undef, 'operator' => 'Metro Trains Melbourne', 'supplier' => 'CIS - Metro Trains Melbourne' }, 'vehicle_position' => { 'bearing' => '9.11355274807339', 'datetime_utc' => '2026-08-06T23:15:29', 'direction' => 'Outbound', 'easting' => '323237.3125', 'expiry_time' => '2026-08-06T23:16:04', 'latitude' => '-37.8139651573972', 'longitude' => '144.991861940059', 'northing' => '5812926', 'supplier' => 'CIS - Metro Trains Melbourne' } } }, 'status' => { 'health' => 1, 'version' => '3.0' }, 'stops' => { '1004' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1004, 'stop_landmark' => '', 'stop_latitude' => '-37.7783966', 'stop_longitude' => '145.03125', 'stop_name' => 'Alphington', 'stop_sequence' => 0, 'stop_suburb' => 'Alphington', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1041' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1041, 'stop_landmark' => '', 'stop_latitude' => '-37.7886543', 'stop_longitude' => '144.995422', 'stop_name' => 'Clifton Hill', 'stop_sequence' => 0, 'stop_suburb' => 'Clifton Hill', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1043' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1043, 'stop_landmark' => '', 'stop_latitude' => '-37.8045235', 'stop_longitude' => '144.993744', 'stop_name' => 'Collingwood', 'stop_sequence' => 0, 'stop_suburb' => 'Abbotsford', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1050' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1050, 'stop_landmark' => '', 'stop_latitude' => '-37.7749634', 'stop_longitude' => '145.038483', 'stop_name' => 'Darebin', 'stop_sequence' => 0, 'stop_suburb' => 'Ivanhoe', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1053' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1053, 'stop_landmark' => '', 'stop_latitude' => '-37.7791824', 'stop_longitude' => '145.00824', 'stop_name' => 'Dennis', 'stop_sequence' => 0, 'stop_suburb' => 'Northcote', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1054' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1054, 'stop_landmark' => '', 'stop_latitude' => '-37.6732941', 'stop_longitude' => '145.158508', 'stop_name' => 'Diamond Creek', 'stop_sequence' => 0, 'stop_suburb' => 'Diamond Creek', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1056' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1056, 'stop_landmark' => '', 'stop_latitude' => '-37.7635841', 'stop_longitude' => '145.05394', 'stop_name' => 'Eaglemont', 'stop_sequence' => 0, 'stop_suburb' => 'Eaglemont', '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' } }, '1062' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1062, 'stop_landmark' => '', 'stop_latitude' => '-37.71355', 'stop_longitude' => '145.147827', 'stop_name' => 'Eltham', 'stop_sequence' => 0, 'stop_suburb' => 'Eltham', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1065' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1065, 'stop_landmark' => '', 'stop_latitude' => '-37.7791748', 'stop_longitude' => '145.0169', 'stop_name' => 'Fairfield', 'stop_sequence' => 0, 'stop_suburb' => 'Fairfield', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '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' } }, '1084' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1084, 'stop_landmark' => '', 'stop_latitude' => '-37.70395', 'stop_longitude' => '145.108246', 'stop_name' => 'Greensborough', 'stop_sequence' => 0, 'stop_suburb' => 'Greensborough', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1093' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1093, 'stop_landmark' => '', 'stop_latitude' => '-37.7570763', 'stop_longitude' => '145.060684', 'stop_name' => 'Heidelberg', 'stop_sequence' => 0, 'stop_suburb' => 'Heidelberg', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'false', 'ticket_type' => '', 'ticket_zones' => [ 1, 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1,Zone 2' } }, '1100' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1100, 'stop_landmark' => '', 'stop_latitude' => '-37.6394', 'stop_longitude' => '145.192017', 'stop_name' => 'Hurstbridge', 'stop_sequence' => 0, 'stop_suburb' => 'Hurstbridge', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'false', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1101' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1101, 'stop_landmark' => '', 'stop_latitude' => '-37.768898', 'stop_longitude' => '145.045425', 'stop_name' => 'Ivanhoe', 'stop_sequence' => 0, 'stop_suburb' => 'Ivanhoe', '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' } }, '1104' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1104, 'stop_landmark' => '', 'stop_latitude' => '-37.8164444', 'stop_longitude' => '144.983871', 'stop_name' => 'Jolimont-MCG', 'stop_sequence' => 0, 'stop_suburb' => 'East Melbourne', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'false', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1117' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1117, 'stop_landmark' => '', 'stop_latitude' => '-37.72601', 'stop_longitude' => '145.069153', 'stop_name' => 'Macleod', 'stop_sequence' => 0, 'stop_suburb' => 'Macleod', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', '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' } }, '1130' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1130, 'stop_landmark' => '', 'stop_latitude' => '-37.7152977', 'stop_longitude' => '145.1215', 'stop_name' => 'Montmorency', 'stop_sequence' => 0, 'stop_suburb' => 'Montmorency', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1145' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1145, 'stop_landmark' => '', 'stop_latitude' => '-37.8103943', 'stop_longitude' => '144.9925', 'stop_name' => 'North Richmond', 'stop_sequence' => 0, 'stop_suburb' => 'Richmond', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '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' } }, '1168' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1168, 'stop_landmark' => '', 'stop_latitude' => '-37.7428741', 'stop_longitude' => '145.066147', 'stop_name' => 'Rosanna', 'stop_sequence' => 0, 'stop_suburb' => 'Rosanna', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', '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' } }, '1201' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1201, 'stop_landmark' => '', 'stop_latitude' => '-37.7991562', 'stop_longitude' => '144.994446', 'stop_name' => 'Victoria Park', 'stop_sequence' => 0, 'stop_suburb' => 'Abbotsford', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1203' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1203, 'stop_landmark' => '', 'stop_latitude' => '-37.7109528', 'stop_longitude' => '145.0838', 'stop_name' => 'Watsonia', 'stop_sequence' => 0, 'stop_suburb' => 'Watsonia', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'false', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1204' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1204, 'stop_landmark' => '', 'stop_latitude' => '-37.6639671', 'stop_longitude' => '145.181625', 'stop_name' => 'Wattle Glen', 'stop_sequence' => 0, 'stop_suburb' => 'Wattle Glen', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1207' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1207, 'stop_landmark' => '', 'stop_latitude' => '-37.8149452', 'stop_longitude' => '144.991425', 'stop_name' => 'West Richmond', 'stop_sequence' => 0, 'stop_suburb' => 'Richmond', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1209' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1209, 'stop_landmark' => '', 'stop_latitude' => '-37.7806168', 'stop_longitude' => '144.999237', 'stop_name' => 'Westgarth', 'stop_sequence' => 0, 'stop_suburb' => 'Northcote', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } } } }