UNPKG

ws-dottie

Version:

Your friendly TypeScript companion for Washington State transportation APIs - WSDOT and WSF data with smart caching and React Query integration

1,705 lines 60.2 kB
{ "ScheduleID": 193, "ScheduleName": "Fall 2025", "ScheduleSeason": 2, "SchedulePDFUrl": "http://www.wsdot.wa.gov/ferries/pdf/2025Fall.pdf", "ScheduleStart": "2025-09-21T07:00:00.000Z", "ScheduleEnd": "2025-12-27T08:00:00.000Z", "AllRoutes": [ 9 ], "TerminalCombos": [ { "DepartingTerminalID": 1, "DepartingTerminalName": "Anacortes", "ArrivingTerminalID": 13, "ArrivingTerminalName": "Lopez Island", "SailingNotes": "", "Annotations": [], "Times": [ { "DepartingTime": "2025-11-15T14:15:00.000Z", "ArrivingTime": "2025-11-15T15:10:00.000Z", "LoadingRule": 3, "VesselID": 69, "VesselName": "Samish", "VesselHandicapAccessible": true, "VesselPositionNum": 3, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T18:05:00.000Z", "ArrivingTime": "2025-11-15T19:00:00.000Z", "LoadingRule": 3, "VesselID": 69, "VesselName": "Samish", "VesselHandicapAccessible": true, "VesselPositionNum": 3, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T21:55:00.000Z", "ArrivingTime": "2025-11-15T22:40:00.000Z", "LoadingRule": 3, "VesselID": 38, "VesselName": "Yakima", "VesselHandicapAccessible": true, "VesselPositionNum": 2, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-16T00:20:00.000Z", "ArrivingTime": "2025-11-16T01:15:00.000Z", "LoadingRule": 3, "VesselID": 38, "VesselName": "Yakima", "VesselHandicapAccessible": true, "VesselPositionNum": 2, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-16T01:35:00.000Z", "ArrivingTime": "2025-11-16T02:30:00.000Z", "LoadingRule": 3, "VesselID": 69, "VesselName": "Samish", "VesselHandicapAccessible": true, "VesselPositionNum": 3, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-16T04:15:00.000Z", "ArrivingTime": "2025-11-16T05:10:00.000Z", "LoadingRule": 3, "VesselID": 38, "VesselName": "Yakima", "VesselHandicapAccessible": true, "VesselPositionNum": 2, "Routes": [ 9 ], "AnnotationIndexes": [] } ], "AnnotationsIVR": [] }, { "DepartingTerminalID": 1, "DepartingTerminalName": "Anacortes", "ArrivingTerminalID": 18, "ArrivingTerminalName": "Shaw Island", "SailingNotes": "", "Annotations": [], "Times": [ { "DepartingTime": "2025-11-15T13:30:00.000Z", "ArrivingTime": "2025-11-15T15:05:00.000Z", "LoadingRule": 3, "VesselID": 2, "VesselName": "Chelan", "VesselHandicapAccessible": true, "VesselPositionNum": 1, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T15:30:00.000Z", "ArrivingTime": "2025-11-15T17:10:00.000Z", "LoadingRule": 3, "VesselID": 38, "VesselName": "Yakima", "VesselHandicapAccessible": true, "VesselPositionNum": 2, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T19:55:00.000Z", "ArrivingTime": "2025-11-15T20:55:00.000Z", "LoadingRule": 3, "VesselID": 2, "VesselName": "Chelan", "VesselHandicapAccessible": true, "VesselPositionNum": 1, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T23:20:00.000Z", "ArrivingTime": "2025-11-16T00:50:00.000Z", "LoadingRule": 3, "VesselID": 2, "VesselName": "Chelan", "VesselHandicapAccessible": true, "VesselPositionNum": 1, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-16T02:05:00.000Z", "ArrivingTime": "2025-11-16T03:05:00.000Z", "LoadingRule": 3, "VesselID": 2, "VesselName": "Chelan", "VesselHandicapAccessible": true, "VesselPositionNum": 1, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-16T04:40:00.000Z", "ArrivingTime": "2025-11-16T05:35:00.000Z", "LoadingRule": 3, "VesselID": 2, "VesselName": "Chelan", "VesselHandicapAccessible": true, "VesselPositionNum": 1, "Routes": [ 9 ], "AnnotationIndexes": [] } ], "AnnotationsIVR": [] }, { "DepartingTerminalID": 1, "DepartingTerminalName": "Anacortes", "ArrivingTerminalID": 15, "ArrivingTerminalName": "Orcas Island", "SailingNotes": "", "Annotations": [], "Times": [ { "DepartingTime": "2025-11-15T13:30:00.000Z", "ArrivingTime": "2025-11-15T14:25:00.000Z", "LoadingRule": 3, "VesselID": 2, "VesselName": "Chelan", "VesselHandicapAccessible": true, "VesselPositionNum": 1, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T15:30:00.000Z", "ArrivingTime": "2025-11-15T16:30:00.000Z", "LoadingRule": 3, "VesselID": 38, "VesselName": "Yakima", "VesselHandicapAccessible": true, "VesselPositionNum": 2, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T18:05:00.000Z", "ArrivingTime": "2025-11-15T19:20:00.000Z", "LoadingRule": 3, "VesselID": 69, "VesselName": "Samish", "VesselHandicapAccessible": true, "VesselPositionNum": 3, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T19:55:00.000Z", "ArrivingTime": "2025-11-15T21:05:00.000Z", "LoadingRule": 3, "VesselID": 2, "VesselName": "Chelan", "VesselHandicapAccessible": true, "VesselPositionNum": 1, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T23:20:00.000Z", "ArrivingTime": "2025-11-16T00:15:00.000Z", "LoadingRule": 3, "VesselID": 2, "VesselName": "Chelan", "VesselHandicapAccessible": true, "VesselPositionNum": 1, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-16T02:05:00.000Z", "ArrivingTime": "2025-11-16T03:15:00.000Z", "LoadingRule": 3, "VesselID": 2, "VesselName": "Chelan", "VesselHandicapAccessible": true, "VesselPositionNum": 1, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-16T04:40:00.000Z", "ArrivingTime": "2025-11-16T05:45:00.000Z", "LoadingRule": 3, "VesselID": 2, "VesselName": "Chelan", "VesselHandicapAccessible": true, "VesselPositionNum": 1, "Routes": [ 9 ], "AnnotationIndexes": [] } ], "AnnotationsIVR": [] }, { "DepartingTerminalID": 1, "DepartingTerminalName": "Anacortes", "ArrivingTerminalID": 10, "ArrivingTerminalName": "Friday Harbor", "SailingNotes": "", "Annotations": [], "Times": [ { "DepartingTime": "2025-11-15T12:05:00.000Z", "ArrivingTime": "2025-11-15T13:15:00.000Z", "LoadingRule": 3, "VesselID": 38, "VesselName": "Yakima", "VesselHandicapAccessible": true, "VesselPositionNum": 2, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T14:15:00.000Z", "ArrivingTime": "2025-11-15T15:45:00.000Z", "LoadingRule": 3, "VesselID": 69, "VesselName": "Samish", "VesselHandicapAccessible": true, "VesselPositionNum": 3, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T16:40:00.000Z", "ArrivingTime": "2025-11-15T17:50:00.000Z", "LoadingRule": 3, "VesselID": 2, "VesselName": "Chelan", "VesselHandicapAccessible": true, "VesselPositionNum": 1, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T18:30:00.000Z", "ArrivingTime": "2025-11-15T19:40:00.000Z", "LoadingRule": 3, "VesselID": 38, "VesselName": "Yakima", "VesselHandicapAccessible": true, "VesselPositionNum": 2, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T21:35:00.000Z", "ArrivingTime": "2025-11-15T22:45:00.000Z", "LoadingRule": 3, "VesselID": 69, "VesselName": "Samish", "VesselHandicapAccessible": true, "VesselPositionNum": 3, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-16T00:20:00.000Z", "ArrivingTime": "2025-11-16T01:50:00.000Z", "LoadingRule": 3, "VesselID": 38, "VesselName": "Yakima", "VesselHandicapAccessible": true, "VesselPositionNum": 2, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-16T01:35:00.000Z", "ArrivingTime": "2025-11-16T03:05:00.000Z", "LoadingRule": 3, "VesselID": 69, "VesselName": "Samish", "VesselHandicapAccessible": true, "VesselPositionNum": 3, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-16T04:15:00.000Z", "ArrivingTime": "2025-11-16T05:45:00.000Z", "LoadingRule": 3, "VesselID": 38, "VesselName": "Yakima", "VesselHandicapAccessible": true, "VesselPositionNum": 2, "Routes": [ 9 ], "AnnotationIndexes": [] } ], "AnnotationsIVR": [] }, { "DepartingTerminalID": 13, "DepartingTerminalName": "Lopez Island", "ArrivingTerminalID": 18, "ArrivingTerminalName": "Shaw Island", "SailingNotes": "", "Annotations": [ "This interisland trip travels in a 'T' pattern: FH-Lopez-Shaw-Orcas, then Orcas-Shaw-Lopez-FH." ], "Times": [ { "DepartingTime": "2025-11-15T14:50:00.000Z", "ArrivingTime": "2025-11-15T15:20:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T23:20:00.000Z", "ArrivingTime": "2025-11-15T23:45:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [ 0 ] }, { "DepartingTime": "2025-11-16T03:45:00.000Z", "ArrivingTime": "2025-11-16T04:10:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [] } ], "AnnotationsIVR": [ "This interisland trip travels in a 'T' pattern: FH-Lopez-Shaw-Orcas, then Orcas-Shaw-Lopez-FH." ] }, { "DepartingTerminalID": 13, "DepartingTerminalName": "Lopez Island", "ArrivingTerminalID": 15, "ArrivingTerminalName": "Orcas Island", "SailingNotes": "", "Annotations": [ "This interisland trip travels in a 'T' pattern: FH-Lopez-Shaw-Orcas, then Orcas-Shaw-Lopez-FH." ], "Times": [ { "DepartingTime": "2025-11-15T14:50:00.000Z", "ArrivingTime": "2025-11-15T15:40:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T19:00:00.000Z", "ArrivingTime": "2025-11-15T19:20:00.000Z", "LoadingRule": 3, "VesselID": 69, "VesselName": "Samish", "VesselHandicapAccessible": true, "VesselPositionNum": 3, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T23:20:00.000Z", "ArrivingTime": "2025-11-15T23:55:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [ 0 ] }, { "DepartingTime": "2025-11-16T03:45:00.000Z", "ArrivingTime": "2025-11-16T04:30:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [] } ], "AnnotationsIVR": [ "This interisland trip travels in a 'T' pattern: FH-Lopez-Shaw-Orcas, then Orcas-Shaw-Lopez-FH." ] }, { "DepartingTerminalID": 13, "DepartingTerminalName": "Lopez Island", "ArrivingTerminalID": 10, "ArrivingTerminalName": "Friday Harbor", "SailingNotes": "", "Annotations": [ "This interisland trip travels in a 'T' pattern: FH-Lopez-Shaw-Orcas, then Orcas-Shaw-Lopez-FH.", "No interisland vehicles. Foot passenger and bikes okay." ], "Times": [ { "DepartingTime": "2025-11-15T14:50:00.000Z", "ArrivingTime": "2025-11-15T16:30:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T15:10:00.000Z", "ArrivingTime": "2025-11-15T15:45:00.000Z", "LoadingRule": 3, "VesselID": 69, "VesselName": "Samish", "VesselHandicapAccessible": true, "VesselPositionNum": 3, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T18:30:00.000Z", "ArrivingTime": "2025-11-15T19:10:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T21:35:00.000Z", "ArrivingTime": "2025-11-15T22:15:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-16T00:50:00.000Z", "ArrivingTime": "2025-11-16T01:30:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [ 0 ] }, { "DepartingTime": "2025-11-16T01:15:00.000Z", "ArrivingTime": "2025-11-16T01:50:00.000Z", "LoadingRule": 1, "VesselID": 38, "VesselName": "Yakima", "VesselHandicapAccessible": true, "VesselPositionNum": 2, "Routes": [ 9 ], "AnnotationIndexes": [ 1 ] }, { "DepartingTime": "2025-11-16T02:30:00.000Z", "ArrivingTime": "2025-11-16T03:05:00.000Z", "LoadingRule": 3, "VesselID": 69, "VesselName": "Samish", "VesselHandicapAccessible": true, "VesselPositionNum": 3, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-16T03:45:00.000Z", "ArrivingTime": "2025-11-16T05:20:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-16T05:10:00.000Z", "ArrivingTime": "2025-11-16T05:45:00.000Z", "LoadingRule": 3, "VesselID": 38, "VesselName": "Yakima", "VesselHandicapAccessible": true, "VesselPositionNum": 2, "Routes": [ 9 ], "AnnotationIndexes": [] } ], "AnnotationsIVR": [ "This interisland trip travels in a 'T' pattern: FH-Lopez-Shaw-Orcas, then Orcas-Shaw-Lopez-FH.", "No interisland vehicles. Foot passengers and bikes okay." ] }, { "DepartingTerminalID": 18, "DepartingTerminalName": "Shaw Island", "ArrivingTerminalID": 15, "ArrivingTerminalName": "Orcas Island", "SailingNotes": "", "Annotations": [ "This interisland trip travels in a 'T' pattern: FH-Lopez-Shaw-Orcas, then Orcas-Shaw-Lopez-FH." ], "Times": [ { "DepartingTime": "2025-11-15T15:20:00.000Z", "ArrivingTime": "2025-11-15T15:40:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T20:55:00.000Z", "ArrivingTime": "2025-11-15T21:05:00.000Z", "LoadingRule": 3, "VesselID": 2, "VesselName": "Chelan", "VesselHandicapAccessible": true, "VesselPositionNum": 1, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T23:45:00.000Z", "ArrivingTime": "2025-11-15T23:55:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [ 0 ] }, { "DepartingTime": "2025-11-16T03:05:00.000Z", "ArrivingTime": "2025-11-16T03:15:00.000Z", "LoadingRule": 3, "VesselID": 2, "VesselName": "Chelan", "VesselHandicapAccessible": true, "VesselPositionNum": 1, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-16T04:10:00.000Z", "ArrivingTime": "2025-11-16T04:30:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-16T05:35:00.000Z", "ArrivingTime": "2025-11-16T05:45:00.000Z", "LoadingRule": 3, "VesselID": 2, "VesselName": "Chelan", "VesselHandicapAccessible": true, "VesselPositionNum": 1, "Routes": [ 9 ], "AnnotationIndexes": [] } ], "AnnotationsIVR": [ "This interisland trip travels in a 'T' pattern: FH-Lopez-Shaw-Orcas, then Orcas-Shaw-Lopez-FH." ] }, { "DepartingTerminalID": 18, "DepartingTerminalName": "Shaw Island", "ArrivingTerminalID": 10, "ArrivingTerminalName": "Friday Harbor", "SailingNotes": "", "Annotations": [ "Loads or unloads westbound traffic on eastbound sailing.", "This interisland trip travels in a 'T' pattern: FH-Lopez-Shaw-Orcas, then Orcas-Shaw-Lopez-FH." ], "Times": [ { "DepartingTime": "2025-11-15T15:20:00.000Z", "ArrivingTime": "2025-11-15T16:30:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T18:00:00.000Z", "ArrivingTime": "2025-11-15T19:10:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [ 0 ] }, { "DepartingTime": "2025-11-15T21:05:00.000Z", "ArrivingTime": "2025-11-15T22:15:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [ 0 ] }, { "DepartingTime": "2025-11-16T00:20:00.000Z", "ArrivingTime": "2025-11-16T01:30:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [ 0, 1 ] }, { "DepartingTime": "2025-11-16T04:10:00.000Z", "ArrivingTime": "2025-11-16T05:20:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [] } ], "AnnotationsIVR": [ "Loads or unloads westbound traffic on eastbound sailing.", "This interisland trip travels in a 'T' pattern: FH-Lopez-Shaw-Orcas, then Orcas-Shaw-Lopez-FH." ] }, { "DepartingTerminalID": 15, "DepartingTerminalName": "Orcas Island", "ArrivingTerminalID": 10, "ArrivingTerminalName": "Friday Harbor", "SailingNotes": "", "Annotations": [ "Loads or unloads westbound traffic on eastbound sailing.", "This interisland trip travels in a 'T' pattern: FH-Lopez-Shaw-Orcas, then Orcas-Shaw-Lopez-FH." ], "Times": [ { "DepartingTime": "2025-11-15T15:40:00.000Z", "ArrivingTime": "2025-11-15T16:30:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T17:45:00.000Z", "ArrivingTime": "2025-11-15T19:10:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [ 0 ] }, { "DepartingTime": "2025-11-15T20:50:00.000Z", "ArrivingTime": "2025-11-15T22:15:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [ 0 ] }, { "DepartingTime": "2025-11-16T00:05:00.000Z", "ArrivingTime": "2025-11-16T01:30:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [ 0, 1 ] }, { "DepartingTime": "2025-11-16T04:30:00.000Z", "ArrivingTime": "2025-11-16T05:20:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [] } ], "AnnotationsIVR": [ "Loads or unloads westbound traffic on eastbound sailing.", "This interisland trip travels in a 'T' pattern: FH-Lopez-Shaw-Orcas, then Orcas-Shaw-Lopez-FH." ] }, { "DepartingTerminalID": 10, "DepartingTerminalName": "Friday Harbor", "ArrivingTerminalID": 15, "ArrivingTerminalName": "Orcas Island", "SailingNotes": "", "Annotations": [ "The vessel will load, move briefly to the tie-up slip for a crew change, then sail to Orcas.", "This interisland trip travels in a 'T' pattern: FH-Lopez-Shaw-Orcas, then Orcas-Shaw-Lopez-FH." ], "Times": [ { "DepartingTime": "2025-11-15T14:05:00.000Z", "ArrivingTime": "2025-11-15T15:40:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T16:45:00.000Z", "ArrivingTime": "2025-11-15T17:45:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T19:30:00.000Z", "ArrivingTime": "2025-11-15T20:50:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [ 0 ] }, { "DepartingTime": "2025-11-15T22:30:00.000Z", "ArrivingTime": "2025-11-15T23:55:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [ 1 ] }, { "DepartingTime": "2025-11-16T01:40:00.000Z", "ArrivingTime": "2025-11-16T03:00:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [ 0 ] } ], "AnnotationsIVR": [ "The vessel will load, move briefly to the tie-up slip for a crew change, then sail to Orcas.", "This interisland trip travels in a 'T' pattern: FH-Lopez-Shaw-Orcas, then Orcas-Shaw-Lopez-FH." ] }, { "DepartingTerminalID": 10, "DepartingTerminalName": "Friday Harbor", "ArrivingTerminalID": 18, "ArrivingTerminalName": "Shaw Island", "SailingNotes": "", "Annotations": [ "The vessel will load, move briefly to the tie-up slip for a crew change, then sail to Orcas.", "This interisland trip travels in a 'T' pattern: FH-Lopez-Shaw-Orcas, then Orcas-Shaw-Lopez-FH." ], "Times": [ { "DepartingTime": "2025-11-15T14:05:00.000Z", "ArrivingTime": "2025-11-15T15:20:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T16:45:00.000Z", "ArrivingTime": "2025-11-15T18:00:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T19:30:00.000Z", "ArrivingTime": "2025-11-15T21:05:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [ 0 ] }, { "DepartingTime": "2025-11-15T22:30:00.000Z", "ArrivingTime": "2025-11-15T23:45:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [ 1 ] }, { "DepartingTime": "2025-11-16T01:40:00.000Z", "ArrivingTime": "2025-11-16T03:15:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [ 0 ] } ], "AnnotationsIVR": [ "The vessel will load, move briefly to the tie-up slip for a crew change, then sail to Orcas.", "This interisland trip travels in a 'T' pattern: FH-Lopez-Shaw-Orcas, then Orcas-Shaw-Lopez-FH." ] }, { "DepartingTerminalID": 10, "DepartingTerminalName": "Friday Harbor", "ArrivingTerminalID": 13, "ArrivingTerminalName": "Lopez Island", "SailingNotes": "", "Annotations": [ "No interisland vehicles. Foot passenger and bikes okay.", "The vessel will load, move briefly to the tie-up slip for a crew change, then sail to Orcas.", "This interisland trip travels in a 'T' pattern: FH-Lopez-Shaw-Orcas, then Orcas-Shaw-Lopez-FH." ], "Times": [ { "DepartingTime": "2025-11-15T13:40:00.000Z", "ArrivingTime": "2025-11-15T14:25:00.000Z", "LoadingRule": 1, "VesselID": 38, "VesselName": "Yakima", "VesselHandicapAccessible": true, "VesselPositionNum": 2, "Routes": [ 9 ], "AnnotationIndexes": [ 0 ] }, { "DepartingTime": "2025-11-15T14:05:00.000Z", "ArrivingTime": "2025-11-15T14:45:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T16:10:00.000Z", "ArrivingTime": "2025-11-15T16:55:00.000Z", "LoadingRule": 3, "VesselID": 69, "VesselName": "Samish", "VesselHandicapAccessible": true, "VesselPositionNum": 3, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T16:45:00.000Z", "ArrivingTime": "2025-11-15T18:20:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T19:30:00.000Z", "ArrivingTime": "2025-11-15T21:25:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [ 1 ] }, { "DepartingTime": "2025-11-15T22:30:00.000Z", "ArrivingTime": "2025-11-15T23:10:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [ 2 ] }, { "DepartingTime": "2025-11-15T23:35:00.000Z", "ArrivingTime": "2025-11-16T00:20:00.000Z", "LoadingRule": 3, "VesselID": 69, "VesselName": "Samish", "VesselHandicapAccessible": true, "VesselPositionNum": 3, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-16T01:40:00.000Z", "ArrivingTime": "2025-11-16T03:35:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [ 1 ] }, { "DepartingTime": "2025-11-16T02:20:00.000Z", "ArrivingTime": "2025-11-16T03:05:00.000Z", "LoadingRule": 3, "VesselID": 38, "VesselName": "Yakima", "VesselHandicapAccessible": true, "VesselPositionNum": 2, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-16T03:35:00.000Z", "ArrivingTime": "2025-11-16T04:20:00.000Z", "LoadingRule": 3, "VesselID": 69, "VesselName": "Samish", "VesselHandicapAccessible": true, "VesselPositionNum": 3, "Routes": [ 9 ], "AnnotationIndexes": [] } ], "AnnotationsIVR": [ "No interisland vehicles. Foot passengers and bikes okay.", "The vessel will load, move briefly to the tie-up slip for a crew change, then sail to Orcas.", "This interisland trip travels in a 'T' pattern: FH-Lopez-Shaw-Orcas, then Orcas-Shaw-Lopez-FH." ] }, { "DepartingTerminalID": 10, "DepartingTerminalName": "Friday Harbor", "ArrivingTerminalID": 1, "ArrivingTerminalName": "Anacortes", "SailingNotes": "", "Annotations": [ "No interisland vehicles. Foot passenger and bikes okay." ], "Times": [ { "DepartingTime": "2025-11-15T13:40:00.000Z", "ArrivingTime": "2025-11-15T15:10:00.000Z", "LoadingRule": 3, "VesselID": 38, "VesselName": "Yakima", "VesselHandicapAccessible": true, "VesselPositionNum": 2, "Routes": [ 9 ], "AnnotationIndexes": [ 0 ] }, { "DepartingTime": "2025-11-15T16:10:00.000Z", "ArrivingTime": "2025-11-15T17:40:00.000Z", "LoadingRule": 3, "VesselID": 69, "VesselName": "Samish", "VesselHandicapAccessible": true, "VesselPositionNum": 3, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T18:20:00.000Z", "ArrivingTime": "2025-11-15T19:30:00.000Z", "LoadingRule": 3, "VesselID": 2, "VesselName": "Chelan", "VesselHandicapAccessible": true, "VesselPositionNum": 1, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T20:25:00.000Z", "ArrivingTime": "2025-11-15T21:35:00.000Z", "LoadingRule": 3, "VesselID": 38, "VesselName": "Yakima", "VesselHandicapAccessible": true, "VesselPositionNum": 2, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T23:35:00.000Z", "ArrivingTime": "2025-11-16T01:05:00.000Z", "LoadingRule": 3, "VesselID": 69, "VesselName": "Samish", "VesselHandicapAccessible": true, "VesselPositionNum": 3, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-16T02:20:00.000Z", "ArrivingTime": "2025-11-16T03:50:00.000Z", "LoadingRule": 3, "VesselID": 38, "VesselName": "Yakima", "VesselHandicapAccessible": true, "VesselPositionNum": 2, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-16T03:35:00.000Z", "ArrivingTime": "2025-11-16T05:05:00.000Z", "LoadingRule": 3, "VesselID": 69, "VesselName": "Samish", "VesselHandicapAccessible": true, "VesselPositionNum": 3, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-16T06:05:00.000Z", "ArrivingTime": "2025-11-16T07:15:00.000Z", "LoadingRule": 3, "VesselID": 38, "VesselName": "Yakima", "VesselHandicapAccessible": true, "VesselPositionNum": 2, "Routes": [ 9 ], "AnnotationIndexes": [] } ], "AnnotationsIVR": [ "No interisland vehicles. Foot passengers and bikes okay." ] }, { "DepartingTerminalID": 15, "DepartingTerminalName": "Orcas Island", "ArrivingTerminalID": 18, "ArrivingTerminalName": "Shaw Island", "SailingNotes": "", "Annotations": [ "No interisland vehicles. Foot passenger and bikes okay.", "This interisland trip travels in a 'T' pattern: FH-Lopez-Shaw-Orcas, then Orcas-Shaw-Lopez-FH." ], "Times": [ { "DepartingTime": "2025-11-15T14:50:00.000Z", "ArrivingTime": "2025-11-15T15:05:00.000Z", "LoadingRule": 3, "VesselID": 2, "VesselName": "Chelan", "VesselHandicapAccessible": true, "VesselPositionNum": 1, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T16:55:00.000Z", "ArrivingTime": "2025-11-15T17:10:00.000Z", "LoadingRule": 1, "VesselID": 38, "VesselName": "Yakima", "VesselHandicapAccessible": true, "VesselPositionNum": 2, "Routes": [ 9 ], "AnnotationIndexes": [ 0 ] }, { "DepartingTime": "2025-11-15T17:45:00.000Z", "ArrivingTime": "2025-11-15T18:00:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T20:50:00.000Z", "ArrivingTime": "2025-11-15T21:05:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-16T00:05:00.000Z", "ArrivingTime": "2025-11-16T00:20:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [ 1 ] }, { "DepartingTime": "2025-11-16T00:35:00.000Z", "ArrivingTime": "2025-11-16T00:50:00.000Z", "LoadingRule": 1, "VesselID": 2, "VesselName": "Chelan", "VesselHandicapAccessible": true, "VesselPositionNum": 1, "Routes": [ 9 ], "AnnotationIndexes": [ 0 ] }, { "DepartingTime": "2025-11-16T03:00:00.000Z", "ArrivingTime": "2025-11-16T03:15:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [] } ], "AnnotationsIVR": [ "No interisland vehicles. Foot passengers and bikes okay.", "This interisland trip travels in a 'T' pattern: FH-Lopez-Shaw-Orcas, then Orcas-Shaw-Lopez-FH." ] }, { "DepartingTerminalID": 15, "DepartingTerminalName": "Orcas Island", "ArrivingTerminalID": 13, "ArrivingTerminalName": "Lopez Island", "SailingNotes": "", "Annotations": [ "No interisland vehicles. Foot passenger and bikes okay.", "This interisland trip travels in a 'T' pattern: FH-Lopez-Shaw-Orcas, then Orcas-Shaw-Lopez-FH." ], "Times": [ { "DepartingTime": "2025-11-15T14:50:00.000Z", "ArrivingTime": "2025-11-15T15:35:00.000Z", "LoadingRule": 3, "VesselID": 2, "VesselName": "Chelan", "VesselHandicapAccessible": true, "VesselPositionNum": 1, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T17:45:00.000Z", "ArrivingTime": "2025-11-15T18:20:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T19:50:00.000Z", "ArrivingTime": "2025-11-15T20:20:00.000Z", "LoadingRule": 1, "VesselID": 69, "VesselName": "Samish", "VesselHandicapAccessible": true, "VesselPositionNum": 3, "Routes": [ 9 ], "AnnotationIndexes": [ 0 ] }, { "DepartingTime": "2025-11-15T20:50:00.000Z", "ArrivingTime": "2025-11-15T21:25:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T21:30:00.000Z", "ArrivingTime": "2025-11-15T22:00:00.000Z", "LoadingRule": 3, "VesselID": 2, "VesselName": "Chelan", "VesselHandicapAccessible": true, "VesselPositionNum": 1, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-16T00:05:00.000Z", "ArrivingTime": "2025-11-16T00:40:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [ 1 ] }, { "DepartingTime": "2025-11-16T03:00:00.000Z", "ArrivingTime": "2025-11-16T03:35:00.000Z", "LoadingRule": 3, "VesselID": 66, "VesselName": "Salish", "VesselHandicapAccessible": true, "VesselPositionNum": 4, "Routes": [ 9 ], "AnnotationIndexes": [] } ], "AnnotationsIVR": [ "No interisland vehicles. Foot passengers and bikes okay.", "This interisland trip travels in a 'T' pattern: FH-Lopez-Shaw-Orcas, then Orcas-Shaw-Lopez-FH." ] }, { "DepartingTerminalID": 15, "DepartingTerminalName": "Orcas Island", "ArrivingTerminalID": 1, "ArrivingTerminalName": "Anacortes", "SailingNotes": "", "Annotations": [ "No interisland vehicles. Foot passenger and bikes okay." ], "Times": [ { "DepartingTime": "2025-11-15T14:50:00.000Z", "ArrivingTime": "2025-11-15T16:20:00.000Z", "LoadingRule": 3, "VesselID": 2, "VesselName": "Chelan", "VesselHandicapAccessible": true, "VesselPositionNum": 1, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-15T16:55:00.000Z", "ArrivingTime": "2025-11-15T18:05:00.000Z", "LoadingRule": 3, "VesselID": 38, "VesselName": "Yakima", "VesselHandicapAccessible": true, "VesselPositionNum": 2, "Routes": [ 9 ], "AnnotationIndexes": [ 0 ] }, { "DepartingTime": "2025-11-15T19:50:00.000Z", "ArrivingTime": "2025-11-15T21:05:00.000Z", "LoadingRule": 3, "VesselID": 69, "VesselName": "Samish", "VesselHandicapAccessible": true, "VesselPositionNum": 3, "Routes": [ 9 ], "AnnotationIndexes": [ 0 ] }, { "DepartingTime": "2025-11-15T21:30:00.000Z", "ArrivingTime": "2025-11-15T22:45:00.000Z", "LoadingRule": 3, "VesselID": 2, "VesselName": "Chelan", "VesselHandicapAccessible": true, "VesselPositionNum": 1, "Routes": [ 9 ], "AnnotationIndexes": [] }, { "DepartingTime": "2025-11-16T00:35:00.000Z", "ArrivingTime": "2025-11-16T01:45:00.000Z", "LoadingRule": 3, "VesselID": 2, "VesselName": "Chelan", "VesselHandicapAccessible": true, "VesselPositionNum": 1, "Routes": [ 9 ], "AnnotationIndexes": [ 0 ] }, { "DepartingTime": "2025-11-16T03:30:00.000Z"