feat: api v2 event type settings - booker bookings limit, emails, round robin reschedule (#24169)

* feat: event type bookerActiveBookingsLimit

* test: booking with bookerActiveBookingsLimit

* fix: typecheck

* feat: org team event type emailSettings & rescheduleWithSameRoundRobinHost

* docs: regenerate swagger

* chore: default booker name and email in examples app

* refactor: email settings description

* refactor: rename email setting properties

* refactor: function to add email settings to metadata

* fix: try to fix e2e

* fix: dont return input bookerActiveBookingsLimit in transformed object

* fix: dont allow recurrence and bookerActiveBookingsLimit

* fix: output service return bookerActiveBookingsLimit
This commit is contained in:
Lauris Skraucis authored and GitHub committed 2025-10-15 17:31:35 +03:00
1 parent 1aac14056e
commit bb9d99c3e1
21 files changed
+938 -69

No files matched your search

+113
View File
@@ -15649,6 +15649,20 @@
}
}
},
"BookerActiveBookingsLimit_2024_06_14": {
"type": "object",
"properties": {
"maximumActiveBookings": {
"type": "number",
"description": "The maximum number of active bookings a booker can have for this event type.",
"example": 3
},
"offerReschedule": {
"type": "boolean",
"description": "Whether to offer rescheduling the last active booking to the chosen time slot when limit is reached."
}
}
},
"Disabled_2024_06_14": {
"type": "object",
"properties": {
@@ -15986,6 +16000,19 @@
},
"required": ["type"]
},
"EmailSettings_2024_06_14": {
"type": "object",
"properties": {
"disableEmailsToAttendees": {
"type": "boolean",
"description": "Disables all email communication to attendees for this event type, including booking confirmations, reminders, and cancellations. This DOES NOT include emails sent by custom email workflows."
},
"disableEmailsToHosts": {
"type": "boolean",
"description": "Disables all email communication to hosts for this event type, including booking confirmations, reminders, and cancellations. This DOES NOT include emails sent by custom email workflows."
}
}
},
"CalVideoSettings": {
"type": "object",
"properties": {
@@ -16146,6 +16173,17 @@
}
]
},
"bookerActiveBookingsLimit": {
"description": "Limit the number of active bookings a booker can make for this event type.",
"oneOf": [
{
"$ref": "#/components/schemas/BookerActiveBookingsLimit_2024_06_14"
},
{
"$ref": "#/components/schemas/Disabled_2024_06_14"
}
]
},
"onlyShowFirstAvailableSlot": {
"type": "boolean",
"description": "This will limit your availability for this event type to one slot per day, scheduled at the earliest available time."
@@ -17389,6 +17427,9 @@
"bookingLimitsCount": {
"type": "object"
},
"bookerActiveBookingsLimit": {
"$ref": "#/components/schemas/BookerActiveBookingsLimit_2024_06_14"
},
"onlyShowFirstAvailableSlot": {
"type": "boolean"
},
@@ -17673,6 +17714,17 @@
}
]
},
"bookerActiveBookingsLimit": {
"description": "Limit the number of active bookings a booker can make for this event type.",
"oneOf": [
{
"$ref": "#/components/schemas/BookerActiveBookingsLimit_2024_06_14"
},
{
"$ref": "#/components/schemas/Disabled_2024_06_14"
}
]
},
"onlyShowFirstAvailableSlot": {
"type": "boolean",
"description": "This will limit your availability for this event type to one slot per day, scheduled at the earliest available time."
@@ -19244,6 +19296,17 @@
}
]
},
"bookerActiveBookingsLimit": {
"description": "Limit the number of active bookings a booker can make for this event type.",
"oneOf": [
{
"$ref": "#/components/schemas/BookerActiveBookingsLimit_2024_06_14"
},
{
"$ref": "#/components/schemas/Disabled_2024_06_14"
}
]
},
"onlyShowFirstAvailableSlot": {
"type": "boolean",
"description": "This will limit your availability for this event type to one slot per day, scheduled at the earliest available time."
@@ -19420,6 +19483,18 @@
}
]
}
},
"emailSettings": {
"description": "Email settings for this event type - only available for organization team event types.",
"allOf": [
{
"$ref": "#/components/schemas/EmailSettings_2024_06_14"
}
]
},
"rescheduleWithSameRoundRobinHost": {
"type": "boolean",
"description": "Rescheduled events will be assigned to the same host as initially scheduled."
}
},
"required": ["lengthInMinutes", "title", "slug", "schedulingType"]
@@ -19653,6 +19728,9 @@
"bookingLimitsCount": {
"type": "object"
},
"bookerActiveBookingsLimit": {
"$ref": "#/components/schemas/BookerActiveBookingsLimit_2024_06_14"
},
"onlyShowFirstAvailableSlot": {
"type": "boolean"
},
@@ -19755,6 +19833,18 @@
},
"team": {
"$ref": "#/components/schemas/EventTypeTeam"
},
"emailSettings": {
"description": "Email settings for this event type. Only available for organization team event types.",
"allOf": [
{
"$ref": "#/components/schemas/EmailSettings_2024_06_14"
}
]
},
"rescheduleWithSameRoundRobinHost": {
"type": "boolean",
"description": "Rescheduled events will be assigned to the same host as initially scheduled."
}
},
"required": [
@@ -20043,6 +20133,17 @@
}
]
},
"bookerActiveBookingsLimit": {
"description": "Limit the number of active bookings a booker can make for this event type.",
"oneOf": [
{
"$ref": "#/components/schemas/BookerActiveBookingsLimit_2024_06_14"
},
{
"$ref": "#/components/schemas/Disabled_2024_06_14"
}
]
},
"onlyShowFirstAvailableSlot": {
"type": "boolean",
"description": "This will limit your availability for this event type to one slot per day, scheduled at the earliest available time."
@@ -20213,6 +20314,18 @@
}
]
}
},
"emailSettings": {
"description": "Email settings for this event type. Only available for organization team event types.",
"allOf": [
{
"$ref": "#/components/schemas/EmailSettings_2024_06_14"
}
]
},
"rescheduleWithSameRoundRobinHost": {
"type": "boolean",
"description": "Rescheduled events will be assigned to the same host as initially scheduled."
}
}
},