calcom.updateTeamEventType updates one team-owned Cal.com event type.
automations/update-team-event-type.automation.ts
import { automation, markSignificant } from "automate.ax"
import { calcom } from "automate.ax/calcom"
export default automation("Update team event type", () => {
markSignificant(
calcom.updateTeamEventType({
teamId: 17,
eventTypeId: 23,
title: "Priority support",
}),
)
})
Input
Pass these fields:| Field | Type | Required | Description |
|---|---|---|---|
teamId | integer | Yes | Must be greater than 0. |
eventTypeId | integer | Yes | Must be greater than 0. |
lengthInMinutes | number | No | — |
lengthInMinutesOptions | number[] | No | 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 | No | — |
slug | string | No | — |
description | string | No | — |
bookingFields | object[] | No | 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. |
slotInterval | number | No | Slot interval in minutes. It defaults to the event length. |
minimumBookingNotice | number | No | Minimum number of minutes before the event that a booking can be made. |
beforeEventBuffer | number | No | 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 | No | 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 | No | If you want that this event has different schedule than user’s default one you can specify it here. |
bookingLimitsCount | object | No | Limit how many times this event can be booked |
bookerActiveBookingsLimit | object | No | Limit the number of active bookings a booker can make for this event type. |
onlyShowFirstAvailableSlot | boolean | No | This will limit your availability for this event type to one slot per day, scheduled at the earliest available time. |
bookingLimitsDuration | object | No | Limit total amount of time that this event can be booked |
bookingWindow | object | No | Limit how far in the future this event can be booked |
offsetStart | number | No | Offset time slots shown to bookers by the specified number of minutes. |
bookerLayouts | JSON value | No | Should booker have week, month or column view. Specify default layout and enabled layouts user can pick. |
confirmationPolicy | object | No | Specify how the booking needs to be manually confirmed before it is pushed to the integrations and a confirmation mail is sent. |
bookingProposalCount | number | null | No | — |
recurrence | object | No | Create a recurring event type. |
requiresBookerEmailVerification | boolean | No | — |
skipAttendeeEmailDeliverabilityCheck | boolean | No | When true, skips the MX deliverability check for attendee emails on booking. Format validation and watchlist still apply. Requires the editor to belong to an organization, including a platform organization. |
emailSettings | JSON value | No | Email settings for this event type. Personal event types require an accepted organization membership; team event types require an organization team. This does not include emails sent by custom email workflows. |
hideCalendarNotes | boolean | No | — |
lockTimeZoneToggleOnBookingPage | boolean | No | — |
color | object | No | — |
seats | object | No | Create an event type with multiple seats. |
customName | string | No | Customizable event name with valid variables: {Link title}, {Event type title} (legacy), {Organiser}, {Scheduler}, {Location}, {Organiser first name}, {Scheduler first name}, {Scheduler last name}, {Event duration}, {LOCATION}, {HOST/ATTENDEE}, {HOST}, {ATTENDEE}, {USER} |
destinationCalendar | object | No | — |
useDestinationCalendarEmail | boolean | No | — |
hideCalendarEventDetails | boolean | No | — |
successRedirectUrl | string | No | A valid URL where the booker will redirect to, once the booking is completed successfully |
hideOrganizerEmail | boolean | No | Boolean to Hide organizer’s email address from the booking screen, email notifications, and calendar events |
calVideoSettings | JSON value | No | Cal video settings for the event type |
hidden | boolean | No | — |
bookingRequiresAuthentication | boolean | No | Whether booking this event type through the API requires authentication. When true, only the event-type owner or an organization or team administrator or owner can book it. Default: false. |
disableCancelling | JSON value | No | Settings for disabling cancelling of this event type. |
disableRescheduling | JSON value | No | Settings for disabling rescheduling of this event type. Can be always disabled or disabled when less than X minutes before the meeting. |
interfaceLanguage | string enum | No | Set preferred language for the booking interface. Use empty string for visitor’s browser language (default). |
allowReschedulingPastBookings | boolean | No | Enabling this option allows for past events to be rescheduled. Default: false. |
allowReschedulingCancelledBookings | boolean | No | When enabled, users will be able to create a new booking when trying to reschedule a cancelled booking. Default: false. |
showOptimizedSlots | boolean | No | Arrange time slots to optimize availability. Default: false. |
privateNoteEnabled | boolean | No | When enabled, a private note calendar event is created alongside the booking with the resolved template as its description. Only visible to the host. Default: false. |
privateNoteMode | JSON value | No | How private notes are delivered: as an additional host event or by sending separate host and guest invites. |
privateNoteTemplate | string | No | Template for the private note content. Supports variables like {Attendee name}, {Link title}, {Event type title} (legacy), {Location}, {Host name}, {Event duration}, and custom booking field names. |
schedulingType | "collective" | "roundRobin" | No | The scheduling type for the team event - collective or roundRobin. ❗If you change scheduling type you must also provide hosts or assignAllTeamMembers in the request body, otherwise the event type will have no hosts - this is required because in case of collective event type all hosts are mandatory but in case of round robin some or non can be mandatory so we can’t predict how you want the hosts to be setup which is why you must provide that information. If you want to convert round robin or collective into managed or managed into round robin or collective then you will have to create a new team event type and delete old one. |
hosts | object[] | No | Hosts contain specific team members you want to assign to this event type. To assign every current and future team member use assignAllTeamMembers: true and omit this field. As an exception, round robin event types accept hosts together with assignAllTeamMembers: true to mark specific team members as fixed hosts (entries with mandatory: true); non-mandatory entries are silently ignored in that combination because they would be added to the round robin pool by assignAllTeamMembers anyway. For platform customers the hosts can include userIds only of managed users. |
assignAllTeamMembers | boolean | No | If true, all current and future team members will be assigned to this event type. Mutually exclusive with hosts for collective and managed event types. For round robin event types, hosts may be provided alongside assignAllTeamMembers: true solely to designate fixed hosts via mandatory: true entries. |
locations | object[] | No | 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.com 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. |
rescheduleWithSameRoundRobinHost | boolean | No | Rescheduled events will be assigned to the same host as initially scheduled. |
allowRRHostChoiceOnReschedule | boolean | No | Let the person rescheduling choose between keeping the original host and letting round robin pick from the whole team. Requires rescheduleWithSameRoundRobinHost to be enabled. |
Output
The action removes the outer Cal.com status envelope. Cal.com returns either one updated team event type object or an array of updated team event type objects. Each object includes its ID, team, hosts, scheduling type, booking URL, and event configuration. Cal.com enforces account role, plan, and availability requirements. Provider rejections surface as structured action failures with the HTTP status and anyRetry-After delay.