train: 988003,0,4
Wed Sep 23 17:05:35 2026 2026-09-23T17:05:35Z plat dest scheduled estimated __369188 Stations on the Sandringham line will be affected by temporary car park closures, platform closures and changes to pedestrian access at select times, due to works as part of project and other maintenance works. ** current, _* Later today, __ in the future Final stop Sandringham
13 1181 Southern Cross Station 2026-09-23T19:34:00Z 05:34:00 148m25s 8905 no est disruptions 369188
8 1071 Flinders Street Station 2026-09-23T19:47:00Z 05:47:00 161m25s 9685 no est disruptions 369188
2 1162 Richmond Station 2026-09-23T19:51:00Z 05:51:00 165m25s 9925 no est disruptions 369188
2 1180 South Yarra Station 2026-09-23T19:54:00Z 05:54:00 168m25s 10105 no est disruptions 369188
2 1158 Prahran Station 2026-09-23T19:56:00Z 05:56:00 170m25s 10225 no est disruptions 369188
2 1214 Windsor Station 2026-09-23T19:58:00Z 05:58:00 172m25s 10345 no est disruptions 369188
2 1013 Balaclava Station 2026-09-23T20:00:00Z 06:00:00 174m25s 10465 no est disruptions 369188
2 1165 Ripponlea Station 2026-09-23T20:02:00Z 06:02:00 176m25s 10585 no est disruptions 369188
2 1061 Elsternwick Station 2026-09-23T20:04:00Z 06:04:00 178m25s 10705 no est disruptions 369188
2 1074 Gardenvale Station 2026-09-23T20:06:00Z 06:06:00 180m25s 10825 no est disruptions 369188
2 1143 North Brighton Station 2026-09-23T20:07:00Z 06:07:00 181m25s 10885 no est disruptions 369188
2 1126 Middle Brighton Station 2026-09-23T20:10:00Z 06:10:00 184m25s 11065 no est disruptions 369188
3 1027 Brighton Beach Station 2026-09-23T20:12:00Z 06:12:00 186m25s 11185 no est disruptions 369188
2 1086 Hampton Station 2026-09-23T20:15:00Z 06:15:00 189m25s 11365 no est disruptions 369188
1 1173 Sandringham Station 2026-09-23T20:17:00Z 06:17:00 191m25s 11485 no est disruptions 369188
$perl_scalar = { 'departures' => [ { 'at_platform' => 'false', 'departure_note' => 'via Flinders Street', 'departure_sequence' => 1, 'direction_id' => 12, 'disruption_ids' => [ 369188 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '13', 'route_id' => 12, 'run_id' => 988003, 'run_ref' => '988003', 'scheduled_departure_utc' => '2026-09-23T19:34:00Z', 'skipped_stops' => [], 'stop_id' => 1181 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 2, 'direction_id' => 12, 'disruption_ids' => [ 369188 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '8', 'route_id' => 12, 'run_id' => 988003, 'run_ref' => '988003', 'scheduled_departure_utc' => '2026-09-23T19:47:00Z', 'skipped_stops' => [], 'stop_id' => 1071 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 3, 'direction_id' => 12, 'disruption_ids' => [ 369188 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '2', 'route_id' => 12, 'run_id' => 988003, 'run_ref' => '988003', 'scheduled_departure_utc' => '2026-09-23T19:51:00Z', 'skipped_stops' => [], 'stop_id' => 1162 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 4, 'direction_id' => 12, 'disruption_ids' => [ 369188 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '2', 'route_id' => 12, 'run_id' => 988003, 'run_ref' => '988003', 'scheduled_departure_utc' => '2026-09-23T19:54:00Z', 'skipped_stops' => [], 'stop_id' => 1180 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 5, 'direction_id' => 12, 'disruption_ids' => [ 369188 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '2', 'route_id' => 12, 'run_id' => 988003, 'run_ref' => '988003', 'scheduled_departure_utc' => '2026-09-23T19:56:00Z', 'skipped_stops' => [], 'stop_id' => 1158 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 6, 'direction_id' => 12, 'disruption_ids' => [ 369188 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '2', 'route_id' => 12, 'run_id' => 988003, 'run_ref' => '988003', 'scheduled_departure_utc' => '2026-09-23T19:58:00Z', 'skipped_stops' => [], 'stop_id' => 1214 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 7, 'direction_id' => 12, 'disruption_ids' => [ 369188 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '2', 'route_id' => 12, 'run_id' => 988003, 'run_ref' => '988003', 'scheduled_departure_utc' => '2026-09-23T20:00:00Z', 'skipped_stops' => [], 'stop_id' => 1013 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 8, 'direction_id' => 12, 'disruption_ids' => [ 369188 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '2', 'route_id' => 12, 'run_id' => 988003, 'run_ref' => '988003', 'scheduled_departure_utc' => '2026-09-23T20:02:00Z', 'skipped_stops' => [], 'stop_id' => 1165 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 9, 'direction_id' => 12, 'disruption_ids' => [ 369188 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '2', 'route_id' => 12, 'run_id' => 988003, 'run_ref' => '988003', 'scheduled_departure_utc' => '2026-09-23T20:04:00Z', 'skipped_stops' => [], 'stop_id' => 1061 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 10, 'direction_id' => 12, 'disruption_ids' => [ 369188 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '2', 'route_id' => 12, 'run_id' => 988003, 'run_ref' => '988003', 'scheduled_departure_utc' => '2026-09-23T20:06:00Z', 'skipped_stops' => [], 'stop_id' => 1074 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 11, 'direction_id' => 12, 'disruption_ids' => [ 369188 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '2', 'route_id' => 12, 'run_id' => 988003, 'run_ref' => '988003', 'scheduled_departure_utc' => '2026-09-23T20:07:00Z', 'skipped_stops' => [], 'stop_id' => 1143 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 12, 'direction_id' => 12, 'disruption_ids' => [ 369188 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '2', 'route_id' => 12, 'run_id' => 988003, 'run_ref' => '988003', 'scheduled_departure_utc' => '2026-09-23T20:10:00Z', 'skipped_stops' => [], 'stop_id' => 1126 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 13, 'direction_id' => 12, 'disruption_ids' => [ 369188 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '3', 'route_id' => 12, 'run_id' => 988003, 'run_ref' => '988003', 'scheduled_departure_utc' => '2026-09-23T20:12:00Z', 'skipped_stops' => [], 'stop_id' => 1027 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 14, 'direction_id' => 12, 'disruption_ids' => [ 369188 ], 'estimated_departure_utc' => undef, 'flags' => '', 'platform_number' => '2', 'route_id' => 12, 'run_id' => 988003, 'run_ref' => '988003', 'scheduled_departure_utc' => '2026-09-23T20:15:00Z', 'skipped_stops' => [], 'stop_id' => 1086 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 15, 'direction_id' => 12, 'disruption_ids' => [ 369188 ], 'estimated_departure_utc' => undef, 'flags' => 'E', 'platform_number' => '1', 'route_id' => 12, 'run_id' => 988003, 'run_ref' => '988003', 'scheduled_departure_utc' => '2026-09-23T20:17:00Z', 'skipped_stops' => [], 'stop_id' => 1173 } ], 'directions' => { '12' => { 'direction_id' => 12, 'direction_name' => 'Sandringham', 'route_id' => 12, 'route_type' => 0 } }, 'disruptions' => [ { 'colour' => '#ffd500', 'description' => 'Stations on the Sandringham line will be affected by temporary car park closures, platform closures and changes to pedestrian access at select times, due to works as part of project and other maintenance works.', 'display_on_board' => 'false', 'display_status' => 'false', 'disruption_id' => 369188, 'disruption_status' => 'Current', 'disruption_type' => 'Planned Closure', 'from_date' => '2026-08-29T21:47:00Z', 'last_updated' => '2026-08-29T21:56:22Z', 'published_on' => '2026-08-29T21:55:06Z', 'routes' => [], 'stops' => [], 'title' => 'Sandringham 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/sandringham-line-stations-temporary-car-park-closures-and-pedestrian-access-changes-until-further-notice' } ], 'routes' => { '12' => { 'geopath' => [], 'route_gtfs_id' => '2-SHM', 'route_id' => 12, 'route_name' => 'Sandringham', 'route_number' => '', 'route_type' => 0 } }, 'runs' => { '988003' => { 'destination_name' => 'Sandringham', 'direction_id' => 12, 'express_stop_count' => 0, 'externalService' => undef, 'final_stop_id' => 1173, 'geopath' => [], 'interchange' => { 'distributor' => { 'advertised' => 'false', 'destination_name' => 'Flinders Street', 'direction_id' => 1, 'route_id' => 12, 'run_ref' => '988012', 'stop_id' => 1071 }, 'feeder' => { 'advertised' => 'true', 'destination_name' => 'Flinders Street', 'direction_id' => 1, 'route_id' => 17, 'run_ref' => '954302', 'stop_id' => 1071 } }, 'route_id' => 12, 'route_type' => 0, 'run_id' => 988003, 'run_note' => '', 'run_ref' => '988003', 'run_sequence' => 0, 'status' => 'scheduled', 'vehicle_descriptor' => undef, 'vehicle_position' => undef } }, 'status' => { 'health' => 1, 'version' => '3.0' }, 'stops' => { '1013' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1013, 'stop_landmark' => '', 'stop_latitude' => '-37.8694878', 'stop_longitude' => '144.993515', 'stop_name' => 'Balaclava', 'stop_sequence' => 0, 'stop_suburb' => 'Balaclava', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1027' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1027, 'stop_landmark' => '', 'stop_latitude' => '-37.9264832', 'stop_longitude' => '144.989151', 'stop_name' => 'Brighton Beach', 'stop_sequence' => 0, 'stop_suburb' => 'Brighton', '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' } }, '1061' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1061, 'stop_landmark' => '', 'stop_latitude' => '-37.88475', 'stop_longitude' => '145.0009', 'stop_name' => 'Elsternwick', 'stop_sequence' => 0, 'stop_suburb' => 'Elsternwick', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', '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' } }, '1074' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1074, 'stop_landmark' => '', 'stop_latitude' => '-37.8966942', 'stop_longitude' => '145.004166', 'stop_name' => 'Gardenvale', 'stop_sequence' => 0, 'stop_suburb' => 'Brighton', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1086' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1086, 'stop_landmark' => '', 'stop_latitude' => '-37.9380646', 'stop_longitude' => '145.001419', 'stop_name' => 'Hampton', 'stop_sequence' => 0, 'stop_suburb' => 'Hampton', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1126' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1126, 'stop_landmark' => '', 'stop_latitude' => '-37.9151344', 'stop_longitude' => '144.996292', 'stop_name' => 'Middle Brighton', 'stop_sequence' => 0, 'stop_suburb' => 'Brighton', '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' } }, '1143' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1143, 'stop_landmark' => '', 'stop_latitude' => '-37.9048843', 'stop_longitude' => '145.002609', 'stop_name' => 'North Brighton', 'stop_sequence' => 0, 'stop_suburb' => 'Brighton', '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' } }, '1158' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1158, 'stop_landmark' => '', 'stop_latitude' => '-37.8495178', 'stop_longitude' => '144.989853', 'stop_name' => 'Prahran', 'stop_sequence' => 0, 'stop_suburb' => 'Prahran', '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' } }, '1165' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1165, 'stop_landmark' => '', 'stop_latitude' => '-37.8759079', 'stop_longitude' => '144.995239', 'stop_name' => 'Ripponlea', 'stop_sequence' => 0, 'stop_suburb' => 'Ripponlea', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1173' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1173, 'stop_landmark' => '', 'stop_latitude' => '-37.95033', 'stop_longitude' => '145.004562', 'stop_name' => 'Sandringham', 'stop_sequence' => 0, 'stop_suburb' => 'Sandringham', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'false', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1180' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1180, 'stop_landmark' => '', 'stop_latitude' => '-37.8384438', 'stop_longitude' => '144.99234', 'stop_name' => 'South Yarra', 'stop_sequence' => 0, 'stop_suburb' => 'South Yarra', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'false', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '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' } }, '1214' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1214, 'stop_landmark' => '', 'stop_latitude' => '-37.8560524', 'stop_longitude' => '144.992035', 'stop_name' => 'Windsor', 'stop_sequence' => 0, 'stop_suburb' => 'Windsor', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } } } }