cancelBooking
ChatGPTCancel a booking as a host.
cancelBooking
ChatGPTCancel a booking as a host.
createBooking
ChatGPTCreate a booking using canonical booking payload.
createBooking
ChatGPTCreate a booking using canonical booking payload.
createEventType
ChatGPTCreate a Standard event type (booking page) for the authorized team via POST /v1/event_types. The full structure of payload (matching schemaEventTypeCreatePublicBody) is exposed as a typed JSON Schema on this tool — read the field-level descriptions there for the authoritative shape, defaults, and enum values. Quick reference for the most common case: Minimal payload (1 host, default settings): { "name": "30min meeting", "slug": "30min", "duration": 30, "eventTypeUsers": [ { "userId": "<team-member-uid>", "role": "admin", "userType": "host", "priority": 0 } ] } Collective meeting (all hosts join, 4 members): { "name": "Team sync", "slug": "team-sync", "duration": 30, "availableUserType": "all", "eventTypeUsers": [ { "userId": "<owner-uid>", "role": "admin", "userType": "host", "priority": 0 }, { "userId": "<member1-uid>", "role": "editor", "userType": "host", "priority": 1 }, { "userId": "<member2-uid>", "role": "editor", "userType": "host", "priority": 2 }, { "userId": "<member3-uid>", "role": "editor", "userType": "host", "priority": 3 } ] } Validation rules enforced server-side (rejected with 400): - eventTypeUsers must contain EXACTLY ONE Admin (role="admin"); zero or multiple Admins are rejected. - hostAssignType accepts none (default) or hostAssignRule; roundRobin is rejected on create. - availableUserType / hostAssignType / roundRobinAllocateType / rescheduleType are string enums. - Top-level body and location reject unknown keys (.strict()). Pairing with HostAssignRule: When sending hostAssignType=hostAssignRule, either (a) pass body.hostAssignRules[] inline on this same call to create rules in the same DB transaction, or (b) call createHostAssignRule afterwards. Every entityId referenced in hostAssignRules[].conditions[].entities[] must already be present in eventTypeUsers[].userId. Discovering host uids: Use listOrganizationUsers to get team member ids before calling this tool. Each organization user item has userId which is what eventTypeUsers[].userId expects. Returns the created event type as a public read item. When body.hostAssignRules[] is provided, the response also includes a hostAssignRules[] field with the created rules. Not supported here: ManagedTemplate, external event types, project scoping.
createEventType
ChatGPTCreate a Standard event type (booking page) for the authorized team via POST /v1/event_types. The full structure of payload (matching schemaEventTypeCreatePublicBody) is exposed as a typed JSON Schema on this tool — read the field-level descriptions there for the authoritative shape, defaults, and enum values. Quick reference for the most common case: Minimal payload (1 host, default settings): { "name": "30min meeting", "slug": "30min", "duration": 30, "eventTypeUsers": [ { "userId": "<team-member-uid>", "role": "admin", "userType": "host", "priority": 0 } ] } Collective meeting (all hosts join, 4 members): { "name": "Team sync", "slug": "team-sync", "duration": 30, "availableUserType": "all", "eventTypeUsers": [ { "userId": "<owner-uid>", "role": "admin", "userType": "host", "priority": 0 }, { "userId": "<member1-uid>", "role": "editor", "userType": "host", "priority": 1 }, { "userId": "<member2-uid>", "role": "editor", "userType": "host", "priority": 2 }, { "userId": "<member3-uid>", "role": "editor", "userType": "host", "priority": 3 } ] } Validation rules enforced server-side (rejected with 400): - eventTypeUsers must contain EXACTLY ONE Admin (role="admin"); zero or multiple Admins are rejected. - hostAssignType accepts none (default) or hostAssignRule; roundRobin is rejected on create. - availableUserType / hostAssignType / roundRobinAllocateType / rescheduleType are string enums. - Top-level body and location reject unknown keys (.strict()). Pairing with HostAssignRule: When sending hostAssignType=hostAssignRule, either (a) pass body.hostAssignRules[] inline on this same call to create rules in the same DB transaction, or (b) call createHostAssignRule afterwards. Every entityId referenced in hostAssignRules[].conditions[].entities[] must already be present in eventTypeUsers[].userId. Discovering host uids: Use listOrganizationUsers to get team member ids before calling this tool. Each organization user item has userId which is what eventTypeUsers[].userId expects. Returns the created event type as a public read item. When body.hostAssignRules[] is provided, the response also includes a hostAssignRules[] field with the created rules. Not supported here: ManagedTemplate, external event types, project scoping.
createHostAssignRule
ChatGPTCreate a new host assign rule for an EXISTING event type via POST /v1/event_types/{eventTypeId}/host_assign_rules. For a brand-new event type, prefer createEventType with body.hostAssignRules[] inline — that path creates the event type and its rules in the same transaction. Use this tool when you want to add additional rules to an event type that already exists. Prerequisites: - The parent eventType.hostAssignType MUST be set to 3 (HostAssignRule). If it is currently 1 (None) or 2 (RoundRobin), call updateEventType first to flip hostAssignType to 3. - Every entityId listed in conditions[].entities[] MUST already be registered as an EventTypeUser on the target event type (present in the event type users list). Otherwise the API returns 400 "Invalid entityId(s): ...". Use getEventTypeById to verify EventTypeUser coverage first. Required payload fields (public schema — strict validation): - sort: non-negative integer (ordering among sibling rules) - priority: integer in [0, 3] (higher value is selected first; rules are ordered by priority desc) - conditions: array with at least one entry. Each item: - entities: array with at least one entry. Each entity: - entityType: literal "User" - entityId: string (EventTypeUser userId already assigned to the event type) Optional payload fields: - dailyLimitMinutes: integer >= 1 | null (daily assignment time cap) - weeklyLimitMinutes: integer >= 1 | null - monthlyLimitMinutes: integer >= 1 | null Not supported by this endpoint (use other tools or accept as-is): - roundRobinAllocateType (per-condition allocation strategy). The public API ignores it. - per-entity priority / sort tuning. Server hardcodes sort=index+1, priority=0 for each entity. Example minimum payload: { "sort": 0, "priority": 0, "conditions": [ { "entities": [{ "entityType": "User", "entityId": "<event-type-user-uid>" }] } ] } Returns the created host assign rule as a public item (uid, sort, priority, limits, conditions, timestamps).
createHostAssignRule
ChatGPTCreate a new host assign rule for an EXISTING event type via POST /v1/event_types/{eventTypeId}/host_assign_rules. For a brand-new event type, prefer createEventType with body.hostAssignRules[] inline — that path creates the event type and its rules in the same transaction. Use this tool when you want to add additional rules to an event type that already exists. Prerequisites: - The parent eventType.hostAssignType MUST be set to 3 (HostAssignRule). If it is currently 1 (None) or 2 (RoundRobin), call updateEventType first to flip hostAssignType to 3. - Every entityId listed in conditions[].entities[] MUST already be registered as an EventTypeUser on the target event type (present in the event type users list). Otherwise the API returns 400 "Invalid entityId(s): ...". Use getEventTypeById to verify EventTypeUser coverage first. Required payload fields (public schema — strict validation): - sort: non-negative integer (ordering among sibling rules) - priority: integer in [0, 3] (higher value is selected first; rules are ordered by priority desc) - conditions: array with at least one entry. Each item: - entities: array with at least one entry. Each entity: - entityType: literal "User" - entityId: string (EventTypeUser userId already assigned to the event type) Optional payload fields: - dailyLimitMinutes: integer >= 1 | null (daily assignment time cap) - weeklyLimitMinutes: integer >= 1 | null - monthlyLimitMinutes: integer >= 1 | null Not supported by this endpoint (use other tools or accept as-is): - roundRobinAllocateType (per-condition allocation strategy). The public API ignores it. - per-entity priority / sort tuning. Server hardcodes sort=index+1, priority=0 for each entity. Example minimum payload: { "sort": 0, "priority": 0, "conditions": [ { "entities": [{ "entityType": "User", "entityId": "<event-type-user-uid>" }] } ] } Returns the created host assign rule as a public item (uid, sort, priority, limits, conditions, timestamps).
createSchedule
ChatGPTCreate a schedule.
createSchedule
ChatGPTCreate a schedule.
createWebhookEndpoint
ChatGPTCreate a webhook endpoint via POST /v1/webhook_endpoints. Team context is resolved from the access token. Required payload fields: - url: string (https URL, localhost rejected) - status: string enum, enable | disable - description: string | null - scope: string enum, team (fires for all event types in the team) | eventType (fires only for selected event types — requires subsequent webhookEventType setup) Not accepted on the public create endpoint: - events / webhookType / eventTypeIds: managed internally; server defaults events=null (all events) and webhookType=Normal. Notes: - Webhook dispatch requires subscription plan Team or higher. - Payload shape: { event, createdAt, object: { uid, eventTypeUid, startedAt, endedAt, status, timeZone, contact, answers, tracking, downloadLink, createdAt, updatedAt } }. - object.downloadLink is null unless the booking has an EventRecap with a videoUrl set.
createWebhookEndpoint
ChatGPTCreate a webhook endpoint via POST /v1/webhook_endpoints. Team context is resolved from the access token. Required payload fields: - url: string (https URL, localhost rejected) - status: string enum, enable | disable - description: string | null - scope: string enum, team (fires for all event types in the team) | eventType (fires only for selected event types — requires subsequent webhookEventType setup) Not accepted on the public create endpoint: - events / webhookType / eventTypeIds: managed internally; server defaults events=null (all events) and webhookType=Normal. Notes: - Webhook dispatch requires subscription plan Team or higher. - Payload shape: { event, createdAt, object: { uid, eventTypeUid, startedAt, endedAt, status, timeZone, contact, answers, tracking, downloadLink, createdAt, updatedAt } }. - object.downloadLink is null unless the booking has an EventRecap with a videoUrl set.
deleteEventType
ChatGPTDelete an event type.
deleteEventType
ChatGPTDelete an event type.
deleteHostAssignRule
ChatGPTDelete a host assign rule from an event type via DELETE /v1/event_types/{eventTypeId}/host_assign_rules/{hostAssignRuleUid}. The hostAssignRuleUid must be obtained from listHostAssignRules (no dedicated getById endpoint exists). Returns { success: true } on HTTP 204. Deleting the last remaining rule while eventType.hostAssignType is 3 (HostAssignRule) leaves the event type without any active assignment rule. Call listHostAssignRules afterwards to verify the remaining rules, and flip hostAssignType back to 1 (None) via updateEventType if no rules should apply going forward.
deleteHostAssignRule
ChatGPTDelete a host assign rule from an event type via DELETE /v1/event_types/{eventTypeId}/host_assign_rules/{hostAssignRuleUid}. The hostAssignRuleUid must be obtained from listHostAssignRules (no dedicated getById endpoint exists). Returns { success: true } on HTTP 204. Deleting the last remaining rule while eventType.hostAssignType is 3 (HostAssignRule) leaves the event type without any active assignment rule. Call listHostAssignRules afterwards to verify the remaining rules, and flip hostAssignType back to 1 (None) via updateEventType if no rules should apply going forward.
deleteSchedule
ChatGPTDelete a schedule.
deleteSchedule
ChatGPTDelete a schedule.
deleteWebhookEndpoint
ChatGPTDelete a webhook endpoint.
deleteWebhookEndpoint
ChatGPTDelete a webhook endpoint.
getAvailableSchedules
ChatGPTFetch available schedules for an event type.
getAvailableSchedules
ChatGPTFetch available schedules for an event type.
getBooking
ChatGPTFetch a single booking.
getBooking
ChatGPTFetch a single booking.
getBookingContacts
ChatGPTFetch booking contacts.
getBookingContacts
ChatGPTFetch booking contacts.
getBookingRecaps
ChatGPTFetch meeting recap fields for a booking.
getBookingRecaps
ChatGPTFetch meeting recap fields for a booking.
getBookingRecordings
ChatGPTFetch meeting recording fields for a booking.
getBookingRecordings
ChatGPTFetch meeting recording fields for a booking.
getBookingTranscripts
ChatGPTFetch meeting transcript fields for a booking.
getBookingTranscripts
ChatGPTFetch meeting transcript fields for a booking.
getBookings
ChatGPTList bookings for the authorized team. By default this tool auto-paginates and returns ALL bookings in a single response (perPage=100 per backend request, up to 100 pages). If page or perPage is supplied explicitly the tool falls back to single-page behavior.
getBookings
ChatGPTList bookings for the authorized team. By default this tool auto-paginates and returns ALL bookings in a single response (perPage=100 per backend request, up to 100 pages). If page or perPage is supplied explicitly the tool falls back to single-page behavior.
getEventTypeById
ChatGPTFetch a single event type.
getEventTypeById
ChatGPTFetch a single event type.
getEventTypes
ChatGPTList event types available to the authorized team. By default this tool auto-paginates and returns ALL event types in a single response (perPage=100 per backend request, up to 100 pages). If page or perPage is supplied explicitly the tool falls back to single-page behavior.
getEventTypes
ChatGPTList event types available to the authorized team. By default this tool auto-paginates and returns ALL event types in a single response (perPage=100 per backend request, up to 100 pages). If page or perPage is supplied explicitly the tool falls back to single-page behavior.
getOrganizationUser
ChatGPTFetch a single organization user.
getOrganizationUser
ChatGPTFetch a single organization user.
getWebhookEndpointById
ChatGPTFetch a single webhook endpoint.
getWebhookEndpointById
ChatGPTFetch a single webhook endpoint.
getWebhookEndpoints
ChatGPTList webhook endpoints for the authorized team.
getWebhookEndpoints
ChatGPTList webhook endpoints for the authorized team.
listEventTypeHosts
ChatGPTList { eventType, hosts } pairs for every event type in the authorized team. By default this tool auto-paginates and returns ALL items in a single response (perPage=100 per backend request, up to 100 pages). If page or perPage is supplied explicitly the tool falls back to single-page behavior. To get hosts for a specific event type, filter the returned eventTypeHosts array by eventType.uid client-side.
listEventTypeHosts
ChatGPTList { eventType, hosts } pairs for every event type in the authorized team. By default this tool auto-paginates and returns ALL items in a single response (perPage=100 per backend request, up to 100 pages). If page or perPage is supplied explicitly the tool falls back to single-page behavior. To get hosts for a specific event type, filter the returned eventTypeHosts array by eventType.uid client-side.
listHostAssignRules
ChatGPTList host assign rules for an event type via GET /v1/event_types/{eventTypeId}/host_assign_rules. Host assign rules are only active when the parent eventType.hostAssignType is 3 (HostAssignRule). If the event type uses hostAssignType 1 (None) or 2 (RoundRobin), any rules returned here are inert. There is no dedicated getHostAssignRuleById tool: to fetch a single rule, call this tool and filter the returned hostAssignRules[] array by uid on the client side. Each returned rule has: uid, sort, priority, dailyLimitMinutes, weeklyLimitMinutes, monthlyLimitMinutes, conditions[] (each with entities[{ entityType: "User", entityId }]), createdAt, updatedAt. By default this tool auto-paginates and returns ALL rules in a single response (perPage=100 per backend request, up to 100 pages). If page or perPage is supplied explicitly the tool falls back to single-page behavior.
listHostAssignRules
ChatGPTList host assign rules for an event type via GET /v1/event_types/{eventTypeId}/host_assign_rules. Host assign rules are only active when the parent eventType.hostAssignType is 3 (HostAssignRule). If the event type uses hostAssignType 1 (None) or 2 (RoundRobin), any rules returned here are inert. There is no dedicated getHostAssignRuleById tool: to fetch a single rule, call this tool and filter the returned hostAssignRules[] array by uid on the client side. Each returned rule has: uid, sort, priority, dailyLimitMinutes, weeklyLimitMinutes, monthlyLimitMinutes, conditions[] (each with entities[{ entityType: "User", entityId }]), createdAt, updatedAt. By default this tool auto-paginates and returns ALL rules in a single response (perPage=100 per backend request, up to 100 pages). If page or perPage is supplied explicitly the tool falls back to single-page behavior.
listOrganizationUsers
ChatGPTList organization users for the authorized team. By default this tool auto-paginates and returns ALL organization users in a single response (perPage=100 per backend request, up to 100 pages). If page or perPage is supplied explicitly the tool falls back to single-page behavior and returns only that page. The returned pagination object reflects the LAST fetched page when auto-paginating.
listOrganizationUsers
ChatGPTList organization users for the authorized team. By default this tool auto-paginates and returns ALL organization users in a single response (perPage=100 per backend request, up to 100 pages). If page or perPage is supplied explicitly the tool falls back to single-page behavior and returns only that page. The returned pagination object reflects the LAST fetched page when auto-paginating.
listSchedules
ChatGPTList schedules for the authorized team. By default this tool auto-paginates and returns ALL schedules in a single response (perPage=100 per backend request, up to 100 pages). If page or perPage is supplied explicitly the tool falls back to single-page behavior.
listSchedules
ChatGPTList schedules for the authorized team. By default this tool auto-paginates and returns ALL schedules in a single response (perPage=100 per backend request, up to 100 pages). If page or perPage is supplied explicitly the tool falls back to single-page behavior.
listUserAvailabilityCalendars
ChatGPTList user availability calendars. By default this tool auto-paginates and returns ALL calendars in a single response (perPage=100 per backend request, up to 100 pages). If page or perPage is supplied explicitly the tool falls back to single-page behavior.
listUserAvailabilityCalendars
ChatGPTList user availability calendars. By default this tool auto-paginates and returns ALL calendars in a single response (perPage=100 per backend request, up to 100 pages). If page or perPage is supplied explicitly the tool falls back to single-page behavior.
rescheduleBooking
ChatGPTReschedule a booking.
rescheduleBooking
ChatGPTReschedule a booking.
updateBooking
ChatGPTUpdate a booking using canonical booking payload.
updateBooking
ChatGPTUpdate a booking using canonical booking payload.
updateEventType
ChatGPTUpdate an existing event type via public PATCH /v1/event_types/{eventTypeId}. This follows the same public contract style as createEventType: - flat top-level payload (there is no eventType wrapper) - string enums for availableUserType / hostAssignType / roundRobinAllocateType / rescheduleType - string enums for eventTypeUsers[].role / userType - string enum for location.phoneType (none | callFromHost | callFromGuest) - string enums inside form.workflows[] for workflowType / validateFormatType / customProps.furiganaFormatType / customProps.dateFormatType / customProps.addressCountryInputType - workflow.createType is not accepted (always set to User server-side); workflow.relations is not accepted (Salesforce-internal field) - internal-only fields such as eventTypeType / displayType / hostOperationType are not accepted - unknown top-level keys are rejected Top-level fields (all optional, but at least one is required): - name / description / slug / duration / intervalMinutes / maxCapacity / bufferBefore / bufferAfter / internalNote - availableUserType: all | anyOne - hostAssignType: none | roundRobin | hostAssignRule - roundRobinAllocateType: allocateEqually | allocateWeighting | allocateRotation - rescheduleType: lockRescheduleUser | reassign - location: partial location patch. Hidden internal fields are preserved server-side, so you can send only changed fields. - eventTypeUsers: full replacement list using string enums - form: { workflows } — full replace of the booking form workflows - hostAssignRules: uid-based sync payload. Known uid updates, omitted existing rules delete, new items create. Common pitfalls: - eventTypeUsers is a full replace. - hostAssignRules is a SYNC (uid-based diff) — omitted uids trigger deletion. - location is partial, but the API preserves hidden internal fields instead of letting callers set them. On success the API returns the updated public read item directly.
updateEventType
ChatGPTUpdate an existing event type via public PATCH /v1/event_types/{eventTypeId}. This follows the same public contract style as createEventType: - flat top-level payload (there is no eventType wrapper) - string enums for availableUserType / hostAssignType / roundRobinAllocateType / rescheduleType - string enums for eventTypeUsers[].role / userType - string enum for location.phoneType (none | callFromHost | callFromGuest) - string enums inside form.workflows[] for workflowType / validateFormatType / customProps.furiganaFormatType / customProps.dateFormatType / customProps.addressCountryInputType - workflow.createType is not accepted (always set to User server-side); workflow.relations is not accepted (Salesforce-internal field) - internal-only fields such as eventTypeType / displayType / hostOperationType are not accepted - unknown top-level keys are rejected Top-level fields (all optional, but at least one is required): - name / description / slug / duration / intervalMinutes / maxCapacity / bufferBefore / bufferAfter / internalNote - availableUserType: all | anyOne - hostAssignType: none | roundRobin | hostAssignRule - roundRobinAllocateType: allocateEqually | allocateWeighting | allocateRotation - rescheduleType: lockRescheduleUser | reassign - location: partial location patch. Hidden internal fields are preserved server-side, so you can send only changed fields. - eventTypeUsers: full replacement list using string enums - form: { workflows } — full replace of the booking form workflows - hostAssignRules: uid-based sync payload. Known uid updates, omitted existing rules delete, new items create. Common pitfalls: - eventTypeUsers is a full replace. - hostAssignRules is a SYNC (uid-based diff) — omitted uids trigger deletion. - location is partial, but the API preserves hidden internal fields instead of letting callers set them. On success the API returns the updated public read item directly.
updateEventTypeHost
ChatGPTUpdate an event type host.
updateEventTypeHost
ChatGPTUpdate an event type host.
updateHostAssignRule
ChatGPTUpdate an existing host assign rule via PATCH /v1/event_types/{eventTypeId}/host_assign_rules/{hostAssignRuleUid}. The hostAssignRuleUid must be obtained from listHostAssignRules first (no dedicated getById endpoint exists). Body schema (public update params — all top-level keys are optional, partial update): - sort: non-negative integer - priority: integer in [0, 3] - dailyLimitMinutes: integer >= 1 | null - weeklyLimitMinutes: integer >= 1 | null - monthlyLimitMinutes: integer >= 1 | null - conditions: array of { entities: [{ entityType: "User", entityId }] } IMPORTANT behaviors: - When conditions is omitted, existing conditions are preserved (no-op). - When conditions is sent, it FULLY REPLACES the existing conditions (not a merge). Fetch the current rule via listHostAssignRules and resend the full conditions list to add or remove entries safely. - Every entityId in conditions MUST already be registered as an EventTypeUser on the parent event type. Otherwise the API returns 400 "Invalid entityId(s): ...". - roundRobinAllocateType and per-entity priority/sort are NOT accepted by the public API; the server internally hardcodes sort=index+1, priority=0 for each entity on every update.
updateHostAssignRule
ChatGPTUpdate an existing host assign rule via PATCH /v1/event_types/{eventTypeId}/host_assign_rules/{hostAssignRuleUid}. The hostAssignRuleUid must be obtained from listHostAssignRules first (no dedicated getById endpoint exists). Body schema (public update params — all top-level keys are optional, partial update): - sort: non-negative integer - priority: integer in [0, 3] - dailyLimitMinutes: integer >= 1 | null - weeklyLimitMinutes: integer >= 1 | null - monthlyLimitMinutes: integer >= 1 | null - conditions: array of { entities: [{ entityType: "User", entityId }] } IMPORTANT behaviors: - When conditions is omitted, existing conditions are preserved (no-op). - When conditions is sent, it FULLY REPLACES the existing conditions (not a merge). Fetch the current rule via listHostAssignRules and resend the full conditions list to add or remove entries safely. - Every entityId in conditions MUST already be registered as an EventTypeUser on the parent event type. Otherwise the API returns 400 "Invalid entityId(s): ...". - roundRobinAllocateType and per-entity priority/sort are NOT accepted by the public API; the server internally hardcodes sort=index+1, priority=0 for each entity on every update.
updateSchedule
ChatGPTUpdate a schedule.
updateSchedule
ChatGPTUpdate a schedule.
updateWebhookEndpoint
ChatGPTUpdate a webhook endpoint via PATCH /v1/webhook_endpoints/{webhookEndpointId}. Team context is resolved from the access token. Common update fields (all optional, partial update): - url: string (https URL, localhost rejected) - description: string | null - status: string enum, enable | disable - scope: string enum, team (all event types) | eventType (restricted to selected event types) Not accepted on the public PATCH endpoint: - events / webhookType: managed internally; not settable via the public API.
updateWebhookEndpoint
ChatGPTUpdate a webhook endpoint via PATCH /v1/webhook_endpoints/{webhookEndpointId}. Team context is resolved from the access token. Common update fields (all optional, partial update): - url: string (https URL, localhost rejected) - description: string | null - status: string enum, enable | disable - scope: string enum, team (all event types) | eventType (restricted to selected event types) Not accepted on the public PATCH endpoint: - events / webhookType: managed internally; not settable via the public API.