train: 951120,0,4
Thu Aug  6 13:17:32 2026 2026-08-06T13:17:32Z

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 Ringwood

2 1018 Belgrave Station 2026-08-06T13:09:00Z 23:09:00 -8m-32s -512 23:08:40 -8m-52s -532 disruptions 362298 357977 344824 323905
1 1191 Tecoma Station 2026-08-06T13:11:00Z 23:11:00 -6m-32s -392 23:11:00 -6m-32s -392 disruptions 362298 357977 344824 323905
1 1200 Upwey Station 2026-08-06T13:13:00Z 23:13:00 -4m-32s -272 23:14:40 -2m-52s -172 disruptions 362298 357977 344824 323905
1 1199 Upper Ferntree Gully Station 2026-08-06T13:17:00Z 23:17:00 0m-32s -32 23:19:00 1m28s 88 disruptions 362298 357977 344824 323905

1 1067 Ferntree Gully Station 2026-08-06T13:20:00Z 23:20:00 2m28s 148 23:21:00 3m28s 208 disruptions 362298 357977 344824 323905
1 1025 Boronia Station 2026-08-06T13:22:00Z 23:22:00 4m28s 268 23:25:00 7m28s 448 disruptions 362298 357977 344824 323905
1 1016 Bayswater Station 2026-08-06T13:25:00Z 23:25:00 7m28s 448 23:28:00 10m28s 628 disruptions 362298 357977 344824 323905
1 1092 Heathmont Station 2026-08-06T13:29:00Z 23:29:00 11m28s 688 23:31:00 13m28s 808 disruptions 362298 357977 344824 323905
1 1163 Ringwood Station 2026-08-06T13:32:00Z 23:32:00 14m28s 868 no est disruptions 362298 357977 344824 323905
$perl_scalar = { 'departures' => [ { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 1, 'direction_id' => 1, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T13:08:40Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 2, 'run_id' => 951120, 'run_ref' => '951120', 'scheduled_departure_utc' => '2026-08-06T13:09:00Z', 'skipped_stops' => [], 'stop_id' => 1018 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 2, 'direction_id' => 1, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T13:11:00Z', 'flags' => '', 'platform_number' => '1', 'route_id' => 2, 'run_id' => 951120, 'run_ref' => '951120', 'scheduled_departure_utc' => '2026-08-06T13:11:00Z', 'skipped_stops' => [], 'stop_id' => 1191 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 3, 'direction_id' => 1, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T13:14:40Z', 'flags' => '', 'platform_number' => '1', 'route_id' => 2, 'run_id' => 951120, 'run_ref' => '951120', 'scheduled_departure_utc' => '2026-08-06T13:13:00Z', 'skipped_stops' => [], 'stop_id' => 1200 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 4, 'direction_id' => 1, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T13:19:00Z', 'flags' => '', 'platform_number' => '1', 'route_id' => 2, 'run_id' => 951120, 'run_ref' => '951120', 'scheduled_departure_utc' => '2026-08-06T13:17:00Z', 'skipped_stops' => [], 'stop_id' => 1199 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 5, 'direction_id' => 1, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T13:21:00Z', 'flags' => '', 'platform_number' => '1', 'route_id' => 2, 'run_id' => 951120, 'run_ref' => '951120', 'scheduled_departure_utc' => '2026-08-06T13:20:00Z', 'skipped_stops' => [], 'stop_id' => 1067 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 6, 'direction_id' => 1, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T13:25:00Z', 'flags' => '', 'platform_number' => '1', 'route_id' => 2, 'run_id' => 951120, 'run_ref' => '951120', 'scheduled_departure_utc' => '2026-08-06T13:22:00Z', 'skipped_stops' => [], 'stop_id' => 1025 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 7, 'direction_id' => 1, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T13:28:00Z', 'flags' => '', 'platform_number' => '1', 'route_id' => 2, 'run_id' => 951120, 'run_ref' => '951120', 'scheduled_departure_utc' => '2026-08-06T13:25:00Z', 'skipped_stops' => [], 'stop_id' => 1016 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 8, 'direction_id' => 1, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => '2026-08-06T13:31:00Z', 'flags' => '', 'platform_number' => '1', 'route_id' => 2, 'run_id' => 951120, 'run_ref' => '951120', 'scheduled_departure_utc' => '2026-08-06T13:29:00Z', 'skipped_stops' => [], 'stop_id' => 1092 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 9, 'direction_id' => 1, 'disruption_ids' => [ 362298, 357977, 344824, 323905 ], 'estimated_departure_utc' => undef, 'flags' => 'E', 'platform_number' => '1', 'route_id' => 2, 'run_id' => 951120, 'run_ref' => '951120', 'scheduled_departure_utc' => '2026-08-06T13:32:00Z', 'skipped_stops' => [], 'stop_id' => 1163 } ], 'directions' => { '1' => { 'direction_id' => 1, 'direction_name' => 'City', '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' => { '951120' => { 'destination_name' => 'Ringwood', 'direction_id' => 1, 'express_stop_count' => 0, 'externalService' => 7, 'final_stop_id' => 1163, 'geopath' => [], 'interchange' => { 'distributor' => { 'advertised' => 'false', 'destination_name' => 'Lilydale', 'direction_id' => 8, 'route_id' => 9, 'run_ref' => '951311', 'stop_id' => 1115 }, 'feeder' => { 'advertised' => 'false', 'destination_name' => 'Belgrave', 'direction_id' => 2, 'route_id' => 2, 'run_ref' => '951123', 'stop_id' => 1018 } }, 'route_id' => 2, 'route_type' => 0, 'run_id' => 951120, 'run_note' => '', 'run_ref' => '951120', 'run_sequence' => 0, 'status' => 'scheduled', 'vehicle_descriptor' => { 'air_conditioned' => undef, 'description' => '6 Car Xtrapolis', 'id' => '1444T-1679T-287M-288M-957M-958M', 'length' => '142', 'low_floor' => undef, 'operator' => 'Metro Trains Melbourne', 'supplier' => 'CIS - Metro Trains Melbourne' }, 'vehicle_position' => { 'bearing' => '-58.5409032484904', 'datetime_utc' => '2026-08-06T23:17:09', 'direction' => 'Inbound', 'easting' => '352020.12836098', 'expiry_time' => '2026-08-06T23:17:44', 'latitude' => '-37.8956940464321', 'longitude' => '145.316969885867', 'northing' => '5804422.65669153', 'supplier' => 'CIS - Metro Trains Melbourne' } } }, 'status' => { 'health' => 1, 'version' => '3.0' }, 'stops' => { '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' } }, '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' } }, '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' } }, '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' } }, '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' } }, '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' } } } }