Cal.com Event Types API

The Event Types API from Cal.com — 2 operation(s) for event types.

Operations 5

POST /v2/event-types Create an event type #
GET /v2/event-types Get all event types #
GET /v2/event-types/{eventTypeId} Get an event type #
PATCH /v2/event-types/{eventTypeId} Update an event type #
DELETE /v2/event-types/{eventTypeId} Delete an event type #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cal-com-event-types-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cal-com-event-types-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Cal.diy API v2 Api Keys Event Types API
  description: ''
  version: 1.0.0
  contact: {}
servers: []
tags:
- name: Event Types
paths:
  /v2/event-types:
    post:
      operationId: EventTypesController_2024_06_14_createEventType
      summary: Create an event type
      description: <Note>Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint.</Note>
      parameters:
      - name: cal-api-version
        in: header
        description: Must be set to 2024-06-14. If not set to this value, the endpoint will default to an older version.
        required: true
        schema:
          type: string
          default: '2024-06-14'
      - name: Authorization
        in: header
        description: value must be `Bearer <token>` where `<token>` is api key prefixed with cal_ or managed user access token
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateEventTypeInput_2024_06_14'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateEventTypeOutput_2024_06_14'
      tags:
      - Event Types
    get:
      operationId: EventTypesController_2024_06_14_getEventTypes
      summary: Get all event types
      description: "Hidden event types are returned only if authentication is provided and it belongs to the event type owner.\n      \n      Use the optional `sortCreatedAt` query parameter to order results by creation date (by ID). Accepts \"asc\" (oldest first) or \"desc\" (newest first). When not provided, no explicit ordering is applied.\n      \n      <Note>Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint.</Note>\n      "
      parameters:
      - name: cal-api-version
        in: header
        description: Must be set to 2024-06-14. If not set to this value, the endpoint will default to an older version.
        required: true
        schema:
          type: string
          default: '2024-06-14'
      - name: username
        required: false
        in: query
        description: The username of the user to get event types for. If only username provided will get all event types.
        schema:
          type: string
      - name: eventSlug
        required: false
        in: query
        description: Slug of event type to return. Notably, if eventSlug is provided then username must be provided too, because multiple users can have event with same slug.
        schema:
          type: string
      - name: usernames
        required: false
        in: query
        description: Get dynamic event type for multiple usernames separated by comma. e.g `usernames=alice,bob`
        schema:
          type: string
      - name: orgSlug
        required: false
        in: query
        description: slug of the user's organization if he is in one, orgId is not required if using this parameter
        schema:
          type: string
      - name: orgId
        required: false
        in: query
        description: ID of the organization of the user you want the get the event-types of, orgSlug is not needed when using this parameter
        schema:
          type: number
      - name: sortCreatedAt
        required: false
        in: query
        description: Sort event types by creation date. When not provided, no explicit ordering is applied.
        schema:
          enum:
          - asc
          - desc
          type: string
      - name: Authorization
        in: header
        description: value must be `Bearer <token>` where `<token>` is api key prefixed with cal_ or managed user access token
        required: false
        schema:
          type: string
      - name: x-cal-secret-key
        in: header
        description: For platform customers - OAuth client secret key
        required: false
        schema:
          type: string
      - name: x-cal-client-id
        in: header
        description: For platform customers - OAuth client ID
        required: false
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEventTypesOutput_2024_06_14'
      tags:
      - Event Types
  /v2/event-types/{eventTypeId}:
    get:
      operationId: EventTypesController_2024_06_14_getEventTypeById
      summary: Get an event type
      description: "<Note>Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint.</Note>\n    \n    Access control: This endpoint fetches an event type by ID and returns it only if the authenticated user is authorized. Authorization is granted to:\n    - System admins\n    - The event type owner\n    - Hosts of the event type or users assigned to the event type\n    - Team admins/owners of the team that owns the team event type\n    - Organization admins/owners of the event type owner's organization\n    - Organization admins/owners of the team's parent organization\n\n    Note: Update and delete endpoints remain restricted to the event type owner only."
      parameters:
      - name: cal-api-version
        in: header
        description: Must be set to 2024-06-14. If not set to this value, the endpoint will default to an older version.
        required: true
        schema:
          type: string
          default: '2024-06-14'
      - name: eventTypeId
        required: true
        in: path
        schema:
          type: string
      - name: Authorization
        in: header
        description: value must be `Bearer <token>` where `<token>` is api key prefixed with cal_ or managed user access token
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEventTypeOutput_2024_06_14'
      tags:
      - Event Types
    patch:
      operationId: EventTypesController_2024_06_14_updateEventType
      summary: Update an event type
      description: <Note>Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint.</Note>
      parameters:
      - name: cal-api-version
        in: header
        description: Must be set to 2024-06-14. If not set to this value, the endpoint will default to an older version.
        required: true
        schema:
          type: string
          default: '2024-06-14'
      - name: eventTypeId
        required: true
        in: path
        schema:
          type: number
      - name: Authorization
        in: header
        description: value must be `Bearer <token>` where `<token>` is api key prefixed with cal_ or managed user access token
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateEventTypeInput_2024_06_14'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateEventTypeOutput_2024_06_14'
      tags:
      - Event Types
    delete:
      operationId: EventTypesController_2024_06_14_deleteEventType
      summary: Delete an event type
      description: <Note>Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint.</Note>
      parameters:
      - name: cal-api-version
        in: header
        description: Must be set to 2024-06-14. If not set to this value, the endpoint will default to an older version.
        required: true
        schema:
          type: string
          default: '2024-06-14'
      - name: eventTypeId
        required: true
        in: path
        schema:
          type: number
      - name: Authorization
        in: header
        description: value must be `Bearer <token>` where `<token>` is api key prefixed with cal_ or managed user access token
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteEventTypeOutput_2024_06_14'
      tags:
      - Event Types
components:
  schemas:
    NameDefaultFieldOutput_2024_06_14:
      type: object
      properties:
        type:
          type: string
          example: name
          description: only allowed value for type is `name`. Used for having 1 booking field for both first name and last name.
          default: name
        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 URL contains query parameter `&name=bob`,      the name field will be prefilled with this value and disabled. In case of Booker atom need to pass ''name'' to defaultFormValues prop with the desired value e.g. `defaultFormValues={{name: ''bob''}}`. See guide https://cal.com/docs/platform/guides/booking-fields'
        isDefault:
          type: object
          description: This property is always true because it's a default field
          example: true
          default: true
        slug:
          type: string
          default: name
        required:
          type: boolean
      required:
      - type
      - label
      - placeholder
      - isDefault
      - slug
      - required
    InputAttendeePhoneLocation_2024_06_14:
      type: object
      properties:
        type:
          type: string
          example: attendeePhone
          description: only allowed value for type is `attendeePhone`
      required:
      - type
    EmailDefaultFieldInput_2024_06_14:
      type: object
      properties:
        type:
          type: string
          example: email
          description: only allowed value for type is `email`
        label:
          type: string
        required:
          type: object
          description: "Can be set to false only for organization team event types and if you also pass booking field {type: \"phone\", slug: \"attendeePhoneNumber\", required: true, hidden: false, label: \"whatever label\"} of booking field type PhoneFieldInput_2024_06_14 - this is done\n      to enable phone only bookings where during the booking attendee can provide only their phone number and not provide email, so you must pass to the email booking field {hidden: true, required: false}.\n      If true show under event type settings but don't show this booking field in the Booker. If false show in both."
        hidden:
          type: boolean
          description: "Can be set to true only for organization team event types and if you also pass booking field {type: \"phone\", slug: \"attendeePhoneNumber\", required: true, hidden: false, label: \"whatever label\"} of booking field type PhoneFieldInput_2024_06_14 - this is done\n      to enable phone only bookings where during the booking attendee can provide only their phone number and not provide email, so you must pass to the email booking field {hidden: true, required: false}.\n      If true show under event type settings but don't show this booking field in the Booker. If false show in both."
        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 URL contains query parameter `&email=bob@gmail.com`,      the email field will be prefilled with this value and disabled. In case of Booker atom need to pass ''email'' to defaultFormValues prop with the desired value e.g. `defaultFormValues={{email: ''bob@gmail.com''}}`. See guide https://cal.com/docs/platform/guides/booking-field'
      required:
      - type
      - label
      - placeholder
    OutputAddressLocation_2024_06_14:
      type: object
      properties:
        type:
          type: string
          example: address
          description: only allowed value for type is `address`
        address:
          type: string
          example: 123 Example St, City, Country
        public:
          type: boolean
      required:
      - type
      - address
      - public
    BusinessDaysWindow_2024_06_14:
      type: object
      properties:
        type:
          type: string
          enum:
          - businessDays
          - calendarDays
          - range
          description: Whether the window should be business days, calendar days or a range of dates
        value:
          type: number
          example: 5
          description: How many business day into the future can this event be booked
        rolling:
          type: boolean
          example: true
          description: "\n      Determines the behavior of the booking window:\n      - If **true**, the window is rolling. This means the number of available days will always be equal the specified 'value' \n        and adjust dynamically as bookings are made. For example, if 'value' is 3 and availability is only on Mondays, \n        a booker attempting to schedule on November 10 will see slots on November 11, 18, and 25. As one of these days \n        becomes fully booked, a new day (e.g., December 2) will open up to ensure 3 available days are always visible.\n      - If **false**, the window is fixed. This means the booking window only considers the next 'value' days from the\n        moment someone is trying to book. For example, if 'value' is 3, availability is only on Mondays, and the current \n        date is November 10, the booker will only see slots on November 11 because the window is restricted to the next \n        3 calendar days (November 10–12).\n    "
      required:
      - type
      - value
    TextAreaFieldInput_2024_06_14:
      type: object
      properties:
        type:
          type: string
          example: textarea
          description: only allowed value for type is `textarea`
        slug:
          type: string
          description: Unique identifier for the field in format `some-slug`. It is used to access response to this booking field during the booking
          example: some-slug
        label:
          type: string
          example: Please enter detailed information
        required:
          type: boolean
        placeholder:
          type: string
          example: e.g., Detailed description here...
        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 `reflection` and the URL contains query parameter `&reflection=Today I shipped a feature`,      the text area will be prefilled with this value and disabled. In case of Booker atom need to pass slug you used for this booking field to defaultFormValues prop with the desired value  e.g. `defaultFormValues={{reflection: ''Today i shipped a feature''}}`. See guide https://cal.com/docs/platform/guides/booking-field'
        hidden:
          type: boolean
          description: If true show under event type settings but don't show this booking field in the Booker. If false show in both.
      required:
      - type
      - slug
      - label
      - required
      - placeholder
      - hidden
    NameDefaultFieldInput_2024_06_14:
      type: object
      properties:
        type:
          type: string
          example: name
          description: only allowed value for type is `name`. Used for having 1 booking field for both first name and last name.
        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 URL contains query parameter `&name=bob`,      the name field will be prefilled with this value and disabled. In case of Booker atom need to pass ''name'' to defaultFormValues prop with the desired value e.g. `defaultFormValues={{name: ''bob''}}`. See guide https://cal.com/docs/platform/guides/booking-fields'
      required:
      - type
      - label
      - placeholder
    TextFieldInput_2024_06_14:
      type: object
      properties:
        type:
          type: string
          example: text
          description: only allowed value for type is `text`
        slug:
          type: string
          description: Unique identifier for the field in format `some-slug`. It is used to access response to this booking field during the booking
          example: some-slug
        label:
          type: string
          example: Please enter your text
        required:
          type: boolean
        placeholder:
          type: string
          example: e.g., Enter text here
        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 `friend` and the URL contains query parameter `&friend=bob`,      the text field will be prefilled with this value and disabled.  In case of Booker atom need to pass slug you used for this booking field to defaultFormValues prop with the desired value e.g. `defaultFormValues={{friend: ''bob''}}`. See guide https://cal.com/docs/platform/guides/booking-field'
        hidden:
          type: boolean
          description: If true show under event type settings but don't show this booking field in the Booker. If false show in both.
      required:
      - type
      - slug
      - label
      - required
      - placeholder
      - hidden
    RangeWindow_2024_06_14:
      type: object
      properties:
        type:
          type: string
          enum:
          - businessDays
          - calendarDays
          - range
          description: Whether the window should be business days, calendar days or a range of dates
        value:
          example:
          - '2030-09-05'
          - '2030-09-09'
          description: Date range for when this event can be booked.
          type: array
          items:
            type: string
      required:
      - type
      - value
    InputIntegrationLocation_2024_06_14:
      type: object
      properties:
        type:
          type: string
          example: integration
          description: only allowed value for type is `integration`
        integration:
          type: string
          example: cal-video
          enum:
          - cal-video
          - google-meet
          - zoom
          - whereby-video
          - whatsapp-video
          - webex-video
          - telegram-video
          - tandem
          - sylaps-video
          - skype-video
          - sirius-video
          - signal-video
          - shimmer-video
          - salesroom-video
          - roam-video
          - riverside-video
          - ping-video
          - office365-video
          - mirotalk-video
          - jitsi
          - jelly-video
          - jelly-conferencing
          - huddle
          - facetime-video
          - element-call-video
          - eightxeight-video
          - discord-video
          - demodesk-video
          - campfire-video
      required:
      - type
      - integration
    InputLinkLocation_2024_06_14:
      type: object
      properties:
        type:
          type: string
          example: link
          description: only allowed value for type is `link`
        link:
          type: string
          example: https://customvideo.com/join/123456
        public:
          type: boolean
      required:
      - type
      - link
      - public
    BookerLayouts_2024_06_14:
      type: object
      properties:
        defaultLayout:
          type: string
          enum:
          - month
          - week
          - column
        enabledLayouts:
          type: array
          description: Array of valid layouts - month, week or column
          items:
            type: string
            enum:
            - month
            - week
            - column
      required:
      - defaultLayout
      - enabledLayouts
    RescheduleReasonDefaultFieldInput_2024_06_14:
      type: object
      properties:
        slug:
          type: string
          example: rescheduleReason
          description: only allowed value for type is `rescheduleReason`
        required:
          type: boolean
        hidden:
          type: boolean
          description: If true show under event type settings but don't show this booking field in the Booker. If false show in both.
        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 URL contains query parameter `&rescheduleReason=travel`,      the rescheduleReason field will be prefilled with this value and disabled. In case of Booker atom need to pass ''rescheduleReason'' to defaultFormValues prop with the desired value e.g. `defaultFormValues={{rescheduleReason: ''bob''}}`. See guide https://cal.com/docs/platform/guides/booking-field'
      required:
      - slug
    InputAddressLocation_2024_06_14:
      type: object
      properties:
        type:
          type: string
          example: address
          description: only allowed value for type is `address`
        address:
          type: string
          example: 123 Example St, City, Country
        public:
          type: boolean
      required:
      - type
      - address
      - public
    TeamEventTypeOutput_2024_06_14:
      type: object
      properties:
        id:
          type: number
          example: 1
        lengthInMinutes:
          type: number
          example: 60
        lengthInMinutesOptions:
          example:
          - 15
          - 30
          - 60
          description: If you want that user can choose between different lengths of the event you can specify them here. Must include the provided `lengthInMinutes`.
          type: array
          items:
            type: number
        title:
          type: string
          example: Learn the secrets of masterchief!
        slug:
          type: string
          example: learn-the-secrets-of-masterchief
        description:
          type: string
          example: Discover the culinary wonders of Argentina by making the best flan ever!
        locations:
          type: array
          items:
            oneOf:
            - $ref: '#/components/schemas/OutputAddressLocation_2024_06_14'
            - $ref: '#/components/schemas/OutputLinkLocation_2024_06_14'
            - $ref: '#/components/schemas/OutputIntegrationLocation_2024_06_14'
            - $ref: '#/components/schemas/OutputPhoneLocation_2024_06_14'
            - $ref: '#/components/schemas/OutputOrganizersDefaultAppLocation_2024_06_14'
            - $ref: '#/components/schemas/OutputUnknownLocation_2024_06_14'
        bookingFields:
          type: array
          items:
            oneOf:
            - $ref: '#/components/schemas/NameDefaultFieldOutput_2024_06_14'
            - $ref: '#/components/schemas/EmailDefaultFieldOutput_2024_06_14'
            - $ref: '#/components/schemas/LocationDefaultFieldOutput_2024_06_14'
            - $ref: '#/components/schemas/RescheduleReasonDefaultFieldOutput_2024_06_14'
            - $ref: '#/components/schemas/TitleDefaultFieldOutput_2024_06_14'
            - $ref: '#/components/schemas/NotesDefaultFieldOutput_2024_06_14'
            - $ref: '#/components/schemas/GuestsDefaultFieldOutput_2024_06_14'
            - $ref: '#/components/schemas/PhoneFieldOutput_2024_06_14'
            - $ref: '#/components/schemas/AddressFieldOutput_2024_06_14'
            - $ref: '#/components/schemas/TextFieldOutput_2024_06_14'
            - $ref: '#/components/schemas/NumberFieldOutput_2024_06_14'
            - $ref: '#/components/schemas/TextAreaFieldOutput_2024_06_14'
            - $ref: '#/components/schemas/SelectFieldOutput_2024_06_14'
            - $ref: '#/components/schemas/MultiSelectFieldOutput_2024_06_14'
            - $ref: '#/components/schemas/MultiEmailFieldOutput_2024_06_14'
            - $ref: '#/components/schemas/CheckboxGroupFieldOutput_2024_06_14'
            - $ref: '#/components/schemas/RadioGroupFieldOutput_2024_06_14'
            - $ref: '#/components/schemas/BooleanFieldOutput_2024_06_14'
            - $ref: '#/components/schemas/UrlFieldOutput_2024_06_14'
        disableGuests:
          type: boolean
        slotInterval:
          type:
          - object
          - 'null'
          example: 60
        minimumBookingNotice:
          type: number
          example: 0
        beforeEventBuffer:
          type: number
          example: 0
        afterEventBuffer:
          type: number
          example: 0
        recurrence:
          allOf:
          - $ref: '#/components/schemas/Recurrence_2024_06_14'
        metadata:
          type: object
        price:
          type: number
        currency:
          type: string
        lockTimeZoneToggleOnBookingPage:
          type: boolean
        seatsPerTimeSlot:
          type:
          - object
          - 'null'
        forwardParamsSuccessRedirect:
          type:
          - object
          - 'null'
        successRedirectUrl:
          type:
          - object
          - 'null'
        isInstantEvent:
          type: boolean
        seatsShowAvailabilityCount:
          type:
          - boolean
          - 'null'
        scheduleId:
          type:
          - number
          - 'null'
        bookingLimitsCount:
          type: object
        bookerActiveBookingsLimit:
          $ref: '#/components/schemas/BookerActiveBookingsLimitOutput_2024_06_14'
        onlyShowFirstAvailableSlot:
          type: boolean
        bookingLimitsDuration:
          type: object
        bookingWindow:
          type: array
          description: Limit how far in the future this event can be booked
          items:
            oneOf:
            - $ref: '#/components/schemas/BusinessDaysWindow_2024_06_14'
            - $ref: '#/components/schemas/CalendarDaysWindow_2024_06_14'
            - $ref: '#/components/schemas/RangeWindow_2024_06_14'
        bookerLayouts:
          $ref: '#/components/schemas/BookerLayouts_2024_06_14'
        confirmationPolicy:
          type: object
        requiresBookerEmailVerification:
          type: boolean
        hideCalendarNotes:
          type: boolean
        color:
          $ref: '#/components/schemas/EventTypeColor_2024_06_14'
        seats:
          $ref: '#/components/schemas/Seats_2024_06_14'
        offsetStart:
          type: number
        customName:
          type: string
        destinationCalendar:
          $ref: '#/components/schemas/DestinationCalendar_2024_06_14'
        useDestinationCalendarEmail:
          type: boolean
        hideCalendarEventDetails:
          type: boolean
        hideOrganizerEmail:
          type: boolean
          description: Boolean to Hide organizer's email address from the booking screen, email notifications, and calendar events
        calVideoSettings:
          description: Cal video settings for the event type
          allOf:
          - $ref: '#/components/schemas/CalVideoSettings'
        hidden:
          type: boolean
        bookingRequiresAuthentication:
          type: boolean
          description: Boolean to require authentication for booking this event type via api. If true, only authenticated users who are the event-type owner or org/team admin/owner can book this event type.
        disableCancelling:
          description: Settings for disabling cancelling of this event type.
          allOf:
          - $ref: '#/components/schemas/DisableCancellingOutput_2024_06_14'
        disableRescheduling:
          description: Settings for disabling rescheduling of this event type. Can be always disabled or disabled when less than X minutes before the meeting.
          allOf:
          - $ref: '#/components/schemas/DisableReschedulingOutput_2024_06_14'
        interfaceLanguage:
          type:
          - string
          - 'null'
          description: Set preferred language for the booking interface.
        allowReschedulingPastBookings:
          type: boolean
          description: Enabling this option allows for past events to be rescheduled.
        allowReschedulingCancelledBookings:
          type:
          - boolean
          - 'null'
          description: When enabled, users will be able to create a new booking when trying to reschedule a cancelled booking.
        showOptimizedSlots:
          type:
          - boolean
          - 'null'
          description: Arrange time slots to optimize availability.
        teamId:
          type: number
        ownerId:
          type:
          - object
          - 'null'
        parentEventTypeId:
          type:
          - object
          - 'null'
          description: For managed event types, parent event type is the event type that this event type is based on
        hosts:
          type: array
          items:
            type: string
        assignAllTeamMembers:
          type: boolean
        schedulingType:
          type: string
          enum:
          - roundRobin
          - collective
          - managed
        team:
          $ref: '#/components/schemas/EventTypeTeam'
        emailSettings:
          description: Email settings for this event type. Only available for organization team event types.
          allOf:
          - $ref: '#/components/schemas/EmailSettings_2024_06_14'
        rescheduleWithSameRoundRobinHost:
          type: boolean
          description: Rescheduled events will be assigned to the same host as initially scheduled.
      required:
      - id
      - lengthInMinutes
      - title
      - slug
      - description
      - locations
      - bookingFields
      - disableGuests
      - recurrence
      - metadata
      - price
      - currency
      - lockTimeZoneToggleOnBookingPage
      - forwardParamsSuccessRedirect
      - successRedirectUrl
      - isInstantEvent
      - scheduleId
      - hidden
      - bookingRequiresAuthentication
      - teamId
      - hosts
      - schedulingType
      - team
    UpdateEventTypeInput_2024_06_14:
      type: object
      properties:
        lengthInMinutes:
          type: number
          example: 60
        lengthInMinutesOptions:
          example:
          - 15
          - 30
          - 60
          description: If you want that user can choose between different lengths of the event you can specify them here. Must include the provided `lengthInMinutes`.
          type: array
          items:
            type: string
        title:
          type: string
          example: Learn the secrets of masterchief!
        slug:
          type: string
          example: learn-the-secrets-of-masterchief
        description:
          type: string
          example: Discover the culinary wonders of the Argentina by making the best flan ever!
        bookingFields:
          type: array
          description: Complete set of booking form fields. This array replaces all existing booking fields. To modify existing fields, first fetch the current event type, then include all desired fields in this array. Sending only one field will remove all other custom fields, keeping only default fields plus the provided one.
          items:
            oneOf:
            - $ref: '#/components/schemas/NameDefaultFieldInput_2024_06_14'
        

# --- truncated at 32 KB (124 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cal-com/refs/heads/main/openapi/cal-com-event-types-api-openapi.yml