---
title: "Update an event type"
method: PATCH
path: "/v2/event-types/{eventTypeId}"
tags: ["Event Types"]
---

# Update an event type

`PATCH /v2/event-types/{eventTypeId}`

<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>

## Path parameters

- `eventTypeId` number, required

## Headers

- `cal-api-version` string, required
- `Authorization` string, required

## Request body

- UpdateEventTypeInput20240614
  - `lengthInMinutes` number
  - `lengthInMinutesOptions` string[] — If you want that user can choose between different lengths of the event you can specify them here. Must include the provided `lengthInMinutes`.
  - `title` string
  - `slug` string
  - `description` string
  - `bookingFields` union[] — 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.
    - union
      - NameDefaultFieldInput20240614
        - `type` string, required — only allowed value for type is `name`. Used for having 1 booking field for both first name and last name.
        - `label` string, required
        - `placeholder` string, required
        - `disableOnPrefill` boolean — 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
      - EmailDefaultFieldInput20240614
        - `type` string, required — only allowed value for type is `email`
        - `label` string, required
        - `required` object — 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 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}. If true show under event type settings but don't show this booking field in the Booker. If false show in both.
        - `hidden` boolean — 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 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}. If true show under event type settings but don't show this booking field in the Booker. If false show in both.
        - `placeholder` string, required
        - `disableOnPrefill` boolean — 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
      - TitleDefaultFieldInput20240614
        - `slug` string, required — only allowed value for type is `title`
        - `required` boolean
        - `hidden` boolean — If true show under event type settings but don't show this booking field in the Booker. If false show in both.
        - `label` string
        - `placeholder` string
        - `disableOnPrefill` boolean — 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 `&title=journey`, the title field will be prefilled with this value and disabled. In case of Booker atom need to pass 'title' to defaultFormValues prop with the desired value e.g. `defaultFormValues={{title: 'very important meeting'}}`. See guide https://cal.com/docs/platform/guides/booking-field
      - LocationDefaultFieldInput20240614
        - `slug` string, required — only allowed value for type is `location`. This booking field is displayed only when event type has 2 or more locations in order to allow person doing the booking pick the location.
        - `label` string
      - NotesDefaultFieldInput20240614
        - `slug` string, required — only allowed value for type is `notes`
        - `required` boolean
        - `hidden` boolean — If true show under event type settings but don't show this booking field in the Booker. If false show in both.
        - `label` string
        - `placeholder` string
        - `disableOnPrefill` boolean — 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 `&notes=journey`, the notes field will be prefilled with this value and disabled. In case of Booker atom need to pass 'notes' to defaultFormValues prop with the desired value e.g. `defaultFormValues={{notes: 'bring notebook and paper'}}`. See guide https://cal.com/docs/platform/guides/booking-field
      - GuestsDefaultFieldInput20240614
        - `slug` string, required — only allowed value for type is `guests`
        - `required` boolean
        - `hidden` boolean — If true show under event type settings but don't show this booking field in the Booker. If false show in both.
        - `label` string
        - `placeholder` string
        - `disableOnPrefill` boolean — 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 `&guests=bob@cal.com`, the guests field will be prefilled with this value and disabled. In case of Booker atom need to pass 'guests' to defaultFormValues prop with the desired value e.g. `defaultFormValues={{guests: ['bob@gmail.com', 'alice@gmail.com']}}`. See guide https://cal.com/docs/platform/guides/booking-field
      - RescheduleReasonDefaultFieldInput20240614
        - `slug` string, required — only allowed value for type is `rescheduleReason`
        - `required` boolean
        - `hidden` boolean — If true show under event type settings but don't show this booking field in the Booker. If false show in both.
        - `label` string
        - `placeholder` string
        - `disableOnPrefill` boolean — 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
      - PhoneFieldInput20240614
        - `type` string, required — only allowed value for type is `phone`
        - `slug` string, required — Unique identifier for the field in format `some-slug`. It is used to access response to this booking field during the booking. Special slug is `attendeePhoneNumber` - if you create a phone input field with this slug for organization team event type you can create an organization team event type that can be booked using phone without requiring an email by setting {"type": "email", "required": false, "hidden": true} to the email booking field input in the request body.
        - `label` string, required
        - `required` boolean, required
        - `placeholder` string, required
        - `disableOnPrefill` boolean — 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 `phone` and the URL contains query parameter `&phone=1234567890`, the phone 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={{phone: '+37122222222'}}`. See guide https://cal.com/docs/platform/guides/booking-field
        - `hidden` boolean, required — If true show under event type settings but don't show this booking field in the Booker. If false show in both.
      - AddressFieldInput20240614
        - `type` string, required — only allowed value for type is `address`
        - `slug` string, required — Unique identifier for the field in format `some-slug`. It is used to access response to this booking field during the booking
        - `label` string, required
        - `required` boolean, required
        - `placeholder` string, required
        - `disableOnPrefill` boolean — 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 `address` and the URL contains query parameter `&address=1234 Main St, London`, the address 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={{address: 'mainstreat 10, new york'}}`. See guide https://cal.com/docs/platform/guides/booking-field
        - `hidden` boolean, required — If true show under event type settings but don't show this booking field in the Booker. If false show in both.
      - TextFieldInput20240614
        - `type` string, required — only allowed value for type is `text`
        - `slug` string, required — Unique identifier for the field in format `some-slug`. It is used to access response to this booking field during the booking
        - `label` string, required
        - `required` boolean, required
        - `placeholder` string, required
        - `disableOnPrefill` boolean — 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` boolean, required — If true show under event type settings but don't show this booking field in the Booker. If false show in both.
      - NumberFieldInput20240614
        - `type` string, required — only allowed value for type is `number`
        - `slug` string, required — Unique identifier for the field in format `some-slug`. It is used to access response to this booking field during the booking
        - `label` string, required
        - `required` boolean, required
        - `placeholder` string, required
        - `disableOnPrefill` boolean — 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 `calories` and the URL contains query parameter `&calories=3000`, the number 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={{calories: 3000}}`. See guide https://cal.com/docs/platform/guides/booking-field
        - `hidden` boolean, required — If true show under event type settings but don't show this booking field in the Booker. If false show in both.
      - TextAreaFieldInput20240614
        - `type` string, required — only allowed value for type is `textarea`
        - `slug` string, required — Unique identifier for the field in format `some-slug`. It is used to access response to this booking field during the booking
        - `label` string, required
        - `required` boolean, required
        - `placeholder` string, required
        - `disableOnPrefill` boolean — 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` boolean, required — If true show under event type settings but don't show this booking field in the Booker. If false show in both.
      - SelectFieldInput20240614
        - `type` string, required — only allowed value for type is `select`
        - `slug` string, required — Unique identifier for the field in format `some-slug`. It is used to access response to this booking field during the booking
        - `label` string, required
        - `required` boolean, required
        - `placeholder` string, required
        - `options` string[], required
        - `disableOnPrefill` boolean — 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 `language` and options of this select field are ['english', 'italian'] and the URL contains query parameter `&language=italian`, the 'italian' will be selected and the select field will be 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={{language: 'italian'}}`. See guide https://cal.com/docs/platform/guides/booking-field
        - `hidden` boolean, required — If true show under event type settings but don't show this booking field in the Booker. If false show in both.
      - MultiSelectFieldInput20240614
        - `type` string, required — only allowed value for type is `multiselect`
        - `slug` string, required — Unique identifier for the field in format `some-slug`. It is used to access response to this booking field during the booking
        - `label` string, required
        - `required` boolean, required
        - `options` string[], required
        - `disableOnPrefill` boolean — 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 `language` and the URL contains query parameter `&language=en&language=it`, the 'en' and 'it' will be selected and the select field will be 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={{language: ['en', 'it']}}`. See guide https://cal.com/docs/platform/guides/booking-field
        - `hidden` boolean, required — If true show under event type settings but don't show this booking field in the Booker. If false show in both.
      - MultiEmailFieldInput20240614
        - `type` string, required — only allowed value for type is `multiemail`
        - `slug` string, required — Unique identifier for the field in format `some-slug`. It is used to access response to this booking field during the booking
        - `label` string, required
        - `required` boolean, required
        - `placeholder` string, required
        - `disableOnPrefill` boolean — 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 `consultants` and the URL contains query parameter `&consultants=alice@gmail.com&consultants=bob@gmail.com`, the these emails will be added and none more can be added. 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={{consultants: ['alice@gmail.com', 'bob@gmail.com']}}`. See guide https://cal.com/docs/platform/guides/booking-field
        - `hidden` boolean, required — If true show under event type settings but don't show this booking field in the Booker. If false show in both.
      - CheckboxGroupFieldInput20240614
        - `type` string, required — only allowed value for type is `checkbox`
        - `slug` string, required — Unique identifier for the field in format `some-slug`. It is used to access response to this booking field during the booking
        - `label` string, required
        - `required` boolean, required
        - `options` string[], required
        - `disableOnPrefill` boolean — 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 `notify` and the URL contains query parameter `&notify=true`, the checkbox will be selected and the checkbox field will be 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={{notify: true}}`. See guide https://cal.com/docs/platform/guides/booking-field
        - `hidden` boolean, required — If true show under event type settings but don't show this booking field in the Booker. If false show in both.
      - RadioGroupFieldInput20240614
        - `type` string, required — only allowed value for type is `radio`
        - `slug` string, required — Unique identifier for the field in format `some-slug`. It is used to access response to this booking field during the booking
        - `label` string, required
        - `required` boolean, required
        - `options` string[], required
        - `disableOnPrefill` boolean — 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 `language` and options of this select field are ['english', 'italian'] and the URL contains query parameter `&language=italian`, the 'italian' radio button will be selected and the select field will be 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={{language: 'italian'}}`. See guide https://cal.com/docs/platform/guides/booking-field
        - `hidden` boolean, required — If true show under event type settings but don't show this booking field in the Booker. If false show in both.
      - BooleanFieldInput20240614
        - `type` string, required — only allowed value for type is `boolean`
        - `slug` string, required — Unique identifier for the field in format `some-slug`. It is used to access response to this booking field during the booking
        - `label` string, required
        - `required` boolean, required
        - `disableOnPrefill` boolean — 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 `notify` and the URL contains query parameter `&notify=true`, the checkbox will be selected and the checkbox field will be 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={{notify: true}}`. See guide https://cal.com/docs/platform/guides/booking-field
        - `hidden` boolean, required — If true show under event type settings but don't show this booking field in the Booker. If false show in both.
  - `disableGuests` boolean — If true, person booking this event can't add guests via their emails.
  - `slotInterval` number — Number representing length of each slot when event is booked. By default it equal length of the event type. If event length is 60 minutes then we would have slots 9AM, 10AM, 11AM etc. but if it was changed to 30 minutes then we would have slots 9AM, 9:30AM, 10AM, 10:30AM etc. as the available times to book the 60 minute event.
  - `minimumBookingNotice` number — Minimum number of minutes before the event that a booking can be made.
  - `beforeEventBuffer` number — Extra time automatically blocked on your calendar before a meeting starts. This gives you time to prepare, review notes, or transition from your previous activity.
  - `afterEventBuffer` number — Extra time automatically blocked on your calendar after a meeting ends. This gives you time to wrap up, add notes, or decompress before your next commitment.
  - `scheduleId` number — If you want that this event has different schedule than user's default one you can specify it here.
  - `bookingLimitsCount` union — Limit how many times this event can be booked
    - BaseBookingLimitsCount20240614
      - `day` number — The number of bookings per day
      - `week` number — The number of bookings per week
      - `month` number — The number of bookings per month
      - `year` number — The number of bookings per year
      - `disabled` boolean
    - Disabled20240614
      - `disabled` boolean, required — Only acceptable value for the `disabled` property is `true`. It is used to reset the value of the property for which previously an object containing specific settings was passed.
  - `bookerActiveBookingsLimit` union — Limit the number of active bookings a booker can make for this event type.
    - BookerActiveBookingsLimit20240614
      - `maximumActiveBookings` number — The maximum number of active bookings a booker can have for this event type.
      - `offerReschedule` boolean — Whether to offer rescheduling the last active booking to the chosen time slot when limit is reached.
    - Disabled20240614
      - `disabled` boolean, required — Only acceptable value for the `disabled` property is `true`. It is used to reset the value of the property for which previously an object containing specific settings was passed.
  - `onlyShowFirstAvailableSlot` boolean — This will limit your availability for this event type to one slot per day, scheduled at the earliest available time.
  - `bookingLimitsDuration` union — Limit total amount of time that this event can be booked
    - BaseBookingLimitsDuration20240614
      - `day` number — The duration of bookings per day (must be a multiple of 15)
      - `week` number — The duration of bookings per week (must be a multiple of 15)
      - `month` number — The duration of bookings per month (must be a multiple of 15)
      - `year` number — The duration of bookings per year (must be a multiple of 15)
    - Disabled20240614
      - `disabled` boolean, required — Only acceptable value for the `disabled` property is `true`. It is used to reset the value of the property for which previously an object containing specific settings was passed.
  - `bookingWindow` union — Limit how far in the future this event can be booked
    - BusinessDaysWindow20240614
      - `type` 'businessDays' | 'calendarDays' | 'range', required — Whether the window should be business days, calendar days or a range of dates
      - `value` number, required — How many business day into the future can this event be booked
      - `rolling` boolean — Determines the behavior of the booking window: - If **true**, the window is rolling. This means the number of available days will always be equal the specified 'value' and adjust dynamically as bookings are made. For example, if 'value' is 3 and availability is only on Mondays, a booker attempting to schedule on November 10 will see slots on November 11, 18, and 25. As one of these days becomes fully booked, a new day (e.g., December 2) will open up to ensure 3 available days are always visible. - If **false**, the window is fixed. This means the booking window only considers the next 'value' days from the moment someone is trying to book. For example, if 'value' is 3, availability is only on Mondays, and the current date is November 10, the booker will only see slots on November 11 because the window is restricted to the next 3 calendar days (November 10–12).
    - CalendarDaysWindow20240614
      - `type` 'businessDays' | 'calendarDays' | 'range', required — Whether the window should be business days, calendar days or a range of dates
      - `value` number, required — How many calendar days into the future can this event be booked
      - `rolling` boolean — Determines the behavior of the booking window: - If **true**, the window is rolling. This means the number of available days will always be equal the specified 'value' and adjust dynamically as bookings are made. For example, if 'value' is 3 and availability is only on Mondays, a booker attempting to schedule on November 10 will see slots on November 11, 18, and 25. As one of these days becomes fully booked, a new day (e.g., December 2) will open up to ensure 3 available days are always visible. - If **false**, the window is fixed. This means the booking window only considers the next 'value' days from the moment someone is trying to book. For example, if 'value' is 3, availability is only on Mondays, and the current date is November 10, the booker will only see slots on November 11 because the window is restricted to the next 3 calendar days (November 10–12).
    - RangeWindow20240614
      - `type` 'businessDays' | 'calendarDays' | 'range', required — Whether the window should be business days, calendar days or a range of dates
      - `value` string[], required — Date range for when this event can be booked.
    - Disabled20240614
      - `disabled` boolean, required — Only acceptable value for the `disabled` property is `true`. It is used to reset the value of the property for which previously an object containing specific settings was passed.
  - `offsetStart` number — Offset timeslots shown to bookers by a specified number of minutes
  - `bookerLayouts` BookerLayouts20240614
    - `defaultLayout` 'month' | 'week' | 'column', required
    - `enabledLayouts` string[], required — Array of valid layouts - month, week or column
  - `confirmationPolicy` union — Specify how the booking needs to be manually confirmed before it is pushed to the integrations and a confirmation mail is sent.
    - BaseConfirmationPolicy20240614
      - `type` 'always' | 'time', required — The policy that determines when confirmation is required
      - `noticeThreshold` NoticeThreshold20240614
        - `unit` string, required — The unit of time for the notice threshold (e.g., minutes, hours)
        - `count` number, required — The time value for the notice threshold
      - `blockUnconfirmedBookingsInBooker` boolean, required — Unconfirmed bookings still block calendar slots.
    - Disabled20240614
      - `disabled` boolean, required — Only acceptable value for the `disabled` property is `true`. It is used to reset the value of the property for which previously an object containing specific settings was passed.
  - `recurrence` union — Create a recurring event type.
    - Recurrence20240614
      - `interval` number, required — Repeats every {count} week | month | year
      - `occurrences` number, required — Repeats for a maximum of {count} events
      - `frequency` 'yearly' | 'monthly' | 'weekly', required
    - Disabled20240614
      - `disabled` boolean, required — Only acceptable value for the `disabled` property is `true`. It is used to reset the value of the property for which previously an object containing specific settings was passed.
  - `requiresBookerEmailVerification` boolean
  - `hideCalendarNotes` boolean
  - `lockTimeZoneToggleOnBookingPage` boolean
  - `color` EventTypeColor20240614
    - `lightThemeHex` string, required — Color used for event types in light theme
    - `darkThemeHex` string, required — Color used for event types in dark theme
  - `seats` union — Create an event type with multiple seats.
    - Seats20240614
      - `seatsPerTimeSlot` number, required — Number of seats available per time slot
      - `showAttendeeInfo` boolean, required — Show attendee information to other guests
      - `showAvailabilityCount` boolean, required — Display the count of available seats
    - Disabled20240614
      - `disabled` boolean, required — Only acceptable value for the `disabled` property is `true`. It is used to reset the value of the property for which previously an object containing specific settings was passed.
  - `customName` string — Customizable event name with valid variables: {Event type title}, {Organiser}, {Scheduler}, {Location}, {Organiser first name}, {Scheduler first name}, {Scheduler last name}, {Event duration}, {LOCATION}, {HOST/ATTENDEE}, {HOST}, {ATTENDEE}, {USER}
  - `destinationCalendar` DestinationCalendar20240614
    - `integration` string, required — The integration type of the destination calendar. Refer to the /api/v2/calendars endpoint to retrieve the integration type of your connected calendars.
    - `externalId` string, required — The external ID of the destination calendar. Refer to the /api/v2/calendars endpoint to retrieve the external IDs of your connected calendars.
  - `useDestinationCalendarEmail` boolean
  - `hideCalendarEventDetails` boolean
  - `successRedirectUrl` string — A valid URL where the booker will redirect to, once the booking is completed successfully
  - `hideOrganizerEmail` boolean — Boolean to Hide organizer's email address from the booking screen, email notifications, and calendar events
  - `calVideoSettings` CalVideoSettings
    - `disableRecordingForOrganizer` boolean — If true, the organizer will not be able to record the meeting
    - `disableRecordingForGuests` boolean — If true, the guests will not be able to record the meeting
    - `redirectUrlOnExit` object — URL to which participants are redirected when they exit the call
    - `enableAutomaticRecordingForOrganizer` boolean — If true, enables the automatic recording for the event when organizer joins the call
    - `enableAutomaticTranscription` boolean — If true, enables the automatic transcription for the event whenever someone joins the call
    - `disableTranscriptionForGuests` boolean — If true, the guests will not be able to receive transcription of the meeting
    - `disableTranscriptionForOrganizer` boolean — If true, the organizer will not be able to receive transcription of the meeting
    - `sendTranscriptionEmails` boolean — Send emails with the transcription of the Cal Video after the meeting ends.
  - `hidden` boolean
  - `bookingRequiresAuthentication` boolean — 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` DisableCancelling20240614
    - `disabled` boolean — If true, cancelling is always disabled for this event type.
  - `disableRescheduling` DisableRescheduling20240614
    - `disabled` boolean — If true, rescheduling is always disabled for this event type.
    - `minutesBefore` number — Disable rescheduling when less than the specified number of minutes before the meeting. If set, `disabled` should be false or undefined.
  - `interfaceLanguage` '' | 'en' | 'ar' | 'az' | 'bg' | 'bn' | 'ca' | 'cs' | 'da' | 'de' | 'el' | 'es' | 'es-419' | 'eu' | 'et' | 'fi' | 'fr' | 'he' | 'hu' | 'it' | 'ja' | 'km' | 'ko' | 'nl' | 'no' | 'pl' | 'pt-BR' | 'pt' | 'ro' | 'ru' | 'sk-SK' | 'sr' | 'sv' | 'tr' | 'uk' | 'vi' | 'zh-CN' | 'zh-TW' — Set preferred language for the booking interface. Use empty string for visitor's browser language (default).
  - `allowReschedulingPastBookings` boolean — Enabling this option allows for past events to be rescheduled.
  - `allowReschedulingCancelledBookings` boolean — When enabled, users will be able to create a new booking when trying to reschedule a cancelled booking.
  - `showOptimizedSlots` boolean — Arrange time slots to optimize availability.
  - `locations` union[] — Locations where the event will take place. If not provided, cal video link will be used as the location. Note: Setting a location to a conferencing app does not install the app - the app must already be installed. Via API, only Google Meet (google-meet), Microsoft Teams (office365-video), and Zoom (zoom) can be installed. Cal Video (cal-video) is installed by default. All other conferencing apps must be connected via the Cal.diy web app and are not available for Platform plan customers. You can only set an event type location to an app that has already been installed or connected.
    - union
      - InputAddressLocation20240614
        - `type` string, required — only allowed value for type is `address`
        - `address` string, required
        - `public` boolean, required
      - InputLinkLocation20240614
        - `type` string, required — only allowed value for type is `link`
        - `link` string, required
        - `public` boolean, required
      - InputIntegrationLocation20240614
        - `type` string, required — only allowed value for type is `integration`
        - `integration` '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
      - InputPhoneLocation20240614
        - `type` string, required — only allowed value for type is `phone`
        - `phone` string, required
        - `public` boolean, required
      - InputAttendeeAddressLocation20240614
        - `type` string, required — only allowed value for type is `attendeeAddress`
      - InputAttendeePhoneLocation20240614
        - `type` string, required — only allowed value for type is `attendeePhone`
      - InputAttendeeDefinedLocation20240614
        - `type` string, required — only allowed value for type is `attendeeDefined`

## Response `200`

- UpdateEventTypeOutput20240614
  - `status` 'success' | 'error', required
  - `data` EventTypeOutput20240614, required
    - `id` number, required
    - `lengthInMinutes` number, required
    - `lengthInMinutesOptions` number[] — If you want that user can choose between different lengths of the event you can specify them here. Must include the provided `lengthInMinutes`.
    - `title` string, required
    - `slug` string, required
    - `description` string, required
    - `locations` union[], required
      - union
        - OutputAddressLocation20240614
          - `type` string, required — only allowed value for type is `address`
          - `address` string, required
          - `public` boolean, required
        - OutputLinkLocation20240614
          - `type` string, required — only allowed value for type is `link`
          - `link` string, required
          - `public` boolean, required
        - OutputIntegrationLocation20240614
          - `type` string, required — Only allowed value for type is `integration`
          - `integration` '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
          - `link` string
          - `credentialId` number — Credential ID associated with the integration
        - OutputPhoneLocation20240614
          - `type` string, required — only allowed value for type is `phone`
          - `phone` string, required
          - `public` boolean, required
        - OutputOrganizersDefaultAppLocation20240614
          - `type` string, required — only allowed value for type is `organizersDefaultApp`
        - OutputUnknownLocation20240614
          - `type` string, required — only allowed value for type is `unknown`
          - `location` string, required
    - `bookingFields` union[], required
      - union
        - NameDefaultFieldOutput20240614
          - `type` string, required — only allowed value for type is `name`. Used for having 1 booking field for both first name and last name.
          - `label` string, required
          - `placeholder` string, required
          - `disableOnPrefill` boolean — 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` object, required — This property is always true because it's a default field
          - `slug` string, required
          - `required` boolean, required
        - EmailDefaultFieldOutput20240614
          - `type` string, required — only allowed value for type is `email`
          - `label` string, required
          - `required` object — 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 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}. If true show under event type settings but don't show this booking field in the Booker. If false show in both.
          - `hidden` boolean — If true show under event type settings but don't show this booking field in the Booker. If false show in both. Can only be hidden for organization team event types when also providing attendee phone number booking field.
          - `placeholder` string, required
          - `disableOnPrefill` boolean — 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
          - `isDefault` object, required — This property is always true because it's a default field
          - `slug` string, required
        - LocationDefaultFieldOutput20240614
          - `isDefault` object, required — This property is always true because it's a default field
          - `slug` string, required — This booking field is returned only if the event type has more than one location. The purpose of this field is to allow the user to select the location where the event will take place.
          - `type` string, required
          - `required` boolean, required
          - `hidden` boolean, required — If true show under event type settings but don't show this booking field in the Booker. If false show in both.
          - `label` string, required
        - RescheduleReasonDefaultFieldOutput20240614
          - `slug` string, required — only allowed value for type is `rescheduleReason`
          - `required` boolean
          - `hidden` boolean — If true show under event type settings but don't show this booking field in the Booker. If false show in both.
          - `label` string
          - `placeholder` string
          - `disableOnPrefill` boolean — 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=busy`, the reschedule reason field will be prefilled with this value and disabled.
          - `isDefault` object, required — This property is always true because it's a default field
          - `type` string, required
        - TitleDefaultFieldOutput20240614
          - `slug` string, required — only allowed value for type is `title`
          - `required` boolean
          - `hidden` boolean — If true show under event type settings but don't show this booking field in the Booker. If false show in both.
          - `label` string
          - `placeholder` string
          - `disableOnPrefill` boolean — 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 `&title=masterclass`, the title field will be prefilled with this value and disabled.
          - `isDefault` object, required — This property is always true because it's a default field
          - `type` string, required
        - NotesDefaultFieldOutput20240614
          - `slug` string, required — only allowed value for type is `notes`
          - `required` boolean
          - `hidden` boolean — If true show under event type settings but don't show this booking field in the Booker. If false show in both.
          - `label` string
          - `placeholder` string
          - `disableOnPrefill` boolean — 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 `&notes=hello`, the notes field will be prefilled with this value and disabled.
          - `isDefault` object, required — This property is always true because it's a default field
          - `type` string, required
        - GuestsDefaultFieldOutput20240614
          - `slug` string, required — only allowed value for type is `guests`
          - `required` boolean
          - `hidden` boolean — If true show under event type settings but don't show this booking field in the Booker. If false show in both.
          - `label` string
          - `placeholder` string
          - `disableOnPrefill` boolean — 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 `&guests=lauris@cal.com`, the guests field will be prefilled with this value and disabled.
          - `isDefault` object, required — This property is always true because it's a default field
          - `type` string, required
        - PhoneFieldOutput20240614
          - `type` string, required — only allowed value for type is `phone`
          - `slug` string, required — Unique identifier for the field in format `some-slug`. It is used to access response to this booking field during the booking. Special slug is `attendeePhoneNumber` - if you create a phone input field with this slug for organization team event type you can create an organization team event type that can be booked using phone without requiring an email by setting {"type": "email", "required": false, "hidden": true} to the email booking field input in the request body.
          - `label` string, required
          - `required` boolean, required
          - `placeholder` string, required
          - `disableOnPrefill` boolean — 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 `phone` and the URL contains query parameter `&phone=1234567890`, the phone 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={{phone: '+37122222222'}}`. See guide https://cal.com/docs/platform/guides/booking-field
          - `hidden` boolean, required — If true show under event type settings but don't show this booking field in the Booker. If false show in both.
          - `isDefault` object, required — This property is always false because it's not default field but custom field
        - AddressFieldOutput20240614
          - `type` string, required — only allowed value for type is `address`
          - `slug` string, required — Unique identifier for the field in format `some-slug`. It is used to access response to this booking field during the booking
          - `label` string, required
          - `required` boolean, required
          - `placeholder` string, required
          - `disableOnPrefill` boolean — 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 `address` and the URL contains query parameter `&address=1234 Main St, London`, the address 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={{address: 'mainstreat 10, new york'}}`. See guide https://cal.com/docs/platform/guides/booking-field
          - `hidden` boolean, required — If true show under event type settings but don't show this booking field in the Booker. If false show in both.
          - `isDefault` object, required — This property is always false because it's not default field but custom field
        - TextFieldOutput20240614
          - `type` string, required — only allowed value for type is `text`
          - `slug` string, required — Unique identifier for the field in format `some-slug`. It is used to access response to this booking field during the booking
          - `label` string, required
          - `required` boolean, required
          - `placeholder` string, required
          - `disableOnPrefill` boolean — 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` boolean, required — If true show under event type settings but don't show this booking field in the Booker. If false show in both.
          - `isDefault` object, required — This property is always false because it's not default field but custom field
        - NumberFieldOutput20240614
          - `type` string, required — only allowed value for type is `number`
          - `slug` string, required — Unique identifier for the field in format `some-slug`. It is used to access response to this booking field during the booking
          - `label` string, required
          - `required` boolean, required
          - `placeholder` string, required
          - `disableOnPrefill` boolean — 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 `calories` and the URL contains query parameter `&calories=3000`, the number 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={{calories: 3000}}`. See guide https://cal.com/docs/platform/guides/booking-field
          - `hidden` boolean, required — If true show under event type settings but don't show this booking field in the Booker. If false show in both.
          - `isDefault` object, required — This property is always false because it's not default field but custom field
        - TextAreaFieldOutput20240614
          - `type` string, required — only allowed value for type is `textarea`
          - `slug` string, required — Unique identifier for the field in format `some-slug`. It is used to access response to this booking field during the booking
          - `label` string, required
          - `required` boolean, required
          - `placeholder` string, required
          - `disableOnPrefill` boolean — 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` boolean, required — If true show under event type settings but don't show this booking field in the Booker. If false show in both.
          - `isDefault` object, required — This property is always false because it's not default field but custom field
        - SelectFieldOutput20240614
          - `type` string, required — only allowed value for type is `select`
          - `slug` string, required — Unique identifier for the field in format `some-slug`. It is used to access response to this booking field during the booking
          - `label` string, required
          - `required` boolean, required
          - `placeholder` string, required
          - `options` string[], required
          - `disableOnPrefill` boolean — 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 `language` and options of this select field are ['english', 'italian'] and the URL contains query parameter `&language=italian`, the 'italian' will be selected and the select field will be 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={{language: 'italian'}}`. See guide https://cal.com/docs/platform/guides/booking-field
          - `hidden` boolean, required — If true show under event type settings but don't show this booking field in the Booker. If false show in both.
          - `isDefault` object, required — This property is always false because it's not default field but custom field
        - MultiSelectFieldOutput20240614
          - `type` string, required — only allowed value for type is `multiselect`
          - `slug` string, required — Unique identifier for the field in format `some-slug`. It is used to access response to this booking field during the booking
          - `label` string, required
          - `required` boolean, required
          - `options` string[], required
          - `disableOnPrefill` boolean — 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 `language` and the URL contains query parameter `&language=en&language=it`, the 'en' and 'it' will be selected and the select field will be 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={{language: ['en', 'it']}}`. See guide https://cal.com/docs/platform/guides/booking-field
          - `hidden` boolean, required — If true show under event type settings but don't show this booking field in the Booker. If false show in both.
          - `isDefault` object, required — This property is always false because it's not default field but custom field
        - MultiEmailFieldOutput20240614
          - `type` string, required — only allowed value for type is `multiemail`
          - `slug` string, required — Unique identifier for the field in format `some-slug`. It is used to access response to this booking field during the booking
          - `label` string, required
          - `required` boolean, required
          - `placeholder` string, required
          - `disableOnPrefill` boolean — 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 `consultants` and the URL contains query parameter `&consultants=alice@gmail.com&consultants=bob@gmail.com`, the these emails will be added and none more can be added. 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={{consultants: ['alice@gmail.com', 'bob@gmail.com']}}`. See guide https://cal.com/docs/platform/guides/booking-field
          - `hidden` boolean, required — If true show under event type settings but don't show this booking field in the Booker. If false show in both.
          - `isDefault` object, required — This property is always false because it's not default field but custom field
        - CheckboxGroupFieldOutput20240614
          - `type` string, required — only allowed value for type is `checkbox`
          - `slug` string, required — Unique identifier for the field in format `some-slug`. It is used to access response to this booking field during the booking
          - `label` string, required
          - `required` boolean, required
          - `options` string[], required
          - `disableOnPrefill` boolean — 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 `notify` and the URL contains query parameter `&notify=true`, the checkbox will be selected and the checkbox field will be 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={{notify: true}}`. See guide https://cal.com/docs/platform/guides/booking-field
          - `hidden` boolean, required — If true show under event type settings but don't show this booking field in the Booker. If false show in both.
          - `isDefault` object, required — This property is always false because it's not default field but custom field
        - RadioGroupFieldOutput20240614
          - `type` string, required — only allowed value for type is `radio`
          - `slug` string, required — Unique identifier for the field in format `some-slug`. It is used to access response to this booking field during the booking
          - `label` string, required
          - `required` boolean, required
          - `options` string[], required
          - `disableOnPrefill` boolean — 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 `language` and options of this select field are ['english', 'italian'] and the URL contains query parameter `&language=italian`, the 'italian' radio button will be selected and the select field will be 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={{language: 'italian'}}`. See guide https://cal.com/docs/platform/guides/booking-field
          - `hidden` boolean, required — If true show under event type settings but don't show this booking field in the Booker. If false show in both.
          - `isDefault` object, required — This property is always false because it's not default field but custom field
        - BooleanFieldOutput20240614
          - `type` string, required — only allowed value for type is `boolean`
          - `slug` string, required — Unique identifier for the field in format `some-slug`. It is used to access response to this booking field during the booking
          - `label` string, required
          - `required` boolean, required
          - `disableOnPrefill` boolean — 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 `notify` and the URL contains query parameter `&notify=true`, the checkbox will be selected and the checkbox field will be 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={{notify: true}}`. See guide https://cal.com/docs/platform/guides/booking-field
          - `hidden` boolean, required — If true show under event type settings but don't show this booking field in the Booker. If false show in both.
          - `isDefault` object, required — This property is always false because it's not default field but custom field
        - UrlFieldOutput20240614
          - `type` string, required — only allowed value for type is `url`
          - `slug` string, required — Unique identifier for the field in format `some-slug`. It is used to access response to this booking field during the booking
          - `label` string, required
          - `required` boolean, required
          - `placeholder` string, required
          - `disableOnPrefill` boolean — 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 `videourl` and the URL contains query parameter `&videourl=https://youtube.com/abc`the url 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={{videourl: 'https://caltube.com/123'}}`. See guide https://cal.com/docs/platform/guides/booking-field
          - `hidden` boolean, required — If true show under event type settings but don't show this booking field in the Booker. If false show in both.
          - `isDefault` object, required — This property is always false because it's not default field but custom field
    - `disableGuests` boolean, required
    - `slotInterval` object, nullable
    - `minimumBookingNotice` number
    - `beforeEventBuffer` number
    - `afterEventBuffer` number
    - `recurrence` Recurrence20240614, required
      - `interval` number, required — Repeats every {count} week | month | year
      - `occurrences` number, required — Repeats for a maximum of {count} events
      - `frequency` 'yearly' | 'monthly' | 'weekly', required
    - `metadata` object, required
    - `price` number, required
    - `currency` string, required
    - `lockTimeZoneToggleOnBookingPage` boolean, required
    - `seatsPerTimeSlot` object, nullable
    - `forwardParamsSuccessRedirect` object, nullable, required
    - `successRedirectUrl` object, nullable, required
    - `isInstantEvent` boolean, required
    - `seatsShowAvailabilityCount` boolean, nullable
    - `scheduleId` number, nullable, required
    - `bookingLimitsCount` object
    - `bookerActiveBookingsLimit` BookerActiveBookingsLimitOutput20240614
      - `maximumActiveBookings` number — The maximum number of active bookings a booker can have for this event type.
      - `offerReschedule` boolean — Whether to offer rescheduling the last active booking to the chosen time slot when limit is reached.
    - `onlyShowFirstAvailableSlot` boolean
    - `bookingLimitsDuration` object
    - `bookingWindow` union[] — Limit how far in the future this event can be booked
      - union
        - BusinessDaysWindow20240614
          - `type` 'businessDays' | 'calendarDays' | 'range', required — Whether the window should be business days, calendar days or a range of dates
          - `value` number, required — How many business day into the future can this event be booked
          - `rolling` boolean — Determines the behavior of the booking window: - If **true**, the window is rolling. This means the number of available days will always be equal the specified 'value' and adjust dynamically as bookings are made. For example, if 'value' is 3 and availability is only on Mondays, a booker attempting to schedule on November 10 will see slots on November 11, 18, and 25. As one of these days becomes fully booked, a new day (e.g., December 2) will open up to ensure 3 available days are always visible. - If **false**, the window is fixed. This means the booking window only considers the next 'value' days from the moment someone is trying to book. For example, if 'value' is 3, availability is only on Mondays, and the current date is November 10, the booker will only see slots on November 11 because the window is restricted to the next 3 calendar days (November 10–12).
        - CalendarDaysWindow20240614
          - `type` 'businessDays' | 'calendarDays' | 'range', required — Whether the window should be business days, calendar days or a range of dates
          - `value` number, required — How many calendar days into the future can this event be booked
          - `rolling` boolean — Determines the behavior of the booking window: - If **true**, the window is rolling. This means the number of available days will always be equal the specified 'value' and adjust dynamically as bookings are made. For example, if 'value' is 3 and availability is only on Mondays, a booker attempting to schedule on November 10 will see slots on November 11, 18, and 25. As one of these days becomes fully booked, a new day (e.g., December 2) will open up to ensure 3 available days are always visible. - If **false**, the window is fixed. This means the booking window only considers the next 'value' days from the moment someone is trying to book. For example, if 'value' is 3, availability is only on Mondays, and the current date is November 10, the booker will only see slots on November 11 because the window is restricted to the next 3 calendar days (November 10–12).
        - RangeWindow20240614
          - `type` 'businessDays' | 'calendarDays' | 'range', required — Whether the window should be business days, calendar days or a range of dates
          - `value` string[], required — Date range for when this event can be booked.
    - `bookerLayouts` BookerLayouts20240614
      - `defaultLayout` 'month' | 'week' | 'column', required
      - `enabledLayouts` string[], required — Array of valid layouts - month, week or column
    - `confirmationPolicy` object
    - `requiresBookerEmailVerification` boolean
    - `hideCalendarNotes` boolean
    - `color` EventTypeColor20240614
      - `lightThemeHex` string, required — Color used for event types in light theme
      - `darkThemeHex` string, required — Color used for event types in dark theme
    - `seats` Seats20240614
      - `seatsPerTimeSlot` number, required — Number of seats available per time slot
      - `showAttendeeInfo` boolean, required — Show attendee information to other guests
      - `showAvailabilityCount` boolean, required — Display the count of available seats
    - `offsetStart` number
    - `customName` string
    - `destinationCalendar` DestinationCalendar20240614
      - `integration` string, required — The integration type of the destination calendar. Refer to the /api/v2/calendars endpoint to retrieve the integration type of your connected calendars.
      - `externalId` string, required — The external ID of the destination calendar. Refer to the /api/v2/calendars endpoint to retrieve the external IDs of your connected calendars.
    - `useDestinationCalendarEmail` boolean
    - `hideCalendarEventDetails` boolean
    - `hideOrganizerEmail` boolean — Boolean to Hide organizer's email address from the booking screen, email notifications, and calendar events
    - `calVideoSettings` CalVideoSettings
      - `disableRecordingForOrganizer` boolean — If true, the organizer will not be able to record the meeting
      - `disableRecordingForGuests` boolean — If true, the guests will not be able to record the meeting
      - `redirectUrlOnExit` object — URL to which participants are redirected when they exit the call
      - `enableAutomaticRecordingForOrganizer` boolean — If true, enables the automatic recording for the event when organizer joins the call
      - `enableAutomaticTranscription` boolean — If true, enables the automatic transcription for the event whenever someone joins the call
      - `disableTranscriptionForGuests` boolean — If true, the guests will not be able to receive transcription of the meeting
      - `disableTranscriptionForOrganizer` boolean — If true, the organizer will not be able to receive transcription of the meeting
      - `sendTranscriptionEmails` boolean — Send emails with the transcription of the Cal Video after the meeting ends.
    - `hidden` boolean, required
    - `bookingRequiresAuthentication` boolean, required — 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` DisableCancellingOutput20240614
      - `disabled` boolean — If true, cancelling is always disabled for this event type.
    - `disableRescheduling` DisableReschedulingOutput20240614
      - `disabled` boolean — If true, rescheduling is always disabled for this event type.
      - `minutesBefore` number — Rescheduling is disabled when less than the specified number of minutes before the meeting.
    - `interfaceLanguage` string, nullable — Set preferred language for the booking interface.
    - `allowReschedulingPastBookings` boolean — Enabling this option allows for past events to be rescheduled.
    - `allowReschedulingCancelledBookings` boolean, nullable — When enabled, users will be able to create a new booking when trying to reschedule a cancelled booking.
    - `showOptimizedSlots` boolean, nullable — Arrange time slots to optimize availability.
    - `ownerId` number, required
    - `users` string[], required
    - `bookingUrl` string, uri, required — Full URL to the booking page for this event type

## Changes

- **2026-01-12** (v2) `9d1bb5dbd415` — 1 info
  - added the required property `data/bookingUrl` to the response with the `200` status
- **2026-01-07** (v2) `3c27715b143e` — 14 info
  - added the new optional request property `allowReschedulingCancelledBookings`
  - added the new optional request property `allowReschedulingPastBookings`
  - added the new optional request property `calVideoSettings/allOf[#/components/schemas/CalVideoSettings]/sendTranscriptionEmails`
  - added the new optional request property `disableCancelling`
  - …10 more
- **2025-12-05** (v2) `a5a0b1bbade2` — 25 info
  - added the new `campfire-video` enum value to the request property `locations/items/oneOf[#/components/schemas/InputIntegrationLocation_2024_06_14]/integration`
  - added the new `demodesk-video` enum value to the request property `locations/items/oneOf[#/components/schemas/InputIntegrationLocation_2024_06_14]/integration`
  - added the new `discord-video` enum value to the request property `locations/items/oneOf[#/components/schemas/InputIntegrationLocation_2024_06_14]/integration`
  - added the new `eightxeight-video` enum value to the request property `locations/items/oneOf[#/components/schemas/InputIntegrationLocation_2024_06_14]/integration`
  - …21 more
- **2025-10-15** (v2) `d1fbc44165b9` — 2 info
  - added the new optional request property `bookerActiveBookingsLimit`
  - added the optional property `data/bookerActiveBookingsLimit` to the response with the `200` status
- …earlier changes not shown

[Full history](https://skmtc.dev/calcom/apis/cal-diy-api-v2/changes/v2/event-types/:eventTypeId/patch.md)

---

[API](https://skmtc.dev/calcom/apis/cal-diy-api-v2.md) · [All operations](https://skmtc.dev/calcom/apis/cal-diy-api-v2/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/calcom/cal-diy-api-v2/revisions/16de9d3eb7b3/schema)
