API
List and read booking pages
Every booking page of the person, oldest first, or one page by its id.
GET/booking-pages
Runs any of 2 calls on your workspace.
GET /booking-pages
Every booking page of the person, oldest first, or one page by its id.
Example
Needs calendar:read. The list is not paged, because a person holds at most 25 pages.
curl "$OE/booking-pages?q=intro&sort=name" -H "$AUTH"curl "$OE/booking-pages/bkp_5c1e9a7b3d2f48e6a0b4c7d1" -H "$AUTH"{ "object": "list", "data": [{ "object": "booking_page", "id": "bkp_5c1e9a7b3d2f48e6a0b4c7d1", "slug": "intro-call", "name": "Intro call", "status": "active", "url": "https://openemail.uk/book/intro-call", "problem": null, "config": { "description": "A first chat about your project.", "hostName": "Hana Sato", "durations": [30], "location": { "kind": "video", "value": "https://meet.example.com/hana" }, "availability": { "timezone": "Europe/Berlin", "weekly": [ [], [{ "start": 540, "end": 1020 }], [{ "start": 540, "end": 1020 }], [{ "start": 540, "end": 1020 }], [{ "start": 540, "end": 1020 }], [{ "start": 540, "end": 1020 }], [] ], "overrides": [{ "date": "2026-12-24", "ranges": [] }] }, "rules": { "noticeMinutes": 240, "horizonDays": 60, "intervalMinutes": null, "bufferBeforeMinutes": 0, "bufferAfterMinutes": 15, "dailyLimit": null }, "approval": false, "fromEmail": "[email protected]", "notifyHost": true, "questions": [ { "id": "notes", "kind": "long-text", "label": "Anything we should know?", "required": false, "options": [] } ], "confirmation": "", "redirectUrl": "", "appearance": { "accent": "#2563eb", "theme": "auto", "showAvatar": true, "background": "default", "fonts": { "primary": null, "secondary": null }, "backgroundImage": null }, "guestChanges": { "cancel": true, "reschedule": true, "cutoffMinutes": 120 }, "busy": { "addresses": null, "subscriptions": true, "outOfOffice": true }, "seo": { "title": "", "description": "", "indexable": false }, "extraGuests": 0 }, "counts": { "upcoming": 3, "pending": 0 }, "away": [ { "address": "[email protected]", "startsAt": "2026-12-22T00:00:00.000Z", "endsAt": "2027-01-02T00:00:00.000Z" } ], "createdAt": "2026-10-13T07:00:05.870Z", "updatedAt": "2026-10-13T07:00:05.870Z" }]}counts.upcoming is the confirmed bookings that have not started, and counts.pending the ones waiting for approval.
url is the public link to hand to guests.
A missing page, or one that belongs to another person, answers 404 booking_page_not_found.
q finds pages by name or link, status keeps the active or the paused ones, since and until keep the pages made in a window, and sort is oldest (the default), newest, name or upcoming.