If you’re looking to manage meeting activities on CRM record pages, check out the meetings activity API instead.
- Get a list of meeting links.
- Get booking information for a meeting link.
- Get the next availability page for a meeting link.
- Update the payment link associated with a meeting link.
- UTM, HubSpot UTK, and content tracking.
- Reschedule through this API.
- Send in CAPTCHA tokens.
- Create meetings with payment links (payment links can be added via the update endpoint).
- Send in an IP address.
Retrieve meeting scheduling pages
To retrieve all meetings scheduling pages, make aGET request to /scheduler/2027-03-beta/meetings/meeting-links. Use the amount of meeting links you want returned as the limit in the request URL and use your user ID, name, and type as a query parameter.
You can filter the request using the following query parameters: limit, type, name, and organizerUserId.
The response will resemble the following:
Retrieve booking information
To view a meeting link’s booking and availability details, make aGET request to /scheduler/2027-03-beta/meetings/meeting-links/book/{slug}?timezone={timeZone} and provide the following in your request:
slug(path parameter): the meeting link’s slug. If it contains a forward slash, URL-encode it as%2F. For example,troymcclure/my_meetingbecomestroymcclure%2Fmy_meeting.timezone(query parameter): the visitor’s time zone (e.g.,America/New_York). The API uses this to determine which month’s availability windows to return based on the visitor’s local date.- By default, the response will only include results from the current month. To get availability information for a future month, you can include the
monthOffsetquery parameter to specify the number of months forward from the current month (e.g.,monthOffset=2would get availability two months from the current date).
https://meetings.hubspot.com/jdoe, to get booking information in the New York time zone in two months, you’d make a GET request to /scheduler/2027-03-beta/meetings/meeting-links/book/jdoe?timezone=America/New_York&monthOffset=2.
The response would resemble the following:
Retrieve availability
To get the next availability page for a meeting, make aGET request to /scheduler/2027-03-beta/meetings/meeting-links/book/availability-page/{slug}?timezone={timezone}.
If the slug contains a forward slash, URL-encode it as %2F (e.g., troymcclure/my_meeting becomes troymcclure%2Fmy_meeting). For example:
/scheduler/2026-03/meetings/meeting-links/book/troymcclure%2Fbookme2026?timezone=America/New_York
The response will resemble the following:
Book a meeting
To book a meeting using a meeting link, make aPOST request to /scheduler/2027-03-beta/meetings/meeting-links/book?timezone={timezone}.
The following request body fields are required:
slug: the slug of the meeting link to book.firstName: the first name of the person booking the meeting.lastName: the last name of the person booking the meeting.email: the email address of the person booking the meeting.startTime: the requested start time of the meeting, as a Unix timestamp in milliseconds.duration: the duration of the meeting in milliseconds.
POST request to /scheduler/2027-03-beta/meetings/meeting-links/book?timezone=America/New_York with the following request body:
Offline bookings
If the server was not able to access the user’s calendar availability, either because the user did not have a calendar connected or because the calendar provider could not be reached, a meeting will be booked “offline”. That means that no calendar event will be created, and the user will instead be sent a notification informing them of the time that a lead attempted to book a meeting with them. In the case of an offline booking,isOffline will be set to true in the response body. The calendarEventId field will be set to "", indicating that no event ID was generated.
Retrieve user calendar and meetings connection statuses
To view which HubSpot account users have connected their calendars, enabled calendar sync, and have scheduling pages turned on, use the Users API to retrieve users with the following properties:
For example, to check if a user has connected their calendar and turned on both calendar sync and meeting scheduling, make a
GET request to /crm/objects/2027-03-beta/users?properties=hs_calendar_connection_status,hs_calendar_sync_enabled,hs_meetings_enabled.
Attach a payment link
To attach a payment link, include its ID as thepaymentLinkId in the request body:
200 with the updated meeting link metadata. The paymentLinkId field in the response reflects the current associated value:
Remove a payment link
To remove an existing payment link association, setpaymentLinkId to null:
200 with the updated meeting link metadata, where paymentLinkId reflects the removed state.