Scheduling
Three modes, and how Univooz calculates the times.
schedule is necessary. There is no default mode.
The earliest possible times. Univooz calculates both.
{ "mode": "asap" }Rules for all modes
| Rule | Result if you break it |
|---|---|
| Times must be ISO-8601 with an offset | 400 invalid_request |
| Send fields of your mode only | 400, with param as schedule.mode |
schedule is necessary | 400. Univooz never uses asap as a default. |
The times you get
The response gives the agreed times in schedule.resolved, for all modes:
"schedule": {
"mode": "deliver_by",
"resolved": {
"pickupTime": "2026-07-29T15:15:00.000Z",
"deliveryTime": "2026-07-29T15:30:00.000Z",
"basis": "busy_hours"
}
}basis | Meaning |
|---|---|
busy_hours | Calculated in a busy period |
quiet_hours | Calculated at another time |
shift_start | Univooz moved the pickup to the next shift |
caller_supplied | exact — your times |
Univooz records mode and basis at creation and does not calculate them again. If the
fleet changes its zone later, the order keeps its original values.
How Univooz calculates a time
Univooz uses the distance from the branch to the door, and the period of the day. You do not need the exact values, because every response gives the agreed times.
| Setting | Default | Notes |
|---|---|---|
| Busy periods | 10:00–13:00, 17:00–20:00 | On the fleet's clock, not yours |
| Minimum notice, busy period | 20 minutes | Applies to exact also |
| Minimum notice, other times | 15 minutes | Applies to exact also |
A fleet can set different values for each zone. Times are estimates, not a guarantee of capacity.
Shifts
Univooz compares the pickup time with the shifts the fleet has planned in the zone.
| Mode | Behaviour |
|---|---|
asap | Univooz moves the pickup to the next shift, up to 240 minutes, and sets basis to shift_start. After that: no_shift_coverage. |
deliver_by | The pickup cannot move, so Univooz gives no_shift_coverage. |
exact | Univooz does not check shifts. |
Drivers. Inside 240 minutes, a shift must also have a driver. Outside 240 minutes, a planned shift is enough. So an order for next week is not rejected because the fleet did not select its drivers yet.
Change a schedule
A PATCH uses the same rules. asap and deliver_by calculate new times against the
original zone. exact uses your times.