This guide covers the lifecycle of a scheduling page from the API side — listing what you have, inspecting a single page’s configuration, activating or deactivating it, and issuing single-use links to share with specific customers. If you want to use a scheduling page (fetch availability and create a booking), see the Booking Flow guide. This guide is its complement: it covers how you manage the pages themselves.Documentation Index
Fetch the complete documentation index at: https://developer.zeeg.me/llms.txt
Use this file to discover all available pages before exploring further.
When to use these endpoints
Typical reasons to manage scheduling pages programmatically:- Provisioning at sign-up — list a newly invited user’s pages to confirm they exist before pointing the user at them.
- Syncing from a master config — keep an internal source of truth in step with what’s published on Zeeg by toggling pages active/inactive as your data changes.
- Per-customer booking links — issue a unique, one-time-use link to a specific customer (for example, after a paid signup) so they can only book once.
- Operational hygiene — deactivate an employee’s scheduling page when they leave; reactivate when they return.
Prerequisites
- An API token from your Zeeg dashboard. All endpoints in this guide require a Bearer token.
- The
userSlugfilter on listing requires an organization admin or owner token.
Naming. Zeeg’s dashboard calls these “scheduling pages.” The API path is
/event-types for historical reasons. The two terms refer to the same object — this guide uses “scheduling page” in prose and shows the actual /event-types path in code samples.Listing scheduling pages
Retrieve a paginated list of scheduling pages withGET /event-types. By default, the response contains pages on which the authenticated user is a host.
Query parameters
| Parameter | Type | Description |
|---|---|---|
userSlug | string | Filter to a specific user’s scheduling pages. Requires an organization admin/owner token. |
count | integer | Items per page. Default 20, max 100. See Pagination. |
page | integer | Page number (1-indexed). |
Example response
pagination.nextPage until it returns null — see Pagination for the full pattern.
Getting a single page’s details
Fetch a specific scheduling page by UUID withGET /event-types/{uuid}. The detail response is richer than the list response — it includes notification settings, the assigned hosts (or Flexi host collections), and the full inviteeQuestions array.
Fields most integrations care about
| Field | Why it matters |
|---|---|
slug | Used as eventTypeSlug when creating a booking. |
profile.slug | Used as ownerSlug when creating a booking. |
isActive | false means the page is hidden from public scheduling; bookings will be rejected. |
duration / eventDurations | Default duration plus any alternative durations the invitee can pick. |
inviteePhoneNumber | When true, bookings against this page must include a phone field. |
inviteeQuestions | Custom questions with their numeric ids. Pass answers via question_answers when booking. |
type | ONE_ON_ONE, GROUP, ROUND_ROBIN, COLLECTIVE, or FLEXI. Shared types use shared as the owner slug. |
hosts / flexiCollections | Assigned hosts. hosts is populated for everything except FLEXI pages. |
notifications | Per-page email and calendar invite behaviour. |
Toggling active/inactive
SendPUT /event-types/{uuid}/status to flip a page’s active state. The endpoint takes no body — it toggles whatever the current state is. Active pages accept bookings; inactive pages do not appear at the public URL and reject API bookings.
Example response
Python
Issuing single-use links
A single-use link lets you give a specific customer a unique URL that can be redeemed exactly once. After the booking is confirmed, the link can no longer be used. This is the most powerful programmatic feature exposed on scheduling pages — use it any time you want to bind a single booking to a specific recipient (post-purchase scheduling, support escalations, gated demo invites, etc.). Generate one withGET /event-types/{uuid}/single-use-link.
Query parameters
| Parameter | Type | Description |
|---|---|---|
price | number | Optional. For paid scheduling pages, override the default price for this single-use link. Useful for issuing discounted or free bookings to specific recipients. The override applies to all configured durations on the page. |
Example response
link field contains the URL to share with the recipient. Once they complete a booking through it, the link is consumed and any subsequent attempts to use it will fail.
Worked example: issue a link on customer signup
A common pattern is to mint a single-use link the moment a customer completes a paid signup, then email it to them so they can book a kickoff call exactly once.Composing with the booking flow
Once you have a scheduling page (or a single-use link), the next step is fetching availability and creating the booking. That’s covered end-to-end in:Booking Flow
Fetch a scheduling page’s available slots and create a booking via the API.
Rate limits and error handling
- All endpoints in this guide return standard Zeeg error codes — see Errors for the full list and recommended client behaviour.
- API requests are subject to per-token limits — see Rate Limits before bulk-issuing single-use links or syncing many pages.
- A
404from the toggle or single-use-link endpoints means the UUID does not match a scheduling page accessible by your token. Double-check the UUID and the token’s owner.