CORE OBJECTv0.1-draft

AvailabilitySlot

A bookable window. Server-authoritative, always.

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

FieldTypeNotes
slot_idstringREQUIRED
provider_idstringREQUIRED
service_codestringREQUIRED
window_startstringREQUIRED
window_endstringREQUIRED
window_typestring · enumREQUIRED Values: exact, am, pm, all_day
postcode_districtsarray<string>
hold_expires_atstringPresent 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).