{ "openapi": "3.0.0", "paths": { "/health": { "get": { "operationId": "AppController_getHealth", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "string" } } } } } } }, "/api/v2/events/public": { "get": { "operationId": "EventsController_getPublicEvent", "parameters": [ { "name": "username", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "eventSlug", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "isTeamEvent", "required": false, "in": "query", "schema": { "type": "boolean" } }, { "name": "org", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } } } } }, "/api/v2/oauth-clients/{clientId}/users": { "get": { "operationId": "OAuthClientUsersController_getManagedUsers", "parameters": [ { "name": "clientId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } } } }, "post": { "operationId": "OAuthClientUsersController_createUser", "parameters": [ { "name": "clientId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateManagedPlatformUserInput" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } } } } }, "/api/v2/oauth-clients/{clientId}/users/{userId}": { "get": { "operationId": "OAuthClientUsersController_getUserById", "parameters": [ { "name": "clientId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "userId", "required": true, "in": "path", "schema": { "type": "number" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } } } }, "patch": { "operationId": "OAuthClientUsersController_updateUser", "parameters": [ { "name": "clientId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "userId", "required": true, "in": "path", "schema": { "type": "number" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateManagedPlatformUserInput" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } } } }, "delete": { "operationId": "OAuthClientUsersController_deleteUser", "parameters": [ { "name": "clientId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "userId", "required": true, "in": "path", "schema": { "type": "number" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } } } } }, "/api/v2/oauth-clients": { "post": { "operationId": "OAuthClientsController_createOAuthClient", "summary": "", "description": "⚠️ First, this endpoint requires `Cookie: next-auth.session-token=eyJhbGciOiJ` header. Log into Cal web app using owner of organization that was created after visiting `/settings/organizations/new`, refresh swagger docs, and the cookie will be added to requests automatically to pass the NextAuthGuard.\nSecond, make sure that the logged in user has organizationId set to pass the OrganizationRolesGuard guard.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateOAuthClientInput" } } } }, "responses": { "201": { "description": "Create an OAuth client", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateOAuthClientResponseDto" } } } } }, "tags": [ "Development only" ] }, "get": { "operationId": "OAuthClientsController_getOAuthClients", "summary": "", "description": "⚠️ First, this endpoint requires `Cookie: next-auth.session-token=eyJhbGciOiJ` header. Log into Cal web app using owner of organization that was created after visiting `/settings/organizations/new`, refresh swagger docs, and the cookie will be added to requests automatically to pass the NextAuthGuard.\nSecond, make sure that the logged in user has organizationId set to pass the OrganizationRolesGuard guard.", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetOAuthClientsResponseDto" } } } } }, "tags": [ "Development only" ] } }, "/api/v2/oauth-clients/{clientId}": { "get": { "operationId": "OAuthClientsController_getOAuthClientById", "summary": "", "description": "⚠️ First, this endpoint requires `Cookie: next-auth.session-token=eyJhbGciOiJ` header. Log into Cal web app using owner of organization that was created after visiting `/settings/organizations/new`, refresh swagger docs, and the cookie will be added to requests automatically to pass the NextAuthGuard.\nSecond, make sure that the logged in user has organizationId set to pass the OrganizationRolesGuard guard.", "parameters": [ { "name": "clientId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetOAuthClientResponseDto" } } } } }, "tags": [ "Development only" ] }, "patch": { "operationId": "OAuthClientsController_updateOAuthClient", "summary": "", "description": "⚠️ First, this endpoint requires `Cookie: next-auth.session-token=eyJhbGciOiJ` header. Log into Cal web app using owner of organization that was created after visiting `/settings/organizations/new`, refresh swagger docs, and the cookie will be added to requests automatically to pass the NextAuthGuard.\nSecond, make sure that the logged in user has organizationId set to pass the OrganizationRolesGuard guard.", "parameters": [ { "name": "clientId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateOAuthClientInput" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetOAuthClientResponseDto" } } } } }, "tags": [ "Development only" ] }, "delete": { "operationId": "OAuthClientsController_deleteOAuthClient", "summary": "", "description": "⚠️ First, this endpoint requires `Cookie: next-auth.session-token=eyJhbGciOiJ` header. Log into Cal web app using owner of organization that was created after visiting `/settings/organizations/new`, refresh swagger docs, and the cookie will be added to requests automatically to pass the NextAuthGuard.\nSecond, make sure that the logged in user has organizationId set to pass the OrganizationRolesGuard guard.", "parameters": [ { "name": "clientId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetOAuthClientResponseDto" } } } } }, "tags": [ "Development only" ] } }, "/api/v2/oauth/{clientId}/authorize": { "post": { "operationId": "OAuthFlowController_authorize", "summary": "Authorize an OAuth client", "description": "Redirects the user to the specified 'redirect_uri' with an authorization code in query parameter if the client is authorized successfully. The code is then exchanged for access and refresh tokens via the `/exchange` endpoint.", "parameters": [ { "name": "clientId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OAuthAuthorizeInput" } } } }, "responses": { "200": { "description": "The user is redirected to the 'redirect_uri' with an authorization code in query parameter e.g. `redirectUri?code=secretcode.`" }, "400": { "description": "Bad request if the OAuth client is not found, if the redirect URI is invalid, or if the user has already authorized the client." } }, "tags": [ "Development only" ] } }, "/api/v2/oauth/{clientId}/exchange": { "post": { "operationId": "OAuthFlowController_exchange", "summary": "Exchange authorization code for access tokens", "description": "Exchanges the authorization code received from the `/authorize` endpoint for access and refresh tokens. The authorization code should be provided in the 'Authorization' header prefixed with 'Bearer '.", "parameters": [ { "name": "Authorization", "required": true, "in": "header", "schema": { "type": "string" } }, { "name": "clientId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExchangeAuthorizationCodeInput" } } } }, "responses": { "200": { "description": "Successfully exchanged authorization code for access and refresh tokens.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KeysResponseDto" } } } }, "400": { "description": "Bad request if the authorization code is missing, invalid, or if the client ID and secret do not match." } }, "tags": [ "Development only" ] } }, "/api/v2/oauth/{clientId}/refresh": { "post": { "operationId": "OAuthFlowController_refreshAccessToken", "parameters": [ { "name": "clientId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "x-cal-secret-key", "required": true, "in": "header", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RefreshTokenInput" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KeysResponseDto" } } } } }, "tags": [ "Development only" ] } }, "/api/v2/event-types": { "post": { "operationId": "EventTypesController_createEventType", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateEventTypeInput" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateEventTypeOutput" } } } } }, "tags": [ "Event types" ] }, "get": { "operationId": "EventTypesController_getEventTypes", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetEventTypesOutput" } } } } }, "tags": [ "Event types" ] } }, "/api/v2/event-types/{eventTypeId}": { "get": { "operationId": "EventTypesController_getEventType", "parameters": [ { "name": "eventTypeId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetEventTypeOutput" } } } } }, "tags": [ "Event types" ] }, "patch": { "operationId": "EventTypesController_updateEventType", "parameters": [ { "name": "eventTypeId", "required": true, "in": "path", "schema": { "type": "number" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateEventTypeInput" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateEventTypeOutput" } } } } }, "tags": [ "Event types" ] }, "delete": { "operationId": "EventTypesController_deleteEventType", "parameters": [ { "name": "eventTypeId", "required": true, "in": "path", "schema": { "type": "number" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteEventTypeOutput" } } } } }, "tags": [ "Event types" ] } }, "/api/v2/event-types/{username}/public": { "get": { "operationId": "EventTypesController_getPublicEventTypes", "parameters": [ { "name": "username", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetEventTypesPublicOutput" } } } } }, "tags": [ "Event types" ] } }, "/api/v2/ee/gcal/oauth/auth-url": { "get": { "operationId": "GcalController_redirect", "parameters": [ { "name": "Authorization", "required": true, "in": "header", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } } } } }, "/api/v2/ee/gcal/oauth/save": { "get": { "operationId": "GcalController_save", "parameters": [ { "name": "state", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "code", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } } } } }, "/api/v2/ee/gcal/check": { "get": { "operationId": "GcalController_check", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } } } } }, "/api/v2/ee/provider/{clientId}": { "get": { "operationId": "CalProviderController_verifyClientId", "parameters": [ { "name": "clientId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } } } } }, "/api/v2/ee/provider/{clientId}/access-token": { "get": { "operationId": "CalProviderController_verifyAccessToken", "parameters": [ { "name": "clientId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } } } } }, "/api/v2/schedules": { "post": { "operationId": "SchedulesController_createSchedule", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateScheduleInput" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } } } }, "get": { "operationId": "SchedulesController_getSchedules", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } } } } }, "/api/v2/schedules/default": { "get": { "operationId": "SchedulesController_getDefaultSchedule", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } } } } }, "/api/v2/schedules/{scheduleId}": { "get": { "operationId": "SchedulesController_getSchedule", "parameters": [ { "name": "scheduleId", "required": true, "in": "path", "schema": { "type": "number" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } } } }, "patch": { "operationId": "SchedulesController_updateSchedule", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateScheduleInput" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } } } }, "delete": { "operationId": "SchedulesController_deleteSchedule", "parameters": [ { "name": "scheduleId", "required": true, "in": "path", "schema": { "type": "number" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } } } } }, "/api/v2/ee/me": { "get": { "operationId": "MeController_getMe", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } } } }, "patch": { "operationId": "MeController_updateMe", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateManagedPlatformUserInput" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } } } } }, "/api/v2/ee/calendars/busy-times": { "get": { "operationId": "CalendarsController_getBusyTimes", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } } } } }, "/api/v2/ee/calendars": { "get": { "operationId": "CalendarsController_getCalendars", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } } } } }, "/api/v2/ee/bookings": { "get": { "operationId": "BookingsController_getBookings", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } } } }, "post": { "operationId": "BookingsController_createBooking", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateBookingInput" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } } } } }, "/api/v2/ee/bookings/{bookingUid}": { "get": { "operationId": "BookingsController_getBooking", "parameters": [ { "name": "bookingUid", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } } } } }, "/api/v2/ee/bookings/{bookingUid}/reschedule": { "get": { "operationId": "BookingsController_getBookingForReschedule", "parameters": [ { "name": "bookingUid", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } } } } }, "/api/v2/ee/bookings/{bookingId}/cancel": { "post": { "operationId": "BookingsController_cancelBooking", "parameters": [ { "name": "bookingId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CancelBookingInput" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } } } } }, "/api/v2/ee/bookings/reccuring": { "post": { "operationId": "BookingsController_createReccuringBooking", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "string" } } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } } } } }, "/api/v2/ee/bookings/instant": { "post": { "operationId": "BookingsController_createInstantBooking", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateBookingInput" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } } } } }, "/api/v2/slots/reserve": { "post": { "operationId": "SlotsController_reserveSlot", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReserveSlotInput" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } } } } }, "/api/v2/slots/selected-slot": { "delete": { "operationId": "SlotsController_deleteSelectedSlot", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } } } } }, "/api/v2/slots/available": { "get": { "operationId": "SlotsController_getAvailableSlots", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } } } } }, "/api/v2/timezones": { "get": { "operationId": "TimezonesController_getTimeZones", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object" } } } } } } } }, "info": { "title": "Cal.com v2 API", "description": "", "version": "1.0.0", "contact": {} }, "tags": [], "servers": [], "components": { "schemas": { "CreateManagedPlatformUserInput": { "type": "object", "properties": { "email": { "type": "string" }, "name": { "type": "string" }, "timeFormat": { "type": "number" }, "weekStart": { "type": "string" }, "timeZone": { "type": "string" } }, "required": [ "email" ] }, "UpdateManagedPlatformUserInput": { "type": "object", "properties": { "email": { "type": "string" }, "name": { "type": "string" }, "timeFormat": { "type": "number" }, "defaultScheduleId": { "type": "number" }, "weekStart": { "type": "string" }, "timeZone": { "type": "string" } } }, "CreateOAuthClientInput": { "type": "object", "properties": {} }, "DataDto": { "type": "object", "properties": { "clientId": { "type": "string", "example": "clsx38nbl0001vkhlwin9fmt0" }, "clientSecret": { "type": "string", "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoib2F1dGgtY2xpZW50Iiwi" } }, "required": [ "clientId", "clientSecret" ] }, "CreateOAuthClientResponseDto": { "type": "object", "properties": { "status": { "type": "string", "enum": [ "success", "error" ], "example": "success" }, "data": { "example": { "clientId": "clsx38nbl0001vkhlwin9fmt0", "clientSecret": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoib2F1dGgtY2xpZW50Iiwi" }, "allOf": [ { "$ref": "#/components/schemas/DataDto" } ] } }, "required": [ "status", "data" ] }, "PlatformOAuthClientDto": { "type": "object", "properties": { "id": { "type": "string", "example": "clsx38nbl0001vkhlwin9fmt0" }, "name": { "type": "string", "example": "MyClient" }, "secret": { "type": "string", "example": "secretValue" }, "permissions": { "type": "number", "example": 3 }, "logo": { "type": "string", "nullable": true, "example": "https://example.com/logo.png" }, "redirectUris": { "example": [ "https://example.com/callback" ], "type": "array", "items": { "type": "string" } }, "organizationId": { "type": "number", "example": 1 }, "createdAt": { "format": "date-time", "type": "string", "example": "2024-03-23T08:33:21.851Z" } }, "required": [ "id", "name", "secret", "permissions", "redirectUris", "organizationId", "createdAt" ] }, "GetOAuthClientsResponseDto": { "type": "object", "properties": { "status": { "type": "string", "example": "success", "enum": [ "success", "error" ] }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/PlatformOAuthClientDto" } } }, "required": [ "status", "data" ] }, "GetOAuthClientResponseDto": { "type": "object", "properties": { "status": { "type": "string", "example": "success", "enum": [ "success", "error" ] }, "data": { "$ref": "#/components/schemas/PlatformOAuthClientDto" } }, "required": [ "status", "data" ] }, "UpdateOAuthClientInput": { "type": "object", "properties": { "logo": { "type": "string" }, "name": { "type": "string" }, "redirectUris": { "default": [], "type": "array", "items": { "type": "string" } } } }, "OAuthAuthorizeInput": { "type": "object", "properties": { "redirectUri": { "type": "string" } }, "required": [ "redirectUri" ] }, "ExchangeAuthorizationCodeInput": { "type": "object", "properties": { "clientSecret": { "type": "string" } }, "required": [ "clientSecret" ] }, "KeysDto": { "type": "object", "properties": { "accessToken": { "type": "string", "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9" }, "refreshToken": { "type": "string", "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9" } }, "required": [ "accessToken", "refreshToken" ] }, "KeysResponseDto": { "type": "object", "properties": { "status": { "type": "string", "example": "success", "enum": [ "success", "error" ] }, "data": { "$ref": "#/components/schemas/KeysDto" } }, "required": [ "status", "data" ] }, "RefreshTokenInput": { "type": "object", "properties": { "refreshToken": { "type": "string" } }, "required": [ "refreshToken" ] }, "EventTypeLocation": { "type": "object", "properties": { "type": { "type": "string", "example": "link" }, "link": { "type": "string", "example": "https://masterchief.com/argentina/flan/video/9129412" } }, "required": [ "type" ] }, "CreateEventTypeInput": { "type": "object", "properties": { "length": { "type": "number", "minimum": 1, "example": 60 }, "slug": { "type": "string", "example": "cooking-class" }, "title": { "type": "string", "example": "Learn the secrets of masterchief!" }, "description": { "type": "string", "example": "Discover the culinary wonders of the Argentina by making the best flan ever!" }, "locations": { "type": "array", "items": { "$ref": "#/components/schemas/EventTypeLocation" } } }, "required": [ "length", "slug", "title" ] }, "EventTypeOutput": { "type": "object", "properties": { "id": { "type": "number", "example": 1 }, "length": { "type": "number", "example": 60 }, "slug": { "type": "string", "example": "cooking-class" }, "title": { "type": "string", "example": "Learn the secrets of masterchief!" }, "description": { "type": "string", "nullable": true, "example": "Discover the culinary wonders of the Argentina by making the best flan ever!" }, "locations": { "nullable": true, "allOf": [ { "$ref": "#/components/schemas/EventTypeLocation" } ] } }, "required": [ "id", "length", "slug", "title", "description", "locations" ] }, "CreateEventTypeOutput": { "type": "object", "properties": { "status": { "type": "string", "example": "success", "enum": [ "success", "error" ] }, "data": { "$ref": "#/components/schemas/EventTypeOutput" } }, "required": [ "status", "data" ] }, "Data": { "type": "object", "properties": { "eventType": { "$ref": "#/components/schemas/EventTypeOutput" } }, "required": [ "eventType" ] }, "GetEventTypeOutput": { "type": "object", "properties": { "status": { "type": "string", "example": "success", "enum": [ "success", "error" ] }, "data": { "$ref": "#/components/schemas/Data" } }, "required": [ "status", "data" ] }, "EventTypeGroup": { "type": "object", "properties": { "eventTypes": { "type": "array", "items": { "$ref": "#/components/schemas/EventTypeOutput" } } }, "required": [ "eventTypes" ] }, "GetEventTypesData": { "type": "object", "properties": { "eventTypeGroups": { "type": "array", "items": { "$ref": "#/components/schemas/EventTypeGroup" } } }, "required": [ "eventTypeGroups" ] }, "GetEventTypesOutput": { "type": "object", "properties": { "status": { "type": "string", "example": "success", "enum": [ "success", "error" ] }, "data": { "$ref": "#/components/schemas/GetEventTypesData" } }, "required": [ "status", "data" ] }, "PublicEventType": { "type": "object", "properties": { "id": { "type": "number", "example": 1 }, "length": { "type": "number", "example": 60 }, "slug": { "type": "string", "example": "cooking-class" }, "title": { "type": "string", "example": "Learn the secrets of masterchief!" }, "description": { "type": "string", "nullable": true } }, "required": [ "id", "length", "slug", "title" ] }, "GetEventTypesPublicOutput": { "type": "object", "properties": { "status": { "type": "string", "example": "success", "enum": [ "success", "error" ] }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/PublicEventType" } } }, "required": [ "status", "data" ] }, "UpdateEventTypeInput": { "type": "object", "properties": { "length": { "type": "number", "minimum": 1 }, "slug": { "type": "string" }, "title": { "type": "string" }, "description": { "type": "string" }, "hidden": { "type": "boolean" }, "locations": { "type": "array", "items": { "$ref": "#/components/schemas/EventTypeLocation" } } } }, "UpdateEventTypeOutput": { "type": "object", "properties": { "status": { "type": "string", "example": "success", "enum": [ "success", "error" ] }, "data": { "$ref": "#/components/schemas/EventTypeOutput" } }, "required": [ "status", "data" ] }, "DeleteData": { "type": "object", "properties": { "id": { "type": "number", "example": 1 }, "length": { "type": "number", "example": 60 }, "slug": { "type": "string", "example": "cooking-class" }, "title": { "type": "string", "example": "Learn the secrets of masterchief!" } }, "required": [ "id", "length", "slug", "title" ] }, "DeleteEventTypeOutput": { "type": "object", "properties": { "status": { "type": "string", "example": "success", "enum": [ "success", "error" ] }, "data": { "$ref": "#/components/schemas/DeleteData" } }, "required": [ "status", "data" ] }, "CreateAvailabilityInput": { "type": "object", "properties": { "days": { "type": "array", "items": { "type": "number" } }, "startTime": { "format": "date-time", "type": "string" }, "endTime": { "format": "date-time", "type": "string" } }, "required": [ "days", "startTime", "endTime" ] }, "CreateScheduleInput": { "type": "object", "properties": { "name": { "type": "string" }, "timeZone": { "type": "string" }, "availabilities": { "type": "array", "items": { "$ref": "#/components/schemas/CreateAvailabilityInput" } }, "isDefault": { "type": "object", "default": true } }, "required": [ "name", "timeZone", "isDefault" ] }, "UpdateScheduleInput": { "type": "object", "properties": {} }, "CreateBookingInput": { "type": "object", "properties": { "end": { "type": "string" }, "start": { "type": "string" }, "eventTypeId": { "type": "number" }, "eventTypeSlug": { "type": "string" }, "rescheduleUid": { "type": "string" }, "recurringEventId": { "type": "string" }, "timeZone": { "type": "string" }, "user": { "type": "array", "items": { "type": "string" } }, "language": { "type": "string" }, "bookingUid": { "type": "string" }, "metadata": { "type": "object" }, "hasHashedBookingLink": { "type": "boolean" }, "hashedLink": { "type": "string", "nullable": true }, "seatReferenceUid": { "type": "string" } }, "required": [ "start", "eventTypeId", "timeZone", "language", "metadata", "hashedLink" ] }, "CancelBookingInput": { "type": "object", "properties": {} }, "ReserveSlotInput": { "type": "object", "properties": {} } } } }