openapi: 3.0.1 info: title: HubSpot Scheduler Meetings description: Meetings Service For HubSpot Sales version: 2026-03 x-hubspot-product-tier-requirements: marketing: FREE sales: FREE service: FREE cms: FREE commerce: FREE crmHub: FREE dataHub: FREE servers: - url: https://api.hubapi.com tags: - name: Advanced - name: Basic paths: /scheduler/2026-03/meetings/calendar: post: tags: - Advanced summary: Create meeting description: Create a new calendar meeting event in your HubSpot account. This endpoint allows you to specify details such as the meeting title, start and end times, and associated users. The organizerUserId is required to identify the meeting organizer. operationId: post-/scheduler/2026-03/meetings/calendar parameters: - name: organizerUserId in: query description: The unique identifier of the user organizing the meeting. This parameter is required. required: true style: form explode: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ExternalCalendarMeetingEventCreateRequest' required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ExternalCalenderMeetingEventResponse' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - crm.objects.contacts.highly_sensitive.write.v2 - oauth2: - tickets - oauth2: - crm.objects.commercepayments.write - oauth2: - crm.objects.goals.write - oauth2: - crm.objects.line_items.write - oauth2: - crm.objects.contacts.write - oauth2: - crm.objects.products.write - oauth2: - crm.objects.projects.write - oauth2: - crm.objects.contacts.sensitive.write.v2 - oauth2: - crm.objects.services.write - oauth2: - crm.objects.projects.sensitive.write - oauth2: - crm.objects.deals.sensitive.write.v2 - oauth2: - tickets.highly_sensitive.v2 - oauth2: - crm.objects.listings.write - oauth2: - crm.objects.appointments.sensitive.write.v2 - oauth2: - crm.objects.companies.write - oauth2: - crm.objects.courses.write - oauth2: - crm.objects.appointments.write - oauth2: - tickets.sensitive.v2 - oauth2: - crm.objects.deals.write - oauth2: - crm.objects.projects.highly_sensitive.write - oauth2: - crm.objects.companies.sensitive.write.v2 - oauth2: - crm.objects.deals.highly_sensitive.write.v2 - oauth2: - crm.objects.companies.highly_sensitive.write.v2 - oauth2: - crm.schemas.meetings.write x-hubspot-user-level-auth: internalOnly: false /scheduler/2026-03/meetings/meeting-links: get: tags: - Basic summary: List Meeting Links description: Retrieve a list of meeting links available in the HubSpot account. This endpoint allows filtering by various criteria such as meeting name, organizer user ID, and meeting type. It supports pagination to navigate through large sets of results. operationId: get-/scheduler/2026-03/meetings/meeting-links parameters: - name: after in: query description: The paging cursor token of the last successfully read resource, used for pagination. required: false style: form explode: true schema: type: string - name: limit in: query description: The maximum number of results to display per page. required: false style: form explode: true schema: type: integer format: int32 - name: name in: query description: Filter meeting links by name. required: false style: form explode: true schema: type: string - name: organizerUserId in: query description: Filter meeting links by the organizer's user ID. required: false style: form explode: true schema: type: string - name: type in: query description: Filter meeting links by type. Valid values are PERSONAL_LINK, GROUP_CALENDAR, and ROUND_ROBIN_CALENDAR. required: false style: form explode: true schema: type: string enum: - GROUP_CALENDAR - PERSONAL_LINK - ROUND_ROBIN_CALENDAR responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CollectionResponseWithTotalExternalLinkMetadata' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - scheduler.meetings.meeting-link.read x-hubspot-user-level-auth: internalOnly: false /scheduler/2026-03/meetings/meeting-links/book: post: tags: - Advanced summary: Book Meeting description: Book a meeting using a specified meeting link. This endpoint allows you to create a meeting by providing necessary details such as duration, email, and start time. It is useful for scheduling meetings programmatically through HubSpot's API. operationId: post-/scheduler/2026-03/meetings/meeting-links/book parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/ExternalMeetingBooking' required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ExternalMeetingBookingResponse' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - crm.objects.contacts.highly_sensitive.write.v2 - oauth2: - tickets - oauth2: - crm.objects.commercepayments.write - oauth2: - crm.objects.goals.write - oauth2: - crm.objects.line_items.write - oauth2: - crm.objects.contacts.write - oauth2: - crm.objects.products.write - oauth2: - crm.objects.projects.write - oauth2: - crm.objects.contacts.sensitive.write.v2 - oauth2: - crm.objects.services.write - oauth2: - crm.objects.projects.sensitive.write - oauth2: - crm.objects.deals.sensitive.write.v2 - oauth2: - tickets.highly_sensitive.v2 - oauth2: - crm.objects.listings.write - oauth2: - crm.objects.appointments.sensitive.write.v2 - oauth2: - crm.objects.companies.write - oauth2: - crm.objects.courses.write - oauth2: - crm.objects.appointments.write - oauth2: - tickets.sensitive.v2 - oauth2: - crm.objects.deals.write - oauth2: - crm.objects.projects.highly_sensitive.write - oauth2: - crm.objects.companies.sensitive.write.v2 - oauth2: - crm.objects.deals.highly_sensitive.write.v2 - oauth2: - crm.objects.companies.highly_sensitive.write.v2 - oauth2: - crm.schemas.meetings.write x-hubspot-user-level-auth: internalOnly: false /scheduler/2026-03/meetings/meeting-links/book/availability-page/{slug}: get: tags: - Basic summary: Retrieve availability description: Retrieve the availability and busy times for a specific meeting link. This endpoint is useful for checking available slots for booking meetings based on the provided slug. It requires specifying the timezone and optionally allows adjusting the month view with an offset. operationId: get-/scheduler/2026-03/meetings/meeting-links/book/availability-page/{slug} parameters: - name: slug in: path description: The unique identifier for the meeting link whose availability is being retrieved. required: true style: simple explode: false schema: type: string - name: timezone in: query description: The timezone in which the availability should be checked. This parameter is required. required: true style: form explode: true schema: type: string - name: monthOffset in: query description: An optional integer to adjust the month view. It allows you to view availability for future or past months. required: false style: form explode: true schema: type: integer format: int32 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ExternalLinkAvailabilityAndBusyTimes' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - scheduler.meetings.meeting-link.read x-hubspot-user-level-auth: internalOnly: false /scheduler/2026-03/meetings/meeting-links/book/{slug}: get: tags: - Basic summary: Retrieve booking info description: Retrieve detailed booking information for a specific meeting link using its slug. This endpoint provides insights into the availability and settings associated with the meeting link. It is useful for understanding the booking context and ensuring that the correct timezone is applied. operationId: get-/scheduler/2026-03/meetings/meeting-links/book/{slug} parameters: - name: slug in: path description: The unique identifier for the meeting link to retrieve booking information for. required: true style: simple explode: false schema: type: string - name: timezone in: query description: The timezone to be used for the meeting link. This is required to ensure the correct scheduling context. required: true style: form explode: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ExternalBookingInfo' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - scheduler.meetings.meeting-link.read x-hubspot-user-level-auth: internalOnly: false components: schemas: AssociationSpec: required: - associationCategory - associationTypeId type: object properties: associationCategory: type: string description: A string indicating the category of the association. Valid values include 'HUBSPOT_DEFINED', 'USER_DEFINED', 'INTEGRATOR_DEFINED', and 'WORK'. enum: - HUBSPOT_DEFINED - INTEGRATOR_DEFINED - USER_DEFINED - WORK associationTypeId: type: integer description: An integer representing the unique identifier for the type of association. format: int32 description: Defines the type, direction, and details of the relationship between two CRM objects. CollectionResponseWithTotalExternalLinkMetadata: required: - results - total type: object properties: paging: $ref: '#/components/schemas/Paging' results: type: array description: An array of external link metadata objects. Each object contains details about an external meeting link. items: $ref: '#/components/schemas/ExternalLinkMetadata' total: type: integer description: The total number of external link metadata entries available. This is an integer value. format: int32 Error: required: - category - correlationId - message type: object properties: category: type: string description: The error category. It is a string. context: type: object additionalProperties: type: array items: type: string description: Context about the error condition. It is an object where each property is an array of strings. example: '{invalidPropertyName=[propertyValue], missingScopes=[scope1, scope2]}' correlationId: type: string description: A unique identifier for the request. Include this value with any error reports or support tickets. It is a string in UUID format. format: uuid example: aeb5f871-7f07-4993-9211-075dc63e7cbf errors: type: array description: Further information about the error. It is an array of ErrorDetail objects. items: $ref: '#/components/schemas/ErrorDetail' links: type: object additionalProperties: type: string description: A map of link names to associated URIs containing documentation about the error or recommended remediation steps. It is an object where each property is a string. message: type: string description: A human readable message describing the error along with remediation steps where appropriate. It is a string. example: An error occurred subCategory: type: string description: A specific category that contains more specific detail about the error. It is a string. description: Represents an error response returned by the API when an operation fails. This component is used in various endpoints to provide detailed information about the error encountered. example: message: Invalid input (details will vary based on the error) correlationId: aeb5f871-7f07-4993-9211-075dc63e7cbf category: VALIDATION_ERROR links: knowledge-base: https://www.hubspot.com/products/service/knowledge-base ErrorDetail: required: - message type: object properties: code: type: string description: The status code associated with the error detail. context: type: object additionalProperties: type: array items: type: string description: Context about the error condition, represented as an object where each property is an array of strings providing additional information. example: '{missingScopes=[scope1, scope2]}' in: type: string description: The name of the field or parameter in which the error was found. message: type: string description: A human readable message describing the error along with remediation steps where appropriate. This is a required field. subCategory: type: string description: A specific category that contains more specific detail about the error. description: Represents detailed information about an error that occurred in the API. This component is used to provide additional context and specifics about errors, typically as part of an error response. ExternalAssociationCreateRequest: required: - to - types type: object properties: to: $ref: '#/components/schemas/PublicObjectId' types: type: array description: An array of association specifications, detailing the types of associations to be created. Each item in the array is an object that defines the association type. items: $ref: '#/components/schemas/AssociationSpec' ExternalBookingFormField: required: - name - value type: object properties: name: type: string description: The name of the form field, represented as a string. value: type: string description: The value associated with the form field, represented as a string. ExternalBookingInfo: required: - allUsersBusyTimes - customParams - isOffline - linkId - linkType type: object properties: allUsersBusyTimes: type: array description: An array of objects representing the busy times for all users associated with the meeting link. items: $ref: '#/components/schemas/ExternalUserBusyTimes' brandingMetadata: $ref: '#/components/schemas/ExternalBrandingMetadata' customParams: $ref: '#/components/schemas/ExternalMeetingsLinkSettings' isOffline: type: boolean description: A boolean indicating whether the meeting link is offline. linkAvailability: $ref: '#/components/schemas/ExternalLinkAvailability' linkId: type: string description: The unique identifier for the meeting link. linkType: type: string description: The type of meeting link. Valid values include 'PERSONAL_LINK', 'GROUP_CALENDAR', and 'ROUND_ROBIN_CALENDAR'. enum: - GROUP_CALENDAR - PERSONAL_LINK - ROUND_ROBIN_CALENDAR ExternalBrandingMetadata: required: - logoAltText - showMarketingAd - showSalesAd type: object properties: accent2Color: type: string description: The second accent color used for branding, represented as a string. accentColor: type: string description: The accent color used for branding, represented as a string. companyAddressLine1: type: string description: The first line of the company's address. companyAddressLine2: type: string description: The second line of the company's address, if applicable. companyAvatar: type: string description: The URL of the company's avatar image. companyCity: type: string description: The city where the company is located. companyCountry: type: string description: The country where the company is located. companyDomain: type: string description: The domain of the company, typically used in URLs. companyName: type: string description: The name of the company. companyState: type: string description: The state or region where the company is located. companyZip: type: string description: The postal or ZIP code of the company's location. logoAltText: type: string description: The alternative text for the company logo, used for accessibility. logoHeight: type: integer description: The height of the company logo in pixels. format: int32 logoUrl: type: string description: The URL of the company logo image. logoWidth: type: integer description: The width of the company logo in pixels. format: int32 primaryColor: type: string description: The primary color used for branding, represented as a string. secondaryColor: type: string description: The secondary color used for branding, represented as a string. showMarketingAd: type: boolean description: Indicates whether a marketing advertisement should be displayed. This is a boolean value. showSalesAd: type: boolean description: Indicates whether a sales advertisement should be displayed. This is a boolean value. ExternalCalendarMeetingEventCreateProperties: required: - hs_meeting_end_time - hs_meeting_outcome - hs_meeting_start_time - hs_meeting_title - hs_timestamp - hubspot_owner_id type: object properties: hs_activity_type: type: string description: The type of activity for the meeting. This is a string value. hs_attachment_ids: type: array description: An array of strings representing the IDs of attachments associated with the meeting. items: type: string hs_attendee_owner_ids: type: array description: An array of strings representing the IDs of the owners of the attendees for the meeting. items: type: string hs_internal_meeting_notes: type: string description: Internal notes for the meeting. This is a string value. hs_meeting_body: type: string description: The body content or description of the meeting. This is a string value. hs_meeting_end_time: type: string description: The end time of the meeting, in ISO 8601 format. format: date-time hs_meeting_location: type: string description: The location of the meeting. This is a string value. hs_meeting_location_type: type: string description: The type of location for the meeting. Valid values include 'PHONE', 'ADDRESS', and 'CUSTOM'. enum: - ADDRESS - CUSTOM - PHONE hs_meeting_outcome: type: string description: A string representing the outcome of the meeting. hs_meeting_start_time: type: string description: The start time of the meeting, in ISO 8601 format. format: date-time hs_meeting_title: type: string description: The title of the meeting. This is a string value. hs_timestamp: type: string description: A timestamp indicating when the meeting event was created, in ISO 8601 format. format: date-time hubspot_owner_id: type: string description: The unique identifier of the HubSpot owner associated with the meeting. ExternalCalendarMeetingEventCreateRequest: required: - associations - emailReminderSchedule - properties - timezone type: object properties: associations: type: array description: An array of associations related to the meeting event, each represented by an ExternalAssociationCreateRequest object. items: $ref: '#/components/schemas/ExternalAssociationCreateRequest' emailReminderSchedule: $ref: '#/components/schemas/ExternalEmailReminderSchedule' properties: $ref: '#/components/schemas/ExternalCalendarMeetingEventCreateProperties' timezone: type: string description: A string representing the timezone in which the meeting event is scheduled. ExternalCalendarMeetingEventResponseProperties: required: - hs_engagement_source - hs_engagement_source_id - hs_meeting_end_time - hs_meeting_outcome - hs_meeting_start_time - hs_meeting_title - hs_timestamp type: object properties: hs_activity_type: type: string description: The type of activity associated with the meeting. hs_attachment_ids: type: array description: An array of unique identifiers for attachments associated with the meeting. items: type: string hs_attendee_owner_ids: type: array description: An array of unique identifiers for the owners of the attendees. items: type: string hs_engagement_source: type: string description: The source of the engagement. Valid values include a wide range of sources such as 'UNKNOWN', 'IMPORT', 'API', 'FORM', and many others. enum: - ACADEMY - ACCEPTANCE_TEST - ACTIVITY_AUTO_ASSOCIATE - ACTIVITY_LOG_REVERT - ADS - AI_GROUP - ANALYTICS - API - APPROVALS - ASSISTS - ASSOCIATIONS - AUTO_ASSOCIATE_BY_DOMAIN - AUTOMATION_JOURNEY - AUTOMATION_PLATFORM - AVATARS_SERVICE - BATCH_UPDATE - BCC_TO_CRM - BEHAVIORAL_EVENTS - BET_ASSIGNMENT - BET_CRM_CONNECTOR - BIDEN - BILLING - BOT - BREEZE_AGENT - CALCULATED - CENTRAL_EXCHANGE_RATES - CHATSPOT - CLONE_OBJECTS - COMMUNICATOR - COMPANIES - COMPANY_FAMILIES - COMPANY_INSIGHTS - CONNECTED_ACCOUNT - CONTACTS - CONTACTS_WEB - CONTENT_MEMBERSHIP - CONVERSATIONAL_ENRICHMENT - CONVERSATIONS - CRM_PROCESSES_PLATFORM - CRM_UI - CRM_UI_BULK_ACTION - CUSTOMER_AGENT - CUSTOMER_PORTAL - DATA_ENRICHMENT - DATA_QUALITY - DATASET - DEALS - DEFAULT - DELETE_OBJECTS - DI_WRITE_TO_CRM - EMAIL - EMAIL_INBOX_IMPORT - EMAIL_INTEGRATION - ENGAGEMENTS - EXTENSION - FILE_MANAGER - FLYWHEEL_PRODUCT_DATA_SYNC - FORECASTING - FORM - FORWARD_TO_CRM - GMAIL_INTEGRATION - GOALS - HEISENBERG - HELP_DESK - HELP_DESK_AI - IMPORT - INTEGRATION - INTEGRATIONS_PLATFORM - INTEGRATIONS_SYNC - INTENT - INTERNAL_PROCESSING - LEADIN - LEGAL_BASIS_REMEDIATION - MARKET_SOURCING - MARKETPLACE - MARKETS - MEETINGS - MERGE_COMPANIES - MERGE_CONTACTS - MERGE_OBJECTS - MERGE_REVERT_OBJECTS - MICROAPPS - MIGRATION - MOBILE_ANDROID - MOBILE_IOS - PAYMENTS - PIPELINE_SETTINGS - PLAYBOOKS - PORTAL_OBJECT_SYNC - PORTAL_USER_ASSOCIATOR - PRESENTATIONS - PRIMARY_AUTOMATION - PROPERTY_DEFAULT_VALUE - PROPERTY_RESTORE - PROPERTY_SETTINGS - PROSPECTING_AGENT - QUOTAS - QUOTES - RECYCLING_BIN - RESTORE_OBJECTS - REVENUE_PLATFORM - SALES - SALES_MESSAGES - SALESFORCE - SEQUENCES - SETTINGS - SIDEKICK - SIGNALS - SLACK_INTEGRATION - SMART_DATA_CAPTURE - SOCIAL - SUCCESS - TALLY - TASK - UNKNOWN - WAL_INCREMENTAL - WORK_UI - WORKFLOW_CONTACT_DELETE_ACTION - WORKFLOWS hs_engagement_source_id: type: string description: The unique identifier for the source of the engagement. hs_include_description_in_reminder: type: string description: Indicates whether the meeting description should be included in reminders. hs_internal_meeting_notes: type: string description: Internal notes related to the meeting. hs_meeting_body: type: string description: The body or description of the meeting. hs_meeting_end_time: type: string description: The end time of the meeting, in ISO 8601 format. format: date-time hs_meeting_external_url: type: string description: The external URL associated with the meeting. hs_meeting_location: type: string description: The location where the meeting is held. hs_meeting_location_type: type: string description: The type of location for the meeting. Valid values include 'PHONE', 'ADDRESS', and 'CUSTOM'. enum: - ADDRESS - CUSTOM - PHONE hs_meeting_outcome: type: string description: The outcome of the meeting. hs_meeting_start_time: type: string description: The start time of the meeting, in ISO 8601 format. format: date-time hs_meeting_title: type: string description: The title of the meeting. hs_timestamp: type: string description: A timestamp indicating when the meeting event was recorded, in ISO 8601 format. format: date-time hs_unique_id: type: string description: A unique identifier for the meeting event. hubspot_owner_id: type: string description: The unique identifier of the HubSpot owner associated with the meeting. ExternalCalenderMeetingEventResponse: required: - createdAt - id - lastUpdatedAt - properties type: object properties: createdAt: type: string description: The date and time when the calendar meeting event was created, in ISO 8601 format. format: date-time id: type: string description: The unique identifier for the calendar meeting event. lastUpdatedAt: type: string description: The date and time when the calendar meeting event was last updated, in ISO 8601 format. format: date-time properties: $ref: '#/components/schemas/ExternalCalendarMeetingEventResponseProperties' ExternalClosedRange: required: - end - start type: object properties: end: type: integer description: The ending point of the range, represented as an integer in int64 format. format: int64 start: type: integer description: The starting point of the range, represented as an integer in int64 format. format: int64 ExternalCommunicationConsentCheckbox: required: - communicationTypeId - label - required type: object properties: communicationTypeId: type: string description: A string representing the unique identifier for the type of communication this checkbox pertains to. label: type: string description: A string that contains the text label displayed next to the checkbox, describing the communication type or purpose. required: type: boolean description: A boolean indicating whether this checkbox must be checked by the user to proceed, signifying mandatory consent. ExternalEmailReminderSchedule: required: - reminders - shouldIncludeInviteDescription type: object properties: reminders: type: array description: An array of ExternalReminder objects that specify the timing and frequency of the email reminders. items: $ref: '#/components/schemas/ExternalReminder' shouldIncludeInviteDescription: type: boolean description: A boolean indicating whether the invite description should be included in the email reminder. ExternalGuestSettings: required: - canAddGuests - maxGuestCount type: object properties: canAddGuests: type: boolean description: A boolean indicating whether guests can be added to the meeting. maxGuestCount: type: integer description: An integer specifying the maximum number of guests that can be added to the meeting. format: int32 ExternalLegalConsentOptions: required: - communicationConsentCheckboxes - communicationConsentText - isLegitimateInterest - legitimateInterestSubscriptionTypes - privacyPolicyText - processingConsentCheckboxLabel - processingConsentFooterText - processingConsentText - processingConsentType type: object properties: communicationConsentCheckboxes: type: array description: An array of communication consent checkboxes, each defined by an ExternalCommunicationConsentCheckbox object. items: $ref: '#/components/schemas/ExternalCommunicationConsentCheckbox' communicationConsentText: type: string description: A string containing the text for communication consent. isLegitimateInterest: type: boolean description: A boolean indicating whether legitimate interest is applicable. legitimateInterestLegalBasis: type: string description: A string indicating the legal basis for legitimate interest. Valid values include 'LEGITIMATE_INTEREST_PQL', 'LEGITIMATE_INTEREST_CLIENT', 'PERFORMANCE_OF_CONTRACT', 'CONSENT_WITH_NOTICE', 'NON_GDPR', 'PROCESS_AND_STORE', and 'LEGITIMATE_INTEREST_OTHER'. enum: - CONSENT_WITH_NOTICE - LEGITIMATE_INTEREST_CLIENT - LEGITIMATE_INTEREST_OTHER - LEGITIMATE_INTEREST_PQL - NON_GDPR - PERFORMANCE_OF_CONTRACT - PROCESS_AND_STORE legitimateInterestSubscriptionTypes: type: array description: An array of integers representing the subscription types that fall under legitimate interest. items: type: integer format: int64 privacyPolicyText: type: string description: A string containing the text for the privacy policy. processingConsentCheckboxLabel: type: string description: A string representing the label for the processing consent checkbox. processingConsentFooterText: type: string description: A string containing the footer text for processing consent. processingConsentText: type: string description: A string containing the text for processing consent. processingConsentType: type: string description: A string indicating the type of processing consent. Valid values are 'IMPLICIT' and 'REQUIRED_CHECKBOX'. enum: - IMPLICIT - REQUIRED_CHECKBOX ExternalLegalConsentResponse: required: - communicationTypeId - consented type: object properties: communicationTypeId: type: string description: A string representing the unique identifier for the type of communication for which consent is being recorded. consented: type: boolean description: A boolean indicating whether the user has given consent for the communication type. It is true if consent is given, otherwise false. ExternalLinkAvailability: required: - hasMore - linkAvailabilityByDuration type: object properties: hasMore: type: boolean description: A boolean indicating whether there are more available meeting times beyond those currently provided. linkAvailabilityByDuration: type: object additionalProperties: $ref: '#/components/schemas/ExternalLinkAvailabilityForDuration' description: An object where each key is a duration and the value is an availability object for that duration. This provides detailed availability information for each specified meeting duration. ExternalLinkAvailabilityAndBusyTimes: required: - allUsersBusyTimes type: object properties: allUsersBusyTimes: type: array description: An array of objects representing the busy times for all users associated with the meeting link. Each object includes the user's busy time ranges. items: $ref: '#/components/schemas/ExternalUserBusyTimes' linkAvailability: $ref: '#/components/schemas/ExternalLinkAvailability' ExternalLinkAvailabilityForDuration: required: - availabilities - meetingDurationMillis type: object properties: availabilities: type: array description: An array of available time slots for the specified meeting duration. Each item in the array is an object representing a time slot's start and end times. items: $ref: '#/components/schemas/ExternalMeetingAvailability' meetingDurationMillis: type: integer description: The duration of the meeting in milliseconds. This is an integer value representing the length of the meeting. format: int64 ExternalLinkDisplayInfo: type: object properties: avatar: type: string description: A string representing the URL of the avatar image to be displayed. companyAvatar: type: string description: A string representing the URL of the company avatar image to be displayed. headline: type: string description: A string representing the headline text to be displayed with the meeting link. publicDisplayAvatarOption: type: string description: A string indicating the avatar display option, with valid values including 'PROFILE_IMAGE', 'COMPANY_LOGO', and 'CUSTOM_AVATAR'. enum: - COMPANY_LOGO - CUSTOM_AVATAR - PROFILE_IMAGE ExternalLinkFormField: required: - fieldType - isCustom - isRequired - label - name - options - type type: object properties: fieldType: type: string description: The type of the form field, represented as a string, indicating the kind of input expected. isCustom: type: boolean description: A boolean indicating whether the form field is a custom field defined by the user. isRequired: type: boolean description: A boolean indicating whether the form field is mandatory for the user to fill out. label: type: string description: The display label for the form field, shown to users, represented as a string. name: type: string description: The unique name identifier for the form field, represented as a string. options: type: array description: An array of options available for the form field, applicable if the field type supports multiple choices. items: $ref: '#/components/schemas/ExternalOption' type: type: string description: The specific data type of the form field, represented as a string. ExternalLinkMetadata: required: - createdAt - defaultLink - id - link - organizerUserId - slug - type - userIdsOfLinkMembers type: object properties: createdAt: type: string description: The date and time when the meeting link was created, in ISO 8601 format. format: date-time defaultLink: type: boolean description: A boolean indicating whether this is the default meeting link. id: type: string description: The unique identifier for the meeting link. link: type: string description: The full URL of the meeting link. name: type: string description: The name of the meeting link. organizerUserId: type: string description: The unique identifier of the user who organized the meeting. paymentLinkId: type: string description: An integer representing the identifier for the payment link associated with the meeting. slug: type: string description: A string representing the unique part of the URL for the meeting link. type: type: string description: The type of meeting link. Valid values include 'PERSONAL_LINK', 'GROUP_CALENDAR', and 'ROUND_ROBIN_CALENDAR'. enum: - GROUP_CALENDAR - PERSONAL_LINK - ROUND_ROBIN_CALENDAR updatedAt: type: string description: The date and time when the meeting link was last updated, in ISO 8601 format. format: date-time userIdsOfLinkMembers: type: array description: An array of user IDs representing the members associated with the meeting link. items: type: string ExternalMeetingAvailability: required: - endMillisUtc - startMillisUtc type: object properties: endMillisUtc: type: integer description: The end time of the meeting availability, represented as a Unix timestamp in milliseconds. format: int64 startMillisUtc: type: integer description: The start time of the meeting availability, represented as a Unix timestamp in milliseconds. format: int64 ExternalMeetingBooking: required: - duration - email - firstName - formFields - lastName - legalConsentResponses - likelyAvailableUserIds - slug - startTime type: object properties: duration: type: integer description: An integer representing the duration of the meeting in minutes. format: int64 email: type: string description: The email address of the person booking the meeting. firstName: type: string description: The first name of the person booking the meeting. formFields: type: array description: An array of form fields filled out by the participant, each containing a name and value. items: $ref: '#/components/schemas/ExternalBookingFormField' lastName: type: string description: The last name of the person booking the meeting. legalConsentResponses: type: array description: An array of legal consent responses, each detailing the consent given by the participant. items: $ref: '#/components/schemas/ExternalLegalConsentResponse' likelyAvailableUserIds: type: array description: An array of strings representing the user IDs of those likely available for the meeting. items: type: string locale: type: string description: A string representing the locale of the person booking the meeting. slug: type: string description: A string representing the unique identifier for the meeting link. startTime: type: string description: The start time of the meeting in ISO 8601 date-time format. format: date-time timezone: type: string description: A string representing the timezone of the person booking the meeting. ExternalMeetingBookingResponse: required: - bookingTimezone - calendarEventId - contactId - duration - end - formFields - guestEmails - isOffline - legalConsentResponses - start - subject type: object properties: bookingTimezone: type: string description: The timezone in which the meeting was booked, represented as a string. calendarEventId: type: string description: The unique identifier for the calendar event associated with this meeting. contactId: type: string description: The unique identifier for the contact associated with this meeting. duration: type: integer description: The duration of the meeting in minutes, represented as an integer. format: int64 end: type: string description: The end date and time of the meeting, in ISO 8601 format. format: date-time formFields: type: array description: An array of validated form fields submitted during the booking process, each represented by an ExternalValidatedFormField object. items: $ref: '#/components/schemas/ExternalValidatedFormField' guestEmails: type: array description: An array of email addresses for the guests invited to the meeting. items: type: string isOffline: type: boolean description: A boolean indicating whether the meeting is offline (true) or online (false). legalConsentResponses: type: array description: An array of legal consent responses associated with the meeting, each represented by an ExternalLegalConsentResponse object. items: $ref: '#/components/schemas/ExternalLegalConsentResponse' locale: type: string description: The locale setting for the meeting, represented as a string. location: type: string description: The location of the meeting, represented as a string. start: type: string description: The start date and time of the meeting, in ISO 8601 format. format: date-time subject: type: string description: The subject or title of the meeting, represented as a string. webConferenceMeetingId: type: string description: The unique identifier for the web conference meeting, if applicable. webConferenceUrl: type: string description: The URL for the web conference associated with the meeting, if applicable. ExternalMeetingsLinkSettings: required: - availability - durations - formFields - legalConsentEnabled - meetingBufferTime - ownerPrioritized - startTimeIncrementMinutes - weeksToAdvertise type: object properties: availability: type: object additionalProperties: $ref: '#/components/schemas/ExternalClosedRange' description: An object representing the availability settings for the meeting link, with additional properties for closed ranges. customAvailabilityEndDate: type: integer description: An integer representing the custom availability end date as a Unix timestamp in milliseconds. format: int64 customAvailabilityStartDate: type: integer description: An integer representing the custom availability start date as a Unix timestamp in milliseconds. format: int64 displayInfo: $ref: '#/components/schemas/ExternalLinkDisplayInfo' durations: type: array description: An array of integers representing the possible durations for meetings in milliseconds. items: type: integer format: int64 formFields: type: array description: An array of form fields that are included in the meeting link form. items: $ref: '#/components/schemas/ExternalLinkFormField' guestSettings: $ref: '#/components/schemas/ExternalGuestSettings' language: type: string description: A string representing the language setting for the meeting link. legalConsentEnabled: type: boolean description: A boolean indicating whether legal consent is required for the meeting link. legalConsentOptions: $ref: '#/components/schemas/ExternalLegalConsentOptions' locale: type: string description: A string representing the locale setting for the meeting link. location: type: string description: A string representing the location information for the meeting. meetingBufferTime: type: integer description: An integer representing the buffer time between meetings in milliseconds. format: int64 ownerPrioritized: type: boolean description: A boolean indicating whether the meeting owner is prioritized in scheduling. redirectUrl: type: string description: A string representing the URL to which users are redirected after booking a meeting. startTimeIncrementMinutes: type: string description: A string indicating the increment for start times, with valid values including 'MEETING_DURATION', 'FIVE', 'TEN', 'FIFTEEN', 'TWENTY', 'THIRTY', 'FORTY_FIVE', 'SIXTY', 'NINETY', and 'ONE_HUNDRED_TWENTY'. enum: - FIFTEEN - FIVE - FORTY_FIVE - MEETING_DURATION - NINETY - ONE_HUNDRED_TWENTY - SIXTY - TEN - THIRTY - TWENTY weeksToAdvertise: type: integer description: An integer representing the number of weeks to advertise the meeting link. format: int32 welcomeScreenInfo: $ref: '#/components/schemas/ExternalMeetingsWelcomeScreenInfo' ExternalMeetingsUser: required: - calendarProvider - id - isSalesStarter - userId - userProfile type: object properties: calendarProvider: type: string description: The calendar service provider used by the user. Valid values include 'GOOGLE', 'OFFICE365', 'EXCHANGE', and 'UNKNOWN'. enum: - EXCHANGE - GOOGLE - OFFICE365 - UNKNOWN id: type: string description: The unique identifier for the meetings user. isSalesStarter: type: boolean description: A boolean indicating whether the user is a sales starter. userId: type: string description: The unique identifier for the user associated with the meetings service. userProfile: $ref: '#/components/schemas/ExternalUserProfile' ExternalMeetingsWelcomeScreenInfo: type: object properties: description: type: string description: A descriptive text shown on the welcome screen. It is a string value. logoUrl: type: string description: The URL of the logo image displayed on the welcome screen. It is a string value. showWelcomeScreen: type: boolean description: A boolean indicating whether the welcome screen should be displayed to users. title: type: string description: The title displayed on the welcome screen. It is a string value. useCompanyLogo: type: boolean description: A boolean indicating whether the company's logo should be used on the welcome screen. ExternalOption: required: - description - displayOrder - doubleData - hidden - label - readOnly - value type: object properties: description: type: string description: A string providing a detailed description of the option. displayOrder: type: integer description: An integer indicating the order in which the option should be displayed relative to other options. format: int32 doubleData: type: number description: A number that may hold additional data associated with the option. hidden: type: boolean description: A boolean indicating whether the option is hidden from display. label: type: string description: A string representing the display name of the option. readOnly: type: boolean description: A boolean indicating whether the option is read-only and cannot be modified. value: type: string description: A string representing the internal value associated with the option. ExternalReminder: required: - numberOfTimeUnits - timeUnit type: object properties: numberOfTimeUnits: type: integer description: The number of time units before the meeting when the reminder should be sent. This is an integer value. format: int32 timeUnit: type: string description: The unit of time for the reminder. Valid values include 'WEEKS', 'DAYS', 'HOURS', and 'MINUTES'. enum: - DAYS - HOURS - MINUTES - WEEKS ExternalTimeRange: required: - end - start type: object properties: end: type: integer description: The end of the time range, represented as an integer in int64 format. format: int64 start: type: integer description: The start of the time range, represented as an integer in int64 format. format: int64 ExternalUserBusyTimes: required: - busyTimes - isOffline - meetingsUser type: object properties: busyTimes: type: array description: An array of time ranges during which the user is busy. Each time range is represented by an object with start and end times. items: $ref: '#/components/schemas/ExternalTimeRange' isOffline: type: boolean description: A boolean indicating whether the user is currently offline. meetingsUser: $ref: '#/components/schemas/ExternalMeetingsUser' ExternalUserProfile: required: - email type: object properties: email: type: string description: The email address of the user. This is a required string property. firstName: type: string description: The first name of the user. It is a string. fullName: type: string description: The full name of the user, combining first and last names. It is a string. lastName: type: string description: The last name of the user. It is a string. ExternalValidatedFormField: required: - isCustom - label - name - value type: object properties: fieldType: type: string description: The type of the form field, represented as a string. isCustom: type: boolean description: A boolean indicating whether the form field is custom-defined. label: type: string description: The display label for the form field, represented as a string. name: type: string description: The name of the form field, represented as a string. translatedLabel: type: string description: The translated label for the form field, represented as a string. value: type: string description: The value assigned to the form field, represented as a string. valueLabel: type: string description: A label for the field's value, represented as a string. NextPage: required: - after type: object properties: after: type: string description: A string representing the paging cursor token for the next set of results. link: type: string description: A string containing the URL link to the next page of results. description: Specifies the paging information needed to retrieve the next set of results in a paginated API response Paging: type: object properties: next: $ref: '#/components/schemas/NextPage' prev: $ref: '#/components/schemas/PreviousPage' PreviousPage: required: - before type: object properties: before: type: string description: A string token used to retrieve the previous page of results. link: type: string description: A string URL that provides a direct link to the previous page of results. description: specifies the paging information needed to retrieve the previous set of results in a paginated API response PublicObjectId: required: - id type: object properties: id: type: string description: The unique identifier for the public object. It is a string that serves as a reference to the object within the API. description: Contains the Id of a Public Object responses: Error: description: An error occurred. content: '*/*': schema: $ref: '#/components/schemas/Error' securitySchemes: developer_hapikey: type: apiKey name: hapikey in: query oauth2: type: oauth2 flows: authorizationCode: authorizationUrl: https://app.hubspot.com/oauth/authorize tokenUrl: https://api.hubapi.com/oauth/v1/token scopes: crm.objects.contacts.sensitive.write.v2: '' crm.schemas.meetings.write: '' scheduler.meetings.meeting-link.read: '' private_apps: type: apiKey name: private-app in: header private_apps_legacy: type: apiKey name: private-app-legacy in: header x-hubspot-product-tier-requirements: marketing: FREE sales: FREE service: FREE cms: FREE commerce: FREE crmHub: FREE dataHub: FREE