Shipwell is rolling out a multi-day planning and appointment window for shipments. Previously the planning and appointment window for shipments had two limitations: 1) they were both tracked in the same data fields so that the planned date / times and the appointment date / times needed to be the same data elements unless a customers had dock scheduling add-on; and 2) they could only span the duration of a single calendar day. Note customers with the Dock Scheduling add on have a separate existing appointment window that still remains in place and not covered by this update.
Supporting multi-day planning and appointment windows provides additional flexibility when customers have more flexible planning and/or appointment dates. Further, having the ability to have separate planning date / times from appointment date / times allows for better configuration.
The process of this rolling out multi-day planning and appointment shipment windows to Shipwell customers will be done over the next two to three weeks. Post rolling out this multi-day planning window to customers we will be updating aspects of EDI, reporting, and other areas to support this enhanced multi-day planning and appointment window functionality.
API Connected Customer Awareness:
Currently the existing planned date/time data fields (legacy planning date/time) of a shipment are:
stops.planned_date
stops.planned_time_window_start
stops.planned_time_window_end
Now there is a new ‘planning_window’ object and a new ‘appointment_window’ object on shipments as follows:
stops.planning_window.start: string <date-time>
stops.planning_window.end: string <date-time>
stops.appointment_window.start: string <date-time>
stops.appointment_window.end: string <date-time>
As part of this effort to create these new ‘stops.planning_window’ object was to be backward compatible with the existing planned date/time data fields. We do this by converting data from the ‘stops.planning_window’ object into the existing planned date/time fields. We plan to keep doing this and maintaining these existing planned date/time data fields for at least 18 months, but we are deprecating and treating as legacy these old fields and any new implementations or upgrades should leverage the new ‘stops.planning_window’ object.
The conversion between the new ‘stops.planning_window’ object to the legacy planning date/time data is as follows:
If a stop is the first stop it will use the stops.planning_window.start’s date to populate the legacy ‘stops.planned_date' field.
If a stop is second stop or later it will use the stops.planning_window.end’s date to populate the legacy ‘stops.planned_date' field.
Similarly for times it will use the time from those same data fields to calculate the legacy ‘stops.planned_time_window_start’ and ‘stops.planned_time_window_end’ data fields.
See the following single day and multi day scenarios and how the conversion between the prior ‘stops.planned…’ data fields are populated based on the new ‘stops.planning_window’ fields.
Scenario New ‘.stops.’ Field Leveraged | New ‘.stops.’ Field Leveraged | Converted into Prior ‘stops.planned…’ Fields |
First Stop (Single-Day) Start 2026-01-08T08:00
End 2026-01-08T18:00 |
‘planning_window.start’: 2026-01-08T08:00 ‘planning_window.end’: 2026-01-08T18:00 |
‘planned_date’: 2026-01-08 ‘planned_time_window_start’: 08:00 ‘planned_time_window_end’: 18:00 |
First Stop (Multi-Day) Start 2026-01-08T08:00
End 2026-01-10T18:00 |
‘planning_window.start’: 2026-01-08T08:00 ‘planning_window.end’: 2026-01-10T18:00 |
‘planned_date’: 2026-01-08 ‘planned_time_window_start’: 08:00 ‘planned_time_window_end’: 23:59 |
Second Stop+ (Single-Day) Start 2026-01-12T08:00
End 2026-01-12T18:00 |
‘planning_window.start’: 2026-01-12T08:00 ‘planning_window.end’: 2026-01-12T18:00 | ‘planned_date’: 2026-01-12 ‘planned_time_window_start’: 08:00 ‘planned_time_window_end’: 18:00 |
Second Stop+ (Multi-Day) Start 2026-01-12T08:00
End 2026-01-15T18:00 |
‘planning_window.start’: 2026-01-12T08:00 ‘planning_window.end’: 2026-01-15T18:00 | ‘planned_date’: 2026-01-15 ‘planned_time_window_start’: 08:00 ‘planned_time_window_end’: 18:00 |
