Spec → AvailabilitySlot
What is AvailabilitySlot? A bookable window. Slots are server-authoritative: agents propose, the booking endpoint confirms.
Slots are windows, not appointments — am, pm and all_day types reflect how trades genuinely schedule. The rule that matters: agents never assert availability. They read slots, propose one by id, and the server confirms, holds with an expiry, or declines. This single rule prevents the double-booking chaos that would poison provider trust in the whole network.
Fields
| Field | Type | Notes |
|---|---|---|
slot_id | string | REQUIRED |
provider_id | string | REQUIRED |
service_code | string | REQUIRED |
window_start | string | REQUIRED |
window_end | string | REQUIRED |
window_type | string · enum | REQUIRED Values: exact, am, pm, all_day |
postcode_districts | array<string> | |
hold_expires_at | string | Present only on a held slot returned to an agent mid-booking. |
Example
{
"slot_id": "slt_demo000001",
"provider_id": "prv_fda0939423",
"service_code": "cp12_gas_safety",
"window_start": "2026-08-03T09:00:00+01:00",
"window_end": "2026-08-03T13:00:00+01:00",
"window_type": "am",
"postcode_districts": [
"LS6",
"LS7"
]
}
Schema: availability-slot.schema.json (JSON Schema 2020-12, MIT).