Skip to the documentation
API

Update or delete a booking page

Changes the name, the link, the status or any setting of a page, or removes the page.

PATCH/booking-pages/{id}

Runs any of 2 calls on your workspace.

PATCH /booking-pages/{id}

Changes the name, the link, the status or any setting of a page, or removes the page.

Example

Updating needs calendar:write and emails:send. Deleting needs only calendar:write. Send only what changes.

curl
curl -X PATCH "$OE/booking-pages/bkp_5c1e9a7b3d2f48e6a0b4c7d1" -H "$AUTH" -H 'content-type: application/json' -d '{  "status": "paused",  "config": { "approval": true, "busy": { "outOfOffice": false } }}'curl -X DELETE "$OE/booking-pages/bkp_5c1e9a7b3d2f48e6a0b4c7d1" -H "$AUTH"
Response
{  "object": "booking_page",  "id": "bkp_5c1e9a7b3d2f48e6a0b4c7d1",  "slug": "intro-call",  "name": "Intro call",  "status": "active",  "url": "https://nextmail.sh/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": "hana@acme.com",    "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": "hana@acme.com", "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"}

status paused keeps the link working but offers no times, and active opens the page again.

A list in config, such as durations, questions, availability.weekly or availability.overrides, is replaced whole. Everything else is merged field by field.

A new slug stops the old link from working. Bookings already made keep their time.

Deleting answers { "object": "booking_page", "id": "…", "deleted": true }. The meetings stay on the calendar, and guests can no longer move or cancel through their links.

Reference