Bookings API
Hours and date overrides
Hours are wall-clock rules in the host's timezone: "Mondays 09:00 to 17:00" means 09:00 on the host's clock every Monday, across daylight-saving changes. Reads need read:bookings; changes need write:bookings.
Read
GET /api/v1/booking-types/cmq8type0alk34567890/hours HTTP/1.1{
"availability": {
"bookingTypeId": "cmq8type0alk34567890",
"hostUserId": "cmq1user0alk34567890",
"timezone": "America/New_York",
"hours": [
{ "weekday": 1, "start": "09:00", "end": "12:00" },
{ "weekday": 1, "start": "13:00", "end": "17:00" }
],
"dateOverrides": [
{ "date": "2026-12-24", "windows": [{ "start": "09:00", "end": "12:00" }] },
{ "date": "2026-12-25", "windows": [] }
]
}
}timezone is the host's. To change it, see Hosts.
Replace weekly hours
PUT /api/v1/booking-types/cmq8type0alk34567890/hours HTTP/1.1
Content-Type: application/json
{ "hours": [{ "weekday": 2, "start": "10:00", "end": "16:00" }] }Send hours, dateOverrides, or both. Each replaces the whole list. Returns the same shape as the read.
Change one date
PUT /api/v1/booking-types/cmq8type0alk34567890/date-overrides/2026-12-24 HTTP/1.1
Content-Type: application/json
{ "windows": [{ "start": "09:00", "end": "12:00" }] }Sets that date's hours and leaves every other date alone. { "windows": [] } closes the day.
DELETE /api/v1/booking-types/cmq8type0alk34567890/date-overrides/2026-12-24 HTTP/1.1Removes the override, so the weekly hours apply to that date again.
Validation
| Error | Cause |
|---|---|
Two availability windows on the same day overlap. | Weekly windows collide |
Two windows on the same date overlap. | Override windows collide |
An availability window has to end after it starts. | end is not after start |
This meeting is longer than every available window. | No weekly window is long enough for the meeting |
The date has to look like 2026-12-25. | Bad date in the path |