KKestrel Docs

Reference

API reference

Base URL: https://api.kestrel.example/v1. All bodies are JSON.

List availability

GET /availability

ParameterTypeDescription
calendarstringCalendar ID. Required.
fromdateFirst day, ISO 8601.
daysintegerNumber of days, max 31.
{
  "data": [
    { "start": "2026-12-01T09:00:00Z", "end": "2026-12-01T09:30:00Z" },
    { "start": "2026-12-01T10:00:00Z", "end": "2026-12-01T10:30:00Z" }
  ],
  "has_more": false
}

Create a booking

POST /bookings

curl -X POST https://api.kestrel.example/v1/bookings \
  -H "Authorization: Bearer $KESTREL_KEY" \
  -H "Content-Type: application/json" \
  -d '{"calendar":"cal_123","start":"2026-12-01T09:00:00Z","email":"ada@example.com"}'

Cancel a booking

DELETE /bookings/{id}

Returns 204 No Content. Cancelling twice is safe and also returns 204.

Errors

Errors use standard HTTP status codes and a JSON body with a machine-readable code.

{ "error": { "code": "slot_taken", "message": "That slot is no longer available." } }

Was this page helpful?