---
title: "Book Meeting"
method: POST
path: "/scheduler/2027-03-beta/meetings/meeting-links/book"
tags: ["Advanced"]
---

# Book Meeting

`POST /scheduler/2027-03-beta/meetings/meeting-links/book`

## Request

- Base URL: `https://api.hubapi.com`
- URL: `https://api.hubapi.com/scheduler/2027-03-beta/meetings/meeting-links/book`
- Auth: one of:
  - OAuth 2
    - Authorization code: `https://app.hubspot.com/oauth/authorize`
    - Token URL: `https://api.hubapi.com/oauth/v1/token` scopes: `crm.objects.contacts.highly_sensitive.write.v2`
  - OAuth 2
    - Authorization code: `https://app.hubspot.com/oauth/authorize`
    - Token URL: `https://api.hubapi.com/oauth/v1/token` scopes: `crm.objects.commercepayments.write`
  - OAuth 2
    - Authorization code: `https://app.hubspot.com/oauth/authorize`
    - Token URL: `https://api.hubapi.com/oauth/v1/token` scopes: `crm.objects.goals.write`
  - OAuth 2
    - Authorization code: `https://app.hubspot.com/oauth/authorize`
    - Token URL: `https://api.hubapi.com/oauth/v1/token` scopes: `crm.objects.line_items.write`
  - OAuth 2
    - Authorization code: `https://app.hubspot.com/oauth/authorize`
    - Token URL: `https://api.hubapi.com/oauth/v1/token` scopes: `crm.objects.contacts.write`
  - OAuth 2
    - Authorization code: `https://app.hubspot.com/oauth/authorize`
    - Token URL: `https://api.hubapi.com/oauth/v1/token` scopes: `crm.objects.products.write`
  - OAuth 2
    - Authorization code: `https://app.hubspot.com/oauth/authorize`
    - Token URL: `https://api.hubapi.com/oauth/v1/token` scopes: `crm.objects.projects.write`
  - OAuth 2
    - Authorization code: `https://app.hubspot.com/oauth/authorize`
    - Token URL: `https://api.hubapi.com/oauth/v1/token` scopes: `crm.objects.projects.sensitive.write`
  - OAuth 2
    - Authorization code: `https://app.hubspot.com/oauth/authorize`
    - Token URL: `https://api.hubapi.com/oauth/v1/token` scopes: `crm.objects.contacts.sensitive.write.v2`
  - OAuth 2
    - Authorization code: `https://app.hubspot.com/oauth/authorize`
    - Token URL: `https://api.hubapi.com/oauth/v1/token` scopes: `crm.objects.services.write`
  - OAuth 2
    - Authorization code: `https://app.hubspot.com/oauth/authorize`
    - Token URL: `https://api.hubapi.com/oauth/v1/token` scopes: `crm.objects.deals.sensitive.write.v2`
  - OAuth 2
    - Authorization code: `https://app.hubspot.com/oauth/authorize`
    - Token URL: `https://api.hubapi.com/oauth/v1/token` scopes: `tickets.highly_sensitive.v2`
  - OAuth 2
    - Authorization code: `https://app.hubspot.com/oauth/authorize`
    - Token URL: `https://api.hubapi.com/oauth/v1/token` scopes: `crm.objects.listings.write`
  - OAuth 2
    - Authorization code: `https://app.hubspot.com/oauth/authorize`
    - Token URL: `https://api.hubapi.com/oauth/v1/token` scopes: `crm.objects.appointments.sensitive.write.v2`
  - OAuth 2
    - Authorization code: `https://app.hubspot.com/oauth/authorize`
    - Token URL: `https://api.hubapi.com/oauth/v1/token` scopes: `crm.objects.companies.write`
  - OAuth 2
    - Authorization code: `https://app.hubspot.com/oauth/authorize`
    - Token URL: `https://api.hubapi.com/oauth/v1/token` scopes: `crm.objects.courses.write`
  - OAuth 2
    - Authorization code: `https://app.hubspot.com/oauth/authorize`
    - Token URL: `https://api.hubapi.com/oauth/v1/token` scopes: `crm.objects.appointments.write`
  - OAuth 2
    - Authorization code: `https://app.hubspot.com/oauth/authorize`
    - Token URL: `https://api.hubapi.com/oauth/v1/token` scopes: `tickets.sensitive.v2`
  - OAuth 2
    - Authorization code: `https://app.hubspot.com/oauth/authorize`
    - Token URL: `https://api.hubapi.com/oauth/v1/token` scopes: `crm.objects.deals.write`
  - OAuth 2
    - Authorization code: `https://app.hubspot.com/oauth/authorize`
    - Token URL: `https://api.hubapi.com/oauth/v1/token` scopes: `crm.objects.projects.highly_sensitive.write`
  - OAuth 2
    - Authorization code: `https://app.hubspot.com/oauth/authorize`
    - Token URL: `https://api.hubapi.com/oauth/v1/token` scopes: `crm.objects.companies.sensitive.write.v2`
  - OAuth 2
    - Authorization code: `https://app.hubspot.com/oauth/authorize`
    - Token URL: `https://api.hubapi.com/oauth/v1/token` scopes: `crm.objects.companies.highly_sensitive.write.v2`
  - OAuth 2
    - Authorization code: `https://app.hubspot.com/oauth/authorize`
    - Token URL: `https://api.hubapi.com/oauth/v1/token` scopes: `crm.objects.deals.highly_sensitive.write.v2`
  - OAuth 2
    - Authorization code: `https://app.hubspot.com/oauth/authorize`
    - Token URL: `https://api.hubapi.com/oauth/v1/token` scopes: `crm.schemas.meetings.write`

Book a meeting using a meeting link in your HubSpot account. This endpoint allows you to specify details such as the meeting duration, start time, and participant information. It is useful for scheduling meetings with external participants through a predefined meeting link.

## Request body

- ExternalMeetingBooking
  - `duration` integer, required: The duration of the meeting in minutes, represented as a 64-bit integer.
  - `email` string, required: The email address of the person booking the meeting.
  - `firstName` string, required: The first name of the person booking the meeting.
  - `formFields` ExternalBookingFormField[], required: An array of form fields, each represented by an ExternalBookingFormField object, containing additional information provided by the user during booking.
    - `name` string, required: The name of the form field, represented as a string.
    - `value` string, required: The value associated with the form field, represented as a string.
  - `lastName` string, required: The last name of the person booking the meeting.
  - `legalConsentResponses` ExternalLegalConsentResponse[], required: An array of legal consent responses, each represented by an ExternalLegalConsentResponse object, indicating the user's consent for communication.
    - `communicationTypeId` string, required: A string representing the unique identifier for the type of communication for which consent is being recorded.
    - `consented` boolean, required: A boolean indicating whether the user has given consent for the specified communication type.
  - `likelyAvailableUserIds` string[], required: An array of user IDs, represented as strings, indicating the users who are likely available for the meeting.
  - `locale` string: The locale setting for the meeting, represented as a string.
  - `slug` string, required: A string identifier for the meeting link, used to uniquely identify the meeting booking.
  - `startTime` string, date-time, required: The start time of the meeting, represented in ISO 8601 date-time format.
  - `timezone` string: The time zone in which the meeting will occur, represented as a string.

## Response `200`

successful operation

- ExternalMeetingBookingResponse
  - `bookingTimezone` string, required: The timezone in which the meeting was booked.
  - `calendarEventId` string, required: The unique identifier for the calendar event associated with the booked meeting.
  - `contactId` string, required: The unique identifier for the contact associated with the meeting.
  - `duration` integer, required: The duration of the meeting in minutes, represented as a 64-bit integer.
  - `end` string, date-time, required: The end date and time of the meeting, in ISO 8601 format.
  - `formFields` ExternalValidatedFormField[], required: An array of form fields that were filled out during the meeting booking process.
    - `fieldType` string: The type of the form field, represented as a string.
    - `isCustom` boolean, required: A boolean indicating whether the form field is custom-defined.
    - `label` string, required: The display label of the form field, represented as a string.
    - `name` string, required: The unique name of the form field, represented as a string.
    - `translatedLabel` string: The translated version of the form field's label, represented as a string.
    - `value` string, required: The value assigned to the form field, represented as a string.
    - `valueLabel` string: A label associated with the form field's value, represented as a string.
  - `guestEmails` string[], required: An array of email addresses for guests invited to the meeting.
  - `isOffline` boolean, required: A boolean indicating whether the meeting is offline (true) or online (false).
  - `legalConsentResponses` ExternalLegalConsentResponse[], required: An array of legal consent responses associated with the meeting booking.
    - `communicationTypeId` string, required: A string representing the unique identifier for the type of communication for which consent is being recorded.
    - `consented` boolean, required: A boolean indicating whether the user has given consent for the specified communication type.
  - `locale` string: The locale setting for the meeting, which may affect formatting and language.
  - `location` string: The physical or virtual location where the meeting will take place.
  - `start` string, date-time, required: The start date and time of the meeting, in ISO 8601 format.
  - `subject` string, required: The subject or title of the meeting.
  - `webConferenceMeetingId` string: The unique identifier for the web conference meeting, if applicable.
  - `webConferenceUrl` string: The URL for joining the web conference meeting, if applicable.

## Other responses

- `default`: An error occurred.

## Changes

- **2026-10-14** (2027-03-beta) `6d3443ad681b`: 2 info
  - the security scope `crm.objects.contacts.highly_sensitive.write.v2` was added to the endpoint's security scheme `oauth2`
  - the security scope `crm.schemas.meetings.write` was removed from the endpoint's security scheme `oauth2`
- **2026-10-10** (2027-03-beta) `a9440c8f9a36`: 2 info
  - the security scope `crm.objects.contacts.highly_sensitive.write.v2` was added to the endpoint's security scheme `oauth2`
  - the security scope `crm.schemas.meetings.write` was removed from the endpoint's security scheme `oauth2`
- **2026-09-16** (2027-03-beta) `a9440c8f9a36`: 2 info
  - the security scope `crm.objects.contacts.highly_sensitive.write.v2` was added to the endpoint's security scheme `oauth2`
  - the security scope `crm.schemas.meetings.write` was removed from the endpoint's security scheme `oauth2`
- **2026-09-09** (2027-03-beta) `db0398c13d8e`: 2 info
  - the security scope `crm.objects.contacts.highly_sensitive.write.v2` was added to the endpoint's security scheme `oauth2`
  - the security scope `crm.schemas.meetings.write` was removed from the endpoint's security scheme `oauth2`
- **2026-09-07** (2027-03-beta) `4f2b0a602c9a`: 2 info
  - the security scope `crm.objects.contacts.highly_sensitive.write.v2` was added to the endpoint's security scheme `oauth2`
  - the security scope `crm.schemas.meetings.write` was removed from the endpoint's security scheme `oauth2`

[Operation history](https://skmtc.dev/hubspot/apis/scheduler-meetings/changes/scheduler/2027-03-beta/meetings/meeting-links/book/post.md)

---

[API](https://skmtc.dev/hubspot/apis/scheduler-meetings.md) - [All operations](https://skmtc.dev/hubspot/apis/scheduler-meetings/llms.txt) - [OpenAPI document](https://skmtc.dev/hubspot/apis/scheduler-meetings/revisions/6d3443ad681b?raw)
