Integrations
Public API
Programmatic access to your event types, availability, and bookings. JSON over HTTPS, authenticated with a personal access token.
Authentication
Create a token from your settings page. You'll see the raw pat_… value exactly once — store it somewhere safe. Each request must carry it in the Authorization header:
curl -H "Authorization: Bearer pat_…" \
http://localhost:3000/api/v2/meEndpoints
- GET/api/v2/mescope: read:profile
Your basic profile.
- GET/api/v2/event-typesscope: read:event-types
Your event types.
- GET/api/v2/availability?eventTypeId=…&from=…&to=…&duration=…&tz=…scope: read:availability
Bookable slots for an event type. Window must be ≤ 31 days.
- GET/api/v2/bookings?status=active&from=…&to=…&limit=50&cursor=…scope: read:bookings
Your bookings, newest first. Pass nextCursor back as the cursor for paging.
- POST/api/v2/bookingsscope: write:bookings
Create a booking on one of your event types. Same body shape as the public /api/bookings endpoint.
- DELETE/api/v2/bookings/{id}?reason=…scope: write:bookings
Cancel a booking you own. Idempotent.
Errors
Every error is JSON with at least a title and message:
{
"title": "Unauthorized",
"message": "Invalid or unknown access token."
}401— missing or bad token, or the token was revoked403— the token doesn't carry the required scope404— the resource doesn't exist or you don't own it429— token over 600 req/min
Need a scope we don't have yet? hello@caledee.com.