---
title: "Update a booking page"
method: PATCH
path: "/booking-pages/{id}"
tags: ["Booking Pages"]
---

# Update a booking page

`PATCH /booking-pages/{id}`

## Request

- Base URL: `https://shipmail.to/api/v1`
- URL: `https://shipmail.to/api/v1/booking-pages/{id}`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://shipmail.to/api/auth/oauth2/authorize`, token URL `https://shipmail.to/api/auth/oauth2/token`)

## Headers

- `X-Shipmail-Organization` string

## Request body

- UpdateBookingPageRequest: Partial update. Provide at least one field.
  - `name` string
  - `mailbox` string, email
  - `slug` string
  - `duration_minutes` integer
  - `availability_days` integer[]
  - `window_start_minutes` integer
  - `window_end_minutes` integer
  - `timezone` string
  - `description` string, nullable
  - `buffer_minutes` integer
  - `minimum_notice_minutes` integer
  - `max_advance_days` integer
  - `conferencing_provider` 'zoom' | 'google_meet', nullable: Opt-in provider used to create a meeting for each booking. Set null to disable meeting links. The provider must already be connected to the page's mailbox, or the request is rejected.
  - `active` boolean

## Response `200`

Updated booking page.

- BookingPage
  - `object` 'booking_page', required
  - `id` string, required
  - `mailbox` string, email, required: The mailbox whose availability the page exposes.
  - `slug` string, required
  - `url` string, nullable, required: Public booking URL.
  - `name` string, required
  - `description` string, nullable, required
  - `duration_minutes` integer, required
  - `availability_days` integer[], required: Weekdays offered, 0=Sunday .. 6=Saturday.
  - `window_start_minutes` integer, required: Start of the daily window, minutes from midnight.
  - `window_end_minutes` integer, required: End of the daily window, minutes from midnight.
  - `timezone` string, required
  - `buffer_minutes` integer, required
  - `minimum_notice_minutes` integer, required
  - `max_advance_days` integer, required
  - `conferencing_provider` 'zoom' | 'google_meet', nullable, required: Opt-in provider used to create a meeting for each booking. Null means no meeting link. The provider must already be connected to the page's mailbox, or the request is rejected.
  - `active` boolean, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `404`: Resource not found.
- `409`: Resource conflict.
- `422`: Validation failed.
- `429`: Rate limit exceeded.

---

[API](https://skmtc.dev/shipmail/apis/shipmail-api.md) · [All operations](https://skmtc.dev/shipmail/apis/shipmail-api/llms.txt) · [OpenAPI document](https://skmtc.dev/shipmail/apis/shipmail-api/revisions/2c23e59d7e30?raw)
