diff --git a/pages/api/bookings/_post.ts b/pages/api/bookings/_post.ts index ff3ac36e02..51ee9333d2 100644 --- a/pages/api/bookings/_post.ts +++ b/pages/api/bookings/_post.ts @@ -50,6 +50,12 @@ import { defaultResponder } from "@calcom/lib/server"; * location: * type: string * description: 'Meeting location' + * seatsPerTimeSlot: + * type: integer + * description: 'The number of seats for each time slot' + * seatsShowAttendees: + * type: boolean + * description: 'Share Attendee information in seats' * smsReminderNumber: * type: number * description: 'SMS reminder number' diff --git a/pages/api/event-types/[id]/_delete.ts b/pages/api/event-types/[id]/_delete.ts index 20a5dc4d65..2e598afc54 100644 --- a/pages/api/event-types/[id]/_delete.ts +++ b/pages/api/event-types/[id]/_delete.ts @@ -12,18 +12,22 @@ import { schemaQueryIdParseInt } from "~/lib/validations/shared/queryIdTransform * operationId: removeEventTypeById * summary: Remove an existing eventType * parameters: + * - in: query + * name: apiKey + * schema: + * type: string + * required: true + * description: Your API Key * - in: path * name: id * schema: * type: integer * required: true * description: ID of the eventType to delete - * security: - * - ApiKeyAuth: [] * tags: * - event-types * externalDocs: - * url: https://docs.cal.com/event-types + * url: https://docs.cal.com/core-features/event-types * responses: * 201: * description: OK, eventType removed successfully diff --git a/pages/api/event-types/[id]/_get.ts b/pages/api/event-types/[id]/_get.ts index 747a91513a..58046dedcd 100644 --- a/pages/api/event-types/[id]/_get.ts +++ b/pages/api/event-types/[id]/_get.ts @@ -12,19 +12,23 @@ import { schemaQueryIdParseInt } from "~/lib/validations/shared/queryIdTransform * operationId: getEventTypeById * summary: Find a eventType * parameters: - * - in: path - * name: id - * example: 4 - * schema: - * type: integer - * required: true - * description: ID of the eventType to get - * security: - * - ApiKeyAuth: [] + * - in: query + * name: apiKey + * schema: + * type: string + * required: true + * description: Your API Key + * - in: path + * name: id + * example: 4 + * schema: + * type: integer + * required: true + * description: ID of the eventType to get * tags: * - event-types * externalDocs: - * url: https://docs.cal.com/event-types + * url: https://docs.cal.com/core-features/event-types * responses: * 200: * description: OK diff --git a/pages/api/event-types/[id]/_patch.ts b/pages/api/event-types/[id]/_patch.ts index e712bc8f14..57662a623e 100644 --- a/pages/api/event-types/[id]/_patch.ts +++ b/pages/api/event-types/[id]/_patch.ts @@ -17,18 +17,134 @@ import checkTeamEventEditPermission from "../_utils/checkTeamEventEditPermission * operationId: editEventTypeById * summary: Edit an existing eventType * parameters: + * - in: query + * name: apiKey + * schema: + * type: string + * required: true + * description: Your API Key * - in: path * name: id * schema: * type: integer * required: true * description: ID of the eventType to edit - * security: - * - ApiKeyAuth: [] + * requestBody: + * description: Create a new event-type related to your user or team + * required: true + * content: + * application/json: + * schema: + * type: object + * properties: + * length: + * type: integer + * description: Duration of the event type in minutes + * metadata: + * type: object + * description: Metadata relating to event type. Pass {} if empty + * title: + * type: string + * description: Title of the event type + * slug: + * type: string + * description: Unique slug for the event type + * hidden: + * type: boolean + * description: If the event type should be hidden from your public booking page + * position: + * type: integer + * description: The position of the event type on the public booking page + * teamId: + * type: integer + * description: Team ID if the event type should belong to a team + * periodType: + * type: string + * enum: [UNLIMITED, ROLLING, RANGE] + * description: To decide how far into the future an invitee can book an event with you + * periodStartDate: + * type: string + * format: date-time + * description: Start date of bookable period (Required if periodType is 'range') + * periodEndDate: + * type: string + * format: date-time + * description: End date of bookable period (Required if periodType is 'range') + * periodDays: + * type: integer + * description: Number of bookable days (Required if periodType is rolling) + * periodCountCalendarDays: + * type: boolean + * description: If calendar days should be counted for period days + * requiresConfirmation: + * type: boolean + * description: If the event type should require your confirmation before completing the booking + * recurringEvent: + * type: object + * description: If the event should recur every week/month/year with the selected frequency + * properties: + * interval: + * type: integer + * count: + * type: integer + * freq: + * type: integer + * disableGuests: + * type: boolean + * description: If the event type should disable adding guests to the booking + * hideCalendarNotes: + * type: boolean + * description: If the calendar notes should be hidden from the booking + * minimumBookingNotice: + * type: integer + * description: Minimum time in minutes before the event is bookable + * beforeEventBuffer: + * type: integer + * description: Number of minutes of buffer time before a Cal Event + * afterEventBuffer: + * type: integer + * description: Number of minutes of buffer time after a Cal Event + * schedulingType: + * type: string + * description: The type of scheduling if a Team event. Required for team events only + * enum: [ROUND_ROBIN, COLLECTIVE] + * price: + * type: integer + * description: Price of the event type booking + * currency: + * type: string + * description: Currency acronym. Eg- usd, eur, gbp, etc. + * slotInterval: + * type: integer + * description: The intervals of available bookable slots in minutes + * successRedirectUrl: + * type: string + * format: url + * description: A valid URL where the booker will redirect to, once the booking is completed successfully + * description: + * type: string + * description: Description of the event type + * seatsPerTimeSlot: + * type: integer + * description: 'The number of seats for each time slot' + * seatsShowAttendees: + * type: boolean + * description: 'Share Attendee information in seats' + * locations: + * type: array + * description: A list of all available locations for the event type + * items: + * type: object + * example: + * event-type: + * summary: An example of event type PATCH request + * value: + * length: 60 + * requiresConfirmation: true * tags: * - event-types * externalDocs: - * url: https://docs.cal.com/event-types + * url: https://docs.cal.com/core-features/event-types * responses: * 201: * description: OK, eventType edited successfully diff --git a/pages/api/event-types/_get.ts b/pages/api/event-types/_get.ts index bd87e5546e..0f5810a774 100644 --- a/pages/api/event-types/_get.ts +++ b/pages/api/event-types/_get.ts @@ -13,10 +13,17 @@ import { schemaQuerySingleOrMultipleUserIds } from "~/lib/validations/shared/que * get: * summary: Find all event types * operationId: listEventTypes + * parameters: + * - in: query + * name: apiKey + * schema: + * type: string + * required: true + * description: Your API Key * tags: * - event-types * externalDocs: - * url: https://docs.cal.com/event-types + * url: https://docs.cal.com/core-features/event-types * responses: * 200: * description: OK diff --git a/pages/api/event-types/_post.ts b/pages/api/event-types/_post.ts index faefb4cc74..28be45e2f5 100644 --- a/pages/api/event-types/_post.ts +++ b/pages/api/event-types/_post.ts @@ -14,6 +14,13 @@ import checkTeamEventEditPermission from "./_utils/checkTeamEventEditPermission" * post: * summary: Creates a new event type * operationId: addEventType + * parameters: + * - in: query + * name: apiKey + * schema: + * type: string + * required: true + * description: Your API Key * requestBody: * description: Create a new event-type related to your user or team * required: true @@ -28,22 +35,138 @@ import checkTeamEventEditPermission from "./_utils/checkTeamEventEditPermission" * - metadata * properties: * length: - * type: number - * example: 30 + * type: integer + * description: Duration of the event type in minutes * metadata: * type: object - * example: {"smartContractAddress": "0x1234567890123456789012345678901234567890"} + * description: Metadata relating to event type. Pass {} if empty * title: * type: string - * example: My Event + * description: Title of the event type * slug: * type: string - * example: my-event - * + * description: Unique slug for the event type + * hidden: + * type: boolean + * description: If the event type should be hidden from your public booking page + * position: + * type: integer + * description: The position of the event type on the public booking page + * teamId: + * type: integer + * description: Team ID if the event type should belong to a team + * periodType: + * type: string + * enum: [UNLIMITED, ROLLING, RANGE] + * description: To decide how far into the future an invitee can book an event with you + * periodStartDate: + * type: string + * format: date-time + * description: Start date of bookable period (Required if periodType is 'range') + * periodEndDate: + * type: string + * format: date-time + * description: End date of bookable period (Required if periodType is 'range') + * periodDays: + * type: integer + * description: Number of bookable days (Required if periodType is rolling) + * periodCountCalendarDays: + * type: boolean + * description: If calendar days should be counted for period days + * requiresConfirmation: + * type: boolean + * description: If the event type should require your confirmation before completing the booking + * recurringEvent: + * type: object + * description: If the event should recur every week/month/year with the selected frequency + * properties: + * interval: + * type: integer + * count: + * type: integer + * freq: + * type: integer + * disableGuests: + * type: boolean + * description: If the event type should disable adding guests to the booking + * hideCalendarNotes: + * type: boolean + * description: If the calendar notes should be hidden from the booking + * minimumBookingNotice: + * type: integer + * description: Minimum time in minutes before the event is bookable + * beforeEventBuffer: + * type: integer + * description: Number of minutes of buffer time before a Cal Event + * afterEventBuffer: + * type: integer + * description: Number of minutes of buffer time after a Cal Event + * schedulingType: + * type: string + * description: The type of scheduling if a Team event. Required for team events only + * enum: [ROUND_ROBIN, COLLECTIVE] + * price: + * type: integer + * description: Price of the event type booking + * currency: + * type: string + * description: Currency acronym. Eg- usd, eur, gbp, etc. + * slotInterval: + * type: integer + * description: The intervals of available bookable slots in minutes + * successRedirectUrl: + * type: string + * format: url + * description: A valid URL where the booker will redirect to, once the booking is completed successfully + * description: + * type: string + * description: Description of the event type + * locations: + * type: array + * description: A list of all available locations for the event type + * items: + * type: object + * example: + * event-type: + * summary: An example of event type POST request + * value: + * title: Hello World + * slug: hello-world + * length: 30 + * hidden: false + * position: 0 + * eventName: null + * timeZone: null + * periodType: UNLIMITED + * periodStartDate: 2023-02-15T08:46:16.000Z + * periodEndDate: 2023-0-15T08:46:16.000Z + * periodDays: null + * periodCountCalendarDays: false + * requiresConfirmation: false + * recurringEvent: null + * disableGuests: false + * hideCalendarNotes: false + * minimumBookingNotice: 120 + * beforeEventBuffer: 0 + * afterEventBuffer: 0 + * price: 0 + * currency: usd + * slotInterval: null + * successRedirectUrl: null + * description: A test event type + * metadata: { + * apps: { + * stripe: { + * price: 0, + * enabled: false, + * currency: usd + * } + * } + * } * tags: * - event-types * externalDocs: - * url: https://docs.cal.com/event-types + * url: https://docs.cal.com/core-features/event-types * responses: * 201: * description: OK, event type created