> ## Documentation Index
> Fetch the complete documentation index at: https://cal.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# List a team's Events (cursor pagination)

> Returns every Event the team owns, including ones the authenticated user neither hosts nor co-hosts. The user must be an accepted member of the team, or of its parent organization. PBAC permission: `calEvent.read`. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. Ordered by start time, newest first when `status` is omitted.

Cursor-based pagination: pass `pagination.nextCursor` from a previous response as the `cursor` query parameter to fetch the next page; omit `cursor` for the first page. `pagination.hasMore` is `false` and `pagination.nextCursor` is `null` on the last page.

<Note>Must pass `cal-api-version: 2026-05-01` (or later). Older versions use `take`/`skip` offset pagination.</Note>

Events are fixed-date RSVP pages served at cal.com/{slug}; they are not event types (bookable meeting templates) or calendar events. If accessed using an OAuth access token, the `TEAM_EVENT_READ` scope is required.



## OpenAPI

````yaml /api-reference/v2/openapi.json get /v2/teams/{teamId}/events
openapi: 3.0.0
info:
  title: Cal.com API v2
  description: ''
  version: 1.0.0
  contact: {}
servers: []
security: []
tags: []
paths:
  /v2/teams/{teamId}/events:
    get:
      tags:
        - Teams / Events
      summary: List a team's Events (cursor pagination)
      description: >-
        Returns every Event the team owns, including ones the authenticated user
        neither hosts nor co-hosts. The user must be an accepted member of the
        team, or of its parent organization. PBAC permission: `calEvent.read`.
        Learn more about API access control at
        https://cal.com/docs/api-reference/v2/access-control. Ordered by start
        time, newest first when `status` is omitted.


        Cursor-based pagination: pass `pagination.nextCursor` from a previous
        response as the `cursor` query parameter to fetch the next page; omit
        `cursor` for the first page. `pagination.hasMore` is `false` and
        `pagination.nextCursor` is `null` on the last page.


        <Note>Must pass `cal-api-version: 2026-05-01` (or later). Older versions
        use `take`/`skip` offset pagination.</Note>


        Events are fixed-date RSVP pages served at cal.com/{slug}; they are not
        event types (bookable meeting templates) or calendar events. If accessed
        using an OAuth access token, the `TEAM_EVENT_READ` scope is required.
      operationId: TeamsEventsController_listCursor
      parameters:
        - name: cursor
          required: false
          in: query
          description: >-
            Opaque cursor for cursor-based pagination. Pass the
            `pagination.nextCursor` value from a previous response to fetch the
            next page. Omit to fetch the first page.
          schema:
            example: >-
              eyJ2IjoyLCJzdGFydFRpbWUiOiIyMDMwLTAxLTAxVDAwOjAwOjAwLjAwMFoiLCJldmVudFR5cGVVdWlkIjoiMDE4ZjRjMmUtM2YxYS03YWJjLTlkZWYtMDEyMzQ1Njc4OWFiIn0
            type: string
        - name: limit
          required: false
          in: query
          description: Maximum number of Events to return.
          schema:
            minimum: 1
            maximum: 250
            default: 50
            example: 25
            type: number
        - name: slug
          required: false
          in: query
          description: Filter by the event's public page slug (cal.com/{slug}).
          schema:
            example: team-offsite
            type: string
        - name: status
          required: false
          in: query
          description: >-
            Filter events by lifecycle status. `draft`: not published and not
            cancelled, ordered soonest first. `upcoming`: published and not yet
            ended, or cancelled but not yet started, ordered soonest first.
            `past`: everything else, ordered latest first. Omit to return all
            statuses, newest first. When provided, `pagination.nextCursor`
            encodes the status — cursors from one status value cannot be used
            with another and return 400.
          schema:
            example: upcoming
            type: string
            enum:
              - draft
              - upcoming
              - past
        - name: teamId
          required: true
          in: path
          description: >-
            The team's uuid (preferred), its short-uuid (Flickr Base58) form, or
            its numeric id.
          schema:
            anyOf:
              - type: string
              - type: number
        - name: cal-api-version
          in: header
          description: >-
            Must be set to 2026-05-01 (or a later API version) for cursor
            pagination.
          required: true
          schema:
            type: string
            example: '2026-05-01'
            default: '2026-05-01'
        - name: Authorization
          in: header
          description: >-
            value must be `Bearer <token>` where `<token>` is api key prefixed
            with cal_, managed user access token, or OAuth access token
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventsCursorOutputResponseDto'
        '400':
          description: Invalid cursor
        '401':
          description: Unauthenticated
        '403':
          description: Not a member of the team, or insufficient permissions
components:
  schemas:
    EventsCursorOutputResponseDto:
      type: object
      properties:
        status:
          enum:
            - success
            - error
          type: string
          example: success
        data:
          type: array
          items:
            $ref: '#/components/schemas/EventOutputDto'
        pagination:
          $ref: '#/components/schemas/EventsCursorPaginationMetaDto'
      required:
        - status
        - data
        - pagination
    EventOutputDto:
      type: object
      properties:
        uuid:
          type: string
          description: Unique identifier of the Event.
        slug:
          type: string
        title:
          type: string
        description:
          type: string
          nullable: true
        startTime:
          format: date-time
          type: string
        endTime:
          format: date-time
          type: string
        checkInOpensAt:
          format: date-time
          type: string
          description: >-
            When hosts can start checking guests in: 12 hours before
            `startTime`.
        checkInClosesAt:
          format: date-time
          type: string
          description: 'When check-in closes: 12 hours after `endTime`.'
        timeZone:
          type: string
        visibility:
          enum:
            - PUBLIC
            - UNLISTED
          type: string
        category:
          enum:
            - meetup
            - conference
            - music
            - sports
          type: string
          description: What kind of event it is.
        hidden:
          type: boolean
        publishedAt:
          format: date-time
          type: string
          nullable: true
        cancelledAt:
          format: date-time
          type: string
          nullable: true
        status:
          enum:
            - draft
            - published
            - cancelled
          type: string
          description: >-
            Lifecycle status that summarises hidden, publishedAt and
            cancelledAt: cancelled when the Event was cancelled, published once
            published, draft otherwise.
        locations:
          type: array
          items:
            oneOf:
              - $ref: '#/components/schemas/EventAddressLocationOutput'
                title: Address
              - $ref: '#/components/schemas/EventLinkLocationOutput'
                title: Link
              - $ref: '#/components/schemas/EventIntegrationLocationOutput'
                title: Integration
              - $ref: '#/components/schemas/EventOrganizersDefaultAppLocationOutput'
                title: Organizer Default App
              - $ref: '#/components/schemas/EventUnknownLocationOutput'
                title: Unknown
        coverImageUrl:
          type: string
          nullable: true
        requiresApproval:
          type: boolean
        paymentTimeoutMinutes:
          type: number
          nullable: true
          description: >-
            How many minutes a guest's seat is held while they pay. null uses
            the default of 10 minutes.
        registrationOpensAt:
          format: date-time
          type: string
          nullable: true
          description: >-
            When guests can start registering. null means registration opens
            when the Event is published.
        registrationClosesAt:
          format: date-time
          type: string
          nullable: true
          description: >-
            When registration closes. null means registration closes when the
            Event starts.
        waitlistEnabled:
          type: boolean
          description: >-
            Whether guests can join a waitlist when the Event is full. The
            waitlist only opens when the Event or the chosen location is full,
            so it only works when capacity is set on the Event or on a location.
        showOrganizerEmail:
          type: boolean
          description: Whether guests can see the organizer's email.
        guestList:
          enum:
            - hidden
            - names
            - count
          type: string
          description: >-
            Who guests can see on the Event's page: their names, only the count,
            or neither.
        showPresentedBy:
          type: boolean
          description: Whether the Event shows who it is presented by.
        confirmedCount:
          type: number
          description: >-
            Confirmed guest count. Returned when listing Events and omitted when
            fetching a single Event by uuid.
        liveStreams:
          description: Links where people can watch the event live, in display order.
          type: array
          items:
            $ref: '#/components/schemas/EventLiveStreamOutput'
        theme:
          nullable: true
          enum:
            - light
            - dark
          type: string
          description: >-
            Default theme of the event page; null follows the visitor's system
            setting.
        poster:
          nullable: true
          description: >-
            Poster cover design. The web app draws `coverImageUrl` from it. null
            when the cover is an uploaded image.
          type: object
          allOf:
            - $ref: '#/components/schemas/EventPosterOutput'
        lineup:
          nullable: true
          description: >-
            Speakers or performers on the event page. Returned on single-Event
            responses, not on Event lists.
          type: object
          allOf:
            - $ref: '#/components/schemas/EventLineupOutput'
        schedule:
          nullable: true
          description: >-
            Agenda on the event page. Returned on single-Event responses, not on
            Event lists.
          type: array
          items:
            $ref: '#/components/schemas/EventScheduleItemOutput'
        background:
          nullable: true
          description: Animated background of the event page.
          type: object
          allOf:
            - $ref: '#/components/schemas/EventBackgroundOutput'
        registrationFields:
          type: array
          description: >-
            Questions guests answer when registering. Always includes name and
            email.
          items:
            discriminator:
              propertyName: field
            oneOf:
              - title: Default Name
                discriminator:
                  propertyName: variant
                oneOf:
                  - $ref: '#/components/schemas/SystemFullNameFieldOutput_2026_06_12'
                    title: Default Full Name
                  - $ref: '#/components/schemas/SystemSplitNameFieldOutput_2026_06_12'
                    title: Default Split Name
              - $ref: '#/components/schemas/SystemEmailFieldOutput_2026_06_12'
                title: Default Email
              - $ref: '#/components/schemas/SystemLocationFieldOutput_2026_06_12'
                title: Default Location
              - $ref: '#/components/schemas/SystemTitleFieldOutput_2026_06_12'
                title: Default Title
              - $ref: '#/components/schemas/SystemNotesFieldOutput_2026_06_12'
                title: Default Notes
              - $ref: '#/components/schemas/SystemGuestsFieldOutput_2026_06_12'
                title: Default Guests
              - $ref: >-
                  #/components/schemas/SystemRescheduleReasonFieldOutput_2026_06_12
                title: Default Reschedule Reason
              - $ref: '#/components/schemas/SystemAttendeePhoneFieldOutput_2026_06_12'
                title: Default Attendee Phone
              - $ref: '#/components/schemas/SystemSmsReminderFieldOutput_2026_06_12'
                title: Workflow-added SMS Reminder
              - $ref: '#/components/schemas/SystemAiAgentPhoneFieldOutput_2026_06_12'
                title: Workflow-added AI Agent Phone
              - title: Custom Booking Field
                discriminator:
                  propertyName: type
                oneOf:
                  - $ref: '#/components/schemas/CustomEmailFieldOutput_2026_06_12'
                    title: Custom Email
                  - $ref: '#/components/schemas/CustomPhoneFieldOutput_2026_06_12'
                    title: Custom Phone
                  - $ref: '#/components/schemas/CustomAddressFieldOutput_2026_06_12'
                    title: Custom Address
                  - $ref: '#/components/schemas/CustomShortTextFieldOutput_2026_06_12'
                    title: Custom Short Text
                  - $ref: '#/components/schemas/CustomNumberFieldOutput_2026_06_12'
                    title: Custom Number
                  - $ref: '#/components/schemas/CustomLongTextFieldOutput_2026_06_12'
                    title: Custom Long Text
                  - $ref: '#/components/schemas/CustomSelectFieldOutput_2026_06_12'
                    title: Custom Select
                  - $ref: >-
                      #/components/schemas/CustomMultiSelectFieldOutput_2026_06_12
                    title: Custom Multi-Select
                  - $ref: >-
                      #/components/schemas/CustomMultiEmailFieldOutput_2026_06_12
                    title: Custom Multiple Emails
                  - $ref: >-
                      #/components/schemas/CustomCheckboxGroupFieldOutput_2026_06_12
                    title: Custom Checkbox Group
                  - $ref: >-
                      #/components/schemas/CustomRadioGroupFieldOutput_2026_06_12
                    title: Custom Radio Group
                  - $ref: '#/components/schemas/CustomCheckboxFieldOutput_2026_06_12'
                    title: Custom Checkbox
                  - $ref: '#/components/schemas/CustomUrlFieldOutput_2026_06_12'
                    title: Custom URL
              - $ref: '#/components/schemas/UnknownBookingFieldOutput_2026_06_12'
                title: Unknown Booking Field
        hosts:
          description: >-
            Ordered host roster, creator first. External co-hosts are not
            included.
          type: array
          items:
            $ref: '#/components/schemas/EventHostOutput'
        capacity:
          type: number
          nullable: true
          description: >-
            The most guests the Event can take; null when unlimited. Once any
            location has its own `capacity`, this is the sum of the location
            capacities, or null if any location has none. The waitlist only
            opens when the Event or the chosen location is full, so it only
            works when capacity is set on the Event or on a location.
          example: 100
        price:
          type: number
          nullable: true
          description: >-
            Price of an Event without locations, in the currency's smallest
            unit; null when free. Events with locations are priced per location.
          example: 1500
        currency:
          type: string
          nullable: true
          description: Cal Pay currency code of `price`.
          example: usd
        paymentsEnabled:
          type: boolean
          description: >-
            Whether paid Events are available. When false, setting `price` on
            the Event or a location returns a 400.
          example: true
        cancellationReason:
          type: string
          nullable: true
        userId:
          type: number
          nullable: true
          description: Owner user id for a personal Event; null for a team-owned one.
        teamId:
          type: number
          nullable: true
          description: Owning team id for a team-owned Event; null for a personal one.
      required:
        - uuid
        - slug
        - title
        - startTime
        - endTime
        - checkInOpensAt
        - checkInClosesAt
        - timeZone
        - visibility
        - category
        - hidden
        - status
        - locations
        - requiresApproval
        - registrationOpensAt
        - registrationClosesAt
        - waitlistEnabled
        - showOrganizerEmail
        - guestList
        - showPresentedBy
        - liveStreams
        - registrationFields
        - hosts
        - paymentsEnabled
    EventsCursorPaginationMetaDto:
      type: object
      properties:
        nextCursor:
          type: string
          nullable: true
          description: >-
            Opaque cursor to fetch the next page. Pass this value as the
            `cursor` query parameter on the next request. `null` when `hasMore`
            is `false`.
          example: >-
            eyJ2IjoyLCJzdGFydFRpbWUiOiIyMDMwLTAxLTAxVDAwOjAwOjAwLjAwMFoiLCJldmVudFR5cGVVdWlkIjoiMDE4ZjRjMmUtM2YxYS03YWJjLTlkZWYtMDEyMzQ1Njc4OWFiIn0
        hasMore:
          type: boolean
          description: Whether more pages are available after this one.
          example: true
      required:
        - nextCursor
        - hasMore
    EventAddressLocationOutput:
      type: object
      properties:
        id:
          type: string
          description: >-
            Identifier of this location. Pass it to `PATCH` or `DELETE
            /v2/events/{uuid}/locations/{locationId}` to edit or remove this
            location.
        label:
          type: string
          description: Name shown for this location.
          maxLength: 100
        price:
          type: number
          nullable: true
          example: 2500
          description: >-
            Price a guest who picks this location pays, in the currency's
            smallest unit. null when the location is free.
        currency:
          type: string
          nullable: true
          example: usd
          description: Currency of price. null when the location is free.
        capacity:
          type: number
          description: Seats at this location. Absent when unlimited.
          minimum: 1
          maximum: 100000
        type:
          type: string
          example: address
          enum:
            - address
        address:
          type: string
          example: 123 Event Street
      required:
        - id
        - price
        - currency
        - type
        - address
    EventLinkLocationOutput:
      type: object
      properties:
        id:
          type: string
          description: >-
            Identifier of this location. Pass it to `PATCH` or `DELETE
            /v2/events/{uuid}/locations/{locationId}` to edit or remove this
            location.
        label:
          type: string
          description: Name shown for this location.
          maxLength: 100
        price:
          type: number
          nullable: true
          example: 2500
          description: >-
            Price a guest who picks this location pays, in the currency's
            smallest unit. null when the location is free.
        currency:
          type: string
          nullable: true
          example: usd
          description: Currency of price. null when the location is free.
        capacity:
          type: number
          description: Seats at this location. Absent when unlimited.
          minimum: 1
          maximum: 100000
        type:
          type: string
          example: link
          enum:
            - link
        link:
          type: string
          example: https://example.com/event
      required:
        - id
        - price
        - currency
        - type
        - link
    EventIntegrationLocationOutput:
      type: object
      properties:
        id:
          type: string
          description: >-
            Identifier of this location. Pass it to `PATCH` or `DELETE
            /v2/events/{uuid}/locations/{locationId}` to edit or remove this
            location.
        label:
          type: string
          description: Name shown for this location.
          maxLength: 100
        price:
          type: number
          nullable: true
          example: 2500
          description: >-
            Price a guest who picks this location pays, in the currency's
            smallest unit. null when the location is free.
        currency:
          type: string
          nullable: true
          example: usd
          description: Currency of price. null when the location is free.
        capacity:
          type: number
          description: Seats at this location. Absent when unlimited.
          minimum: 1
          maximum: 100000
        type:
          type: string
          example: integration
          enum:
            - integration
        integration:
          type: string
          description: >-
            The integration's API name, e.g. `zoom` or `google-meet`. An app
            without an API name is returned with its stored type, e.g.
            `integrations:dialpad_video`.
          example: zoom
        credentialId:
          type: number
          description: >-
            Identifies which connected account will host the Event when a host
            has multiple connected accounts.
      required:
        - id
        - price
        - currency
        - type
        - integration
    EventOrganizersDefaultAppLocationOutput:
      type: object
      properties:
        id:
          type: string
          description: >-
            Identifier of this location. Pass it to `PATCH` or `DELETE
            /v2/events/{uuid}/locations/{locationId}` to edit or remove this
            location.
        label:
          type: string
          description: Name shown for this location.
          maxLength: 100
        price:
          type: number
          nullable: true
          example: 2500
          description: >-
            Price a guest who picks this location pays, in the currency's
            smallest unit. null when the location is free.
        currency:
          type: string
          nullable: true
          example: usd
          description: Currency of price. null when the location is free.
        capacity:
          type: number
          description: Seats at this location. Absent when unlimited.
          minimum: 1
          maximum: 100000
        type:
          type: string
          example: organizersDefaultApp
          enum:
            - organizersDefaultApp
      required:
        - id
        - price
        - currency
        - type
    EventUnknownLocationOutput:
      type: object
      properties:
        id:
          type: string
          description: >-
            Identifier of this location. Pass it to `PATCH` or `DELETE
            /v2/events/{uuid}/locations/{locationId}` to edit or remove this
            location.
        label:
          type: string
          description: Name shown for this location.
          maxLength: 100
        price:
          type: number
          nullable: true
          example: 2500
          description: >-
            Price a guest who picks this location pays, in the currency's
            smallest unit. null when the location is free.
        currency:
          type: string
          nullable: true
          example: usd
          description: Currency of price. null when the location is free.
        capacity:
          type: number
          description: Seats at this location. Absent when unlimited.
          minimum: 1
          maximum: 100000
        type:
          type: string
          example: unknown
          enum:
            - unknown
        location:
          type: string
          description: >-
            The stored location as JSON, for a location this API version can't
            represent. Remove it with `DELETE
            /v2/events/{uuid}/locations/{locationId}`.
      required:
        - id
        - price
        - currency
        - type
        - location
    EventLiveStreamOutput:
      type: object
      properties:
        url:
          type: string
          description: Where people can watch the event live.
      required:
        - url
    EventPosterOutput:
      type: object
      properties:
        layout:
          enum:
            - date
            - bauhaus
            - rings
            - waves
            - halftone
            - split
          type: string
        palette:
          $ref: '#/components/schemas/EventPosterPaletteOutput'
        headline:
          type: string
          nullable: true
        seed:
          type: number
      required:
        - layout
        - palette
        - headline
        - seed
    EventLineupOutput:
      type: object
      properties:
        title:
          type: string
          nullable: true
        people:
          type: array
          items:
            $ref: '#/components/schemas/EventLineupPersonOutput'
      required:
        - title
        - people
    EventScheduleItemOutput:
      type: object
      properties:
        startTime:
          format: date-time
          type: string
          nullable: true
        endTime:
          format: date-time
          type: string
          nullable: true
        timeLabel:
          type: string
          nullable: true
        content:
          type: string
        people:
          type: array
          items:
            $ref: '#/components/schemas/EventSchedulePersonOutput'
      required:
        - startTime
        - endTime
        - timeLabel
        - content
        - people
    EventBackgroundOutput:
      type: object
      properties:
        effect:
          enum:
            - aurora
            - tide
            - satin
            - resonance
            - veil
            - facet
            - lumen
            - contour
            - recess
            - halftone
            - strata
          type: string
        colors:
          type: array
          items:
            type: string
      required:
        - effect
        - colors
    SystemFullNameFieldOutput_2026_06_12:
      type: object
      properties:
        field:
          type: string
          example: name
          description: Identifies this as the name default booking field.
        slug:
          type: string
          example: name
          description: The default name field always uses `name` as its slug.
        variant:
          type: string
          example: fullName
          enum:
            - fullName
          description: Single full-name input variant.
        label:
          type: string
        placeholder:
          type: string
        disableOnPrefill:
          type: boolean
          description: >-
            Disable this booking field if the URL contains query parameter with
            key equal to the slug and prefill it with the provided value.    For
            example, if the slug is `my-field` and the URL contains
            `&my-field=value`,    the field will be prefilled with this value
            and disabled.
      required:
        - field
        - slug
        - variant
        - disableOnPrefill
    SystemSplitNameFieldOutput_2026_06_12:
      type: object
      properties:
        field:
          type: string
          example: name
          description: Identifies this as the name default booking field.
        slug:
          type: string
          example: name
          description: The default name field always uses `name` as its slug.
        variant:
          type: string
          example: splitName
          enum:
            - splitName
          description: >-
            The booking page displays separate fields for the attendee's first
            and last names.
        firstNameLabel:
          type: string
        firstNamePlaceholder:
          type: string
        lastNameLabel:
          type: string
        lastNamePlaceholder:
          type: string
        lastNameRequired:
          type: boolean
          description: Whether the last name sub-field is required.
        disableOnPrefill:
          type: boolean
          description: >-
            Disable this booking field if the URL contains query parameter with
            key equal to the slug and prefill it with the provided value.    For
            example, if the slug is `my-field` and the URL contains
            `&my-field=value`,    the field will be prefilled with this value
            and disabled.
      required:
        - field
        - slug
        - variant
        - lastNameRequired
        - disableOnPrefill
    SystemEmailFieldOutput_2026_06_12:
      type: object
      properties:
        required:
          type: boolean
        hidden:
          type: boolean
          description: >-
            Hide this booking field from the booking page while keeping it in
            the event type's settings. Hidden fields are only returned to
            callers authorized on the event type.
        label:
          type: string
          example: Your default field label
        placeholder:
          type: string
        disableOnPrefill:
          type: boolean
          description: >-
            Disable this booking field if the URL contains query parameter with
            key equal to the slug and prefill it with the provided value.    For
            example, if the slug is `my-field` and the URL contains
            `&my-field=value`,    the field will be prefilled with this value
            and disabled.
        field:
          type: string
          example: email
          description: Identifies this as the email default booking field.
        slug:
          type: string
          example: email
          description: The default email field always uses `email` as its slug.
        excludeEmails:
          description: >-
            Bookers whose email matches an entry cannot book. Entries may be a
            bare domain (`example.com`), a domain with `@` (`@example.com`), or
            an exact address (`person@example.com`). Matching is
            case-insensitive.
          type: array
          items:
            type: string
        requireEmails:
          description: >-
            Only bookers whose email matches an entry can book. Entries may be a
            bare domain (`example.com`), a domain with `@` (`@example.com`), or
            an exact address (`person@example.com`). Matching is
            case-insensitive.
          type: array
          items:
            type: string
      required:
        - required
        - hidden
        - disableOnPrefill
        - field
        - slug
    SystemLocationFieldOutput_2026_06_12:
      type: object
      properties:
        field:
          type: string
          example: location
          description: >-
            Identifies this as the location default booking field. The Booker
            renders the location picker only when the event type has at least 2
            location options.
        slug:
          type: string
          example: location
          description: The default location field always uses `location` as its slug.
        label:
          type: string
          example: Your location default field label
      required:
        - field
        - slug
    SystemTitleFieldOutput_2026_06_12:
      type: object
      properties:
        required:
          type: boolean
        hidden:
          type: boolean
          description: >-
            Hide this booking field from the booking page while keeping it in
            the event type's settings. Hidden fields are only returned to
            callers authorized on the event type.
        label:
          type: string
          example: Your default field label
        placeholder:
          type: string
        disableOnPrefill:
          type: boolean
          description: >-
            Disable this booking field if the URL contains query parameter with
            key equal to the slug and prefill it with the provided value.    For
            example, if the slug is `my-field` and the URL contains
            `&my-field=value`,    the field will be prefilled with this value
            and disabled.
        field:
          type: string
          example: title
          description: Identifies this as the title default booking field.
        slug:
          type: string
          example: title
          description: The default booking title field always uses `title` as its slug.
      required:
        - required
        - hidden
        - disableOnPrefill
        - field
        - slug
    SystemNotesFieldOutput_2026_06_12:
      type: object
      properties:
        required:
          type: boolean
        hidden:
          type: boolean
          description: >-
            Hide this booking field from the booking page while keeping it in
            the event type's settings. Hidden fields are only returned to
            callers authorized on the event type.
        label:
          type: string
          example: Your default field label
        placeholder:
          type: string
        disableOnPrefill:
          type: boolean
          description: >-
            Disable this booking field if the URL contains query parameter with
            key equal to the slug and prefill it with the provided value.    For
            example, if the slug is `my-field` and the URL contains
            `&my-field=value`,    the field will be prefilled with this value
            and disabled.
        field:
          type: string
          example: notes
          description: Identifies this as the notes default booking field.
        slug:
          type: string
          example: notes
          description: The default additional-notes field always uses `notes` as its slug.
      required:
        - required
        - hidden
        - disableOnPrefill
        - field
        - slug
    SystemGuestsFieldOutput_2026_06_12:
      type: object
      properties:
        required:
          type: boolean
        hidden:
          type: boolean
          description: >-
            Hide this booking field from the booking page while keeping it in
            the event type's settings. Hidden fields are only returned to
            callers authorized on the event type.
        label:
          type: string
          example: Your default field label
        placeholder:
          type: string
        disableOnPrefill:
          type: boolean
          description: >-
            Disable this booking field if the URL contains query parameter with
            key equal to the slug and prefill it with the provided value.    For
            example, if the slug is `my-field` and the URL contains
            `&my-field=value`,    the field will be prefilled with this value
            and disabled.
        field:
          type: string
          example: guests
          description: Identifies this as the guests default booking field.
        slug:
          type: string
          example: guests
          description: >-
            The default additional-guests field always uses `guests` as its
            slug.
      required:
        - required
        - hidden
        - disableOnPrefill
        - field
        - slug
    SystemRescheduleReasonFieldOutput_2026_06_12:
      type: object
      properties:
        required:
          type: boolean
        hidden:
          type: boolean
          description: >-
            Hide this booking field from the booking page while keeping it in
            the event type's settings. Hidden fields are only returned to
            callers authorized on the event type.
        label:
          type: string
          example: Your default field label
        placeholder:
          type: string
        disableOnPrefill:
          type: boolean
          description: >-
            Disable this booking field if the URL contains query parameter with
            key equal to the slug and prefill it with the provided value.    For
            example, if the slug is `my-field` and the URL contains
            `&my-field=value`,    the field will be prefilled with this value
            and disabled.
        field:
          type: string
          example: rescheduleReason
          description: Identifies this as the reschedule reason default booking field.
        slug:
          type: string
          example: rescheduleReason
          description: >-
            The default reschedule-reason field always uses `rescheduleReason`
            as its slug.
      required:
        - required
        - hidden
        - disableOnPrefill
        - field
        - slug
    SystemAttendeePhoneFieldOutput_2026_06_12:
      type: object
      properties:
        required:
          type: boolean
        hidden:
          type: boolean
          description: >-
            Hide this booking field from the booking page while keeping it in
            the event type's settings. Hidden fields are only returned to
            callers authorized on the event type.
        label:
          type: string
          example: Your default field label
        placeholder:
          type: string
        disableOnPrefill:
          type: boolean
          description: >-
            Disable this booking field if the URL contains query parameter with
            key equal to the slug and prefill it with the provided value.    For
            example, if the slug is `my-field` and the URL contains
            `&my-field=value`,    the field will be prefilled with this value
            and disabled.
        field:
          type: string
          example: attendeePhoneNumber
          description: Identifies this as the attendee phone number default booking field.
        slug:
          type: string
          example: attendeePhoneNumber
          description: >-
            The default attendee phone field always uses `attendeePhoneNumber`
            as its slug.
      required:
        - required
        - hidden
        - disableOnPrefill
        - field
        - slug
    SystemSmsReminderFieldOutput_2026_06_12:
      type: object
      properties:
        required:
          type: boolean
        hidden:
          type: boolean
          description: >-
            Hide this booking field from the booking page while keeping it in
            the event type's settings. Hidden fields are only returned to
            callers authorized on the event type.
        label:
          type: string
          example: Your default field label
        placeholder:
          type: string
        disableOnPrefill:
          type: boolean
          description: >-
            Disable this booking field if the URL contains query parameter with
            key equal to the slug and prefill it with the provided value.    For
            example, if the slug is `my-field` and the URL contains
            `&my-field=value`,    the field will be prefilled with this value
            and disabled.
        field:
          type: string
          example: smsReminderNumber
          description: Phone-number field added automatically by an SMS workflow.
        slug:
          type: string
          example: smsReminderNumber
          description: >-
            This workflow-added field always uses `smsReminderNumber` as its
            slug.
      required:
        - required
        - hidden
        - disableOnPrefill
        - field
        - slug
    SystemAiAgentPhoneFieldOutput_2026_06_12:
      type: object
      properties:
        required:
          type: boolean
        hidden:
          type: boolean
          description: >-
            Hide this booking field from the booking page while keeping it in
            the event type's settings. Hidden fields are only returned to
            callers authorized on the event type.
        label:
          type: string
          example: Your default field label
        placeholder:
          type: string
        disableOnPrefill:
          type: boolean
          description: >-
            Disable this booking field if the URL contains query parameter with
            key equal to the slug and prefill it with the provided value.    For
            example, if the slug is `my-field` and the URL contains
            `&my-field=value`,    the field will be prefilled with this value
            and disabled.
        field:
          type: string
          example: aiAgentCallPhoneNumber
          description: Phone-number field added automatically by an AI-agent workflow.
        slug:
          type: string
          example: aiAgentCallPhoneNumber
          description: >-
            This workflow-added field always uses `aiAgentCallPhoneNumber` as
            its slug.
      required:
        - required
        - hidden
        - disableOnPrefill
        - field
        - slug
    CustomEmailFieldOutput_2026_06_12:
      type: object
      properties:
        field:
          type: string
          example: custom
          description: Identifies this as a custom booking field.
        slug:
          type: string
          description: Unique slug identifier for this custom field.
          example: some-slug
        label:
          type: string
          example: Your custom field label
        required:
          type: boolean
        hidden:
          type: boolean
          description: >-
            Hide this booking field from the booking page while keeping it in
            the event type's settings. Hidden fields are only returned to
            callers authorized on the event type.
        placeholder:
          type: string
        disableOnPrefill:
          type: boolean
          description: >-
            Disable this booking field if the URL contains query parameter with
            key equal to the slug and prefill it with the provided value.    For
            example, if the slug is `my-field` and the URL contains
            `&my-field=value`,    the field will be prefilled with this value
            and disabled.
        type:
          type: string
          example: email
          enum:
            - email
          description: An email input on the booking page.
        excludeEmails:
          description: >-
            Bookers whose email matches an entry cannot book. Entries may be a
            bare domain (`example.com`), a domain with `@` (`@example.com`), or
            an exact address (`person@example.com`). Matching is
            case-insensitive.
          type: array
          items:
            type: string
        requireEmails:
          description: >-
            Only bookers whose email matches an entry can book. Entries may be a
            bare domain (`example.com`), a domain with `@` (`@example.com`), or
            an exact address (`person@example.com`). Matching is
            case-insensitive.
          type: array
          items:
            type: string
      required:
        - field
        - slug
        - label
        - required
        - hidden
        - disableOnPrefill
        - type
    CustomPhoneFieldOutput_2026_06_12:
      type: object
      properties:
        field:
          type: string
          example: custom
          description: Identifies this as a custom booking field.
        slug:
          type: string
          description: Unique slug identifier for this custom field.
          example: some-slug
        label:
          type: string
          example: Your custom field label
        required:
          type: boolean
        hidden:
          type: boolean
          description: >-
            Hide this booking field from the booking page while keeping it in
            the event type's settings. Hidden fields are only returned to
            callers authorized on the event type.
        placeholder:
          type: string
        disableOnPrefill:
          type: boolean
          description: >-
            Disable this booking field if the URL contains query parameter with
            key equal to the slug and prefill it with the provided value.    For
            example, if the slug is `my-field` and the URL contains
            `&my-field=value`,    the field will be prefilled with this value
            and disabled.
        type:
          type: string
          example: phone
          enum:
            - phone
          description: A phone-number input on the booking page.
      required:
        - field
        - slug
        - label
        - required
        - hidden
        - disableOnPrefill
        - type
    CustomAddressFieldOutput_2026_06_12:
      type: object
      properties:
        field:
          type: string
          example: custom
          description: Identifies this as a custom booking field.
        slug:
          type: string
          description: Unique slug identifier for this custom field.
          example: some-slug
        label:
          type: string
          example: Your custom field label
        required:
          type: boolean
        hidden:
          type: boolean
          description: >-
            Hide this booking field from the booking page while keeping it in
            the event type's settings. Hidden fields are only returned to
            callers authorized on the event type.
        placeholder:
          type: string
        disableOnPrefill:
          type: boolean
          description: >-
            Disable this booking field if the URL contains query parameter with
            key equal to the slug and prefill it with the provided value.    For
            example, if the slug is `my-field` and the URL contains
            `&my-field=value`,    the field will be prefilled with this value
            and disabled.
        type:
          type: string
          example: address
          enum:
            - address
          description: An address input on the booking page.
      required:
        - field
        - slug
        - label
        - required
        - hidden
        - disableOnPrefill
        - type
    CustomShortTextFieldOutput_2026_06_12:
      type: object
      properties:
        field:
          type: string
          example: custom
          description: Identifies this as a custom booking field.
        slug:
          type: string
          description: Unique slug identifier for this custom field.
          example: some-slug
        label:
          type: string
          example: Your custom field label
        required:
          type: boolean
        hidden:
          type: boolean
          description: >-
            Hide this booking field from the booking page while keeping it in
            the event type's settings. Hidden fields are only returned to
            callers authorized on the event type.
        placeholder:
          type: string
        disableOnPrefill:
          type: boolean
          description: >-
            Disable this booking field if the URL contains query parameter with
            key equal to the slug and prefill it with the provided value.    For
            example, if the slug is `my-field` and the URL contains
            `&my-field=value`,    the field will be prefilled with this value
            and disabled.
        type:
          type: string
          example: shortText
          enum:
            - shortText
          description: A single-line text input on the booking page.
      required:
        - field
        - slug
        - label
        - required
        - hidden
        - disableOnPrefill
        - type
    CustomNumberFieldOutput_2026_06_12:
      type: object
      properties:
        field:
          type: string
          example: custom
          description: Identifies this as a custom booking field.
        slug:
          type: string
          description: Unique slug identifier for this custom field.
          example: some-slug
        label:
          type: string
          example: Your custom field label
        required:
          type: boolean
        hidden:
          type: boolean
          description: >-
            Hide this booking field from the booking page while keeping it in
            the event type's settings. Hidden fields are only returned to
            callers authorized on the event type.
        placeholder:
          type: string
        disableOnPrefill:
          type: boolean
          description: >-
            Disable this booking field if the URL contains query parameter with
            key equal to the slug and prefill it with the provided value.    For
            example, if the slug is `my-field` and the URL contains
            `&my-field=value`,    the field will be prefilled with this value
            and disabled.
        type:
          type: string
          example: number
          enum:
            - number
          description: A number input on the booking page.
      required:
        - field
        - slug
        - label
        - required
        - hidden
        - disableOnPrefill
        - type
    CustomLongTextFieldOutput_2026_06_12:
      type: object
      properties:
        field:
          type: string
          example: custom
          description: Identifies this as a custom booking field.
        slug:
          type: string
          description: Unique slug identifier for this custom field.
          example: some-slug
        label:
          type: string
          example: Your custom field label
        required:
          type: boolean
        hidden:
          type: boolean
          description: >-
            Hide this booking field from the booking page while keeping it in
            the event type's settings. Hidden fields are only returned to
            callers authorized on the event type.
        placeholder:
          type: string
        disableOnPrefill:
          type: boolean
          description: >-
            Disable this booking field if the URL contains query parameter with
            key equal to the slug and prefill it with the provided value.    For
            example, if the slug is `my-field` and the URL contains
            `&my-field=value`,    the field will be prefilled with this value
            and disabled.
        type:
          type: string
          example: longText
          enum:
            - longText
          description: A multi-line text input on the booking page.
        minLength:
          type: number
          description: Minimum character length for the long text field.
        maxLength:
          type: number
          description: Maximum character length for the long text field.
      required:
        - field
        - slug
        - label
        - required
        - hidden
        - disableOnPrefill
        - type
    CustomSelectFieldOutput_2026_06_12:
      type: object
      properties:
        field:
          type: string
          example: custom
          description: Identifies this as a custom booking field.
        slug:
          type: string
          description: Unique slug identifier for this custom field.
          example: some-slug
        label:
          type: string
          example: Your custom field label
        required:
          type: boolean
        hidden:
          type: boolean
          description: >-
            Hide this booking field from the booking page while keeping it in
            the event type's settings. Hidden fields are only returned to
            callers authorized on the event type.
        placeholder:
          type: string
        disableOnPrefill:
          type: boolean
          description: >-
            Disable this booking field if the URL contains query parameter with
            key equal to the slug and prefill it with the provided value.    For
            example, if the slug is `my-field` and the URL contains
            `&my-field=value`,    the field will be prefilled with this value
            and disabled.
        options:
          example:
            - Option 1
            - Option 2
          type: array
          items:
            type: string
        type:
          type: string
          example: select
          enum:
            - select
          description: A dropdown that allows one selection.
      required:
        - field
        - slug
        - label
        - required
        - hidden
        - disableOnPrefill
        - options
        - type
    CustomMultiSelectFieldOutput_2026_06_12:
      type: object
      properties:
        field:
          type: string
          example: custom
          description: Identifies this as a custom booking field.
        slug:
          type: string
          description: Unique slug identifier for this custom field.
          example: some-slug
        label:
          type: string
          example: Your custom field label
        required:
          type: boolean
        hidden:
          type: boolean
          description: >-
            Hide this booking field from the booking page while keeping it in
            the event type's settings. Hidden fields are only returned to
            callers authorized on the event type.
        placeholder:
          type: string
        disableOnPrefill:
          type: boolean
          description: >-
            Disable this booking field if the URL contains query parameter with
            key equal to the slug and prefill it with the provided value.    For
            example, if the slug is `my-field` and the URL contains
            `&my-field=value`,    the field will be prefilled with this value
            and disabled.
        options:
          example:
            - Option 1
            - Option 2
          type: array
          items:
            type: string
        type:
          type: string
          example: multiSelect
          enum:
            - multiSelect
          description: A list that allows multiple selections.
      required:
        - field
        - slug
        - label
        - required
        - hidden
        - disableOnPrefill
        - options
        - type
    CustomMultiEmailFieldOutput_2026_06_12:
      type: object
      properties:
        field:
          type: string
          example: custom
          description: Identifies this as a custom booking field.
        slug:
          type: string
          description: Unique slug identifier for this custom field.
          example: some-slug
        label:
          type: string
          example: Your custom field label
        required:
          type: boolean
        hidden:
          type: boolean
          description: >-
            Hide this booking field from the booking page while keeping it in
            the event type's settings. Hidden fields are only returned to
            callers authorized on the event type.
        placeholder:
          type: string
        disableOnPrefill:
          type: boolean
          description: >-
            Disable this booking field if the URL contains query parameter with
            key equal to the slug and prefill it with the provided value.    For
            example, if the slug is `my-field` and the URL contains
            `&my-field=value`,    the field will be prefilled with this value
            and disabled.
        type:
          type: string
          example: multiEmail
          enum:
            - multiEmail
          description: An input that accepts multiple email addresses.
      required:
        - field
        - slug
        - label
        - required
        - hidden
        - disableOnPrefill
        - type
    CustomCheckboxGroupFieldOutput_2026_06_12:
      type: object
      properties:
        field:
          type: string
          example: custom
          description: Identifies this as a custom booking field.
        slug:
          type: string
          description: Unique slug identifier for this custom field.
          example: some-slug
        label:
          type: string
          example: Your custom field label
        required:
          type: boolean
        hidden:
          type: boolean
          description: >-
            Hide this booking field from the booking page while keeping it in
            the event type's settings. Hidden fields are only returned to
            callers authorized on the event type.
        placeholder:
          type: string
        disableOnPrefill:
          type: boolean
          description: >-
            Disable this booking field if the URL contains query parameter with
            key equal to the slug and prefill it with the provided value.    For
            example, if the slug is `my-field` and the URL contains
            `&my-field=value`,    the field will be prefilled with this value
            and disabled.
        options:
          example:
            - Option 1
            - Option 2
          type: array
          items:
            type: string
        type:
          type: string
          example: checkboxGroup
          enum:
            - checkboxGroup
          description: A group of checkboxes that allows multiple selections.
      required:
        - field
        - slug
        - label
        - required
        - hidden
        - disableOnPrefill
        - options
        - type
    CustomRadioGroupFieldOutput_2026_06_12:
      type: object
      properties:
        field:
          type: string
          example: custom
          description: Identifies this as a custom booking field.
        slug:
          type: string
          description: Unique slug identifier for this custom field.
          example: some-slug
        label:
          type: string
          example: Your custom field label
        required:
          type: boolean
        hidden:
          type: boolean
          description: >-
            Hide this booking field from the booking page while keeping it in
            the event type's settings. Hidden fields are only returned to
            callers authorized on the event type.
        placeholder:
          type: string
        disableOnPrefill:
          type: boolean
          description: >-
            Disable this booking field if the URL contains query parameter with
            key equal to the slug and prefill it with the provided value.    For
            example, if the slug is `my-field` and the URL contains
            `&my-field=value`,    the field will be prefilled with this value
            and disabled.
        options:
          example:
            - Option 1
            - Option 2
          type: array
          items:
            type: string
        type:
          type: string
          example: radioGroup
          enum:
            - radioGroup
          description: A group of radio buttons that allows one selection.
      required:
        - field
        - slug
        - label
        - required
        - hidden
        - disableOnPrefill
        - options
        - type
    CustomCheckboxFieldOutput_2026_06_12:
      type: object
      properties:
        field:
          type: string
          example: custom
          description: Identifies this as a custom booking field.
        slug:
          type: string
          description: Unique slug identifier for this custom field.
          example: some-slug
        label:
          type: string
          example: Your custom field label
        required:
          type: boolean
        hidden:
          type: boolean
          description: >-
            Hide this booking field from the booking page while keeping it in
            the event type's settings. Hidden fields are only returned to
            callers authorized on the event type.
        placeholder:
          type: string
        disableOnPrefill:
          type: boolean
          description: >-
            Disable this booking field if the URL contains query parameter with
            key equal to the slug and prefill it with the provided value.    For
            example, if the slug is `my-field` and the URL contains
            `&my-field=value`,    the field will be prefilled with this value
            and disabled.
        type:
          type: string
          example: checkbox
          enum:
            - checkbox
          description: A single checkbox on the booking page.
      required:
        - field
        - slug
        - label
        - required
        - hidden
        - disableOnPrefill
        - type
    CustomUrlFieldOutput_2026_06_12:
      type: object
      properties:
        field:
          type: string
          example: custom
          description: Identifies this as a custom booking field.
        slug:
          type: string
          description: Unique slug identifier for this custom field.
          example: some-slug
        label:
          type: string
          example: Your custom field label
        required:
          type: boolean
        hidden:
          type: boolean
          description: >-
            Hide this booking field from the booking page while keeping it in
            the event type's settings. Hidden fields are only returned to
            callers authorized on the event type.
        placeholder:
          type: string
        disableOnPrefill:
          type: boolean
          description: >-
            Disable this booking field if the URL contains query parameter with
            key equal to the slug and prefill it with the provided value.    For
            example, if the slug is `my-field` and the URL contains
            `&my-field=value`,    the field will be prefilled with this value
            and disabled.
        type:
          type: string
          example: url
          enum:
            - url
          description: A URL input on the booking page.
      required:
        - field
        - slug
        - label
        - required
        - hidden
        - disableOnPrefill
        - type
    UnknownBookingFieldOutput_2026_06_12:
      type: object
      properties:
        field:
          type: string
          example: unknown
          enum:
            - unknown
        slug:
          type: string
          example: unknown
          enum:
            - unknown
        bookingField:
          type: string
          description: Raw booking-field data that this API version does not recognize.
      required:
        - field
        - slug
        - bookingField
    EventHostOutput:
      type: object
      properties:
        userId:
          type: number
          example: 123
        name:
          type: string
          example: Jane Doe
          description: Empty string when the host has no name.
        username:
          type: string
          example: jane
          description: Empty string when the host has no username.
        avatarUrl:
          type: string
          description: Empty string when the host has no avatar.
      required:
        - userId
        - name
        - username
        - avatarUrl
    EventPosterPaletteOutput:
      type: object
      properties:
        background:
          type: string
          description: Background hex color.
          example: '#0b1c2c'
        foreground:
          type: string
          description: Foreground hex color.
          example: '#a5d8ff'
        accent:
          type: string
          description: Accent hex color.
          example: '#1f6feb'
      required:
        - background
        - foreground
        - accent
    EventLineupPersonOutput:
      type: object
      properties:
        name:
          type: string
        role:
          type: string
          nullable: true
        avatarUrl:
          type: string
          nullable: true
        links:
          type: array
          items:
            $ref: '#/components/schemas/EventLineupPersonLinkOutput'
        media:
          type: array
          items:
            $ref: '#/components/schemas/EventLineupPersonMediaOutput'
      required:
        - name
        - role
        - avatarUrl
        - links
        - media
    EventSchedulePersonOutput:
      type: object
      properties:
        name:
          type: string
        role:
          type: string
          nullable: true
        avatarUrl:
          type: string
          nullable: true
        links:
          type: array
          items:
            $ref: '#/components/schemas/EventSchedulePersonLinkOutput'
      required:
        - name
        - role
        - avatarUrl
        - links
    EventLineupPersonLinkOutput:
      type: object
      properties:
        url:
          type: string
      required:
        - url
    EventLineupPersonMediaOutput:
      type: object
      properties:
        url:
          type: string
        label:
          type: string
          nullable: true
      required:
        - url
        - label
    EventSchedulePersonLinkOutput:
      type: object
      properties:
        url:
          type: string
      required:
        - url

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.