Booking pages
List open slots
Returns the slots a guest can book on one day, in start order. The date is a calendar day in the host's timezone (userProfile.timezone on the booking page), so a slot can fall on the previous or next day for a guest elsewhere: convert each start to the guest's timezone before you group or label it. A slot is offered when it sits inside the host's weekly availability and doesn't overlap a booking or a synced calendar event. Slots that have already started, and days beyond the page's max_days_ahead, are left out. Scope: booking_pages:slots. Keys: secret and publishable.
/booking-pages/{slug}/slotslistSlotsAuthorizations
bearerAuthhttp (bearer)Authorization: Bearer clndr_sk_… (secret) or clndr_pk_… (publishable).
apiKeyHeaderapiKeyThe same key in a custom header, for clients that can't set Authorization.
Server
https://www.clndr.pro/api/v1Production
Path Parameters
The booking page's slug.
Example: intro-call
Query Parameters
The day, as YYYY-MM-DD, in the host's timezone. A full ISO 8601 timestamp also works and means the host's day that contains that instant.
Example: 2026-10-15
Responses
200Open slots for the day. Empty when the host has no availability that day.application/json
400date is missing or not a date.application/json
What went wrong, in plain English.
401The key is missing, unknown, revoked or expired.application/json
What went wrong, in plain English.
403The key doesn't have the scope this endpoint needs.application/json
What went wrong, in plain English.
404No active booking page with this slug on the key's account.application/json
What went wrong, in plain English.
429Too many requests from this key in the current 60-second window.application/json
What went wrong, in plain English.
500Something failed on our side. Retry with exponential backoff.application/json
What went wrong, in plain English.
curl 'https://www.clndr.pro/api/v1/booking-pages/intro-call/slots?date=2026-10-15' \
--header 'Authorization: Bearer <token>'fetch('https://www.clndr.pro/api/v1/booking-pages/intro-call/slots?date=2026-10-15', {
headers: {
Authorization: 'Bearer <token>'
}
})requests.get(
"https://www.clndr.pro/api/v1/booking-pages/intro-call/slots",
headers={
"Authorization": "Bearer <token>"
},
params={
"date": "2026-10-15"
}
)fetch('https://www.clndr.pro/api/v1/booking-pages/intro-call/slots?date=2026-10-15', {
headers: {
Authorization: 'Bearer <token>'
}
}){
"data": [
{
"start": "2026-10-15T08:00:00.000Z",
"end": "2026-10-15T08:30:00.000Z"
},
{
"start": "2026-10-15T08:40:00.000Z",
"end": "2026-10-15T09:10:00.000Z"
},
{
"start": "2026-10-15T09:20:00.000Z",
"end": "2026-10-15T09:50:00.000Z"
}
]
}{
"error": "Missing required `date` query param (YYYY-MM-DD)"
}{
"error": "Missing API key. Send `Authorization: Bearer <key>` or `x-clndr-key` header."
}{
"error": "API key is missing required scope(s): bookings:read"
}{
"error": "Booking page not found"
}{
"error": "Rate limit exceeded. This publishable key allows 120 requests per 60s window."
}{
"error": "Failed to fetch bookings"
}