Meetings (BETA)

Use the meetings API to retrieve information about meetings created through a scheduling page. You can also book a meeting with a scheduling page through the API.

Learn more about using the API to create, update, and delete all types of meeting engagements.

Please note: this API is currently in beta and is subject to change based on testing and feedback. By using these endpoints you agree to adhere to HubSpot's Developer Terms & Developer Beta Terms. You also acknowledge and understand the risk associated with testing an unstable API.

With the meetings API, you can: 

  • Get a list of meeting links.
  • Get booking information for a meeting link.
  • Get the next availability page for a meeting link.

This could be useful if you have an app that can get a list of meeting links or book meetings. You could also use the meetings API to create an interface for your customers to book meetings with your team.

The following features aren’t supported when using the Meetings API:

  • UTM, HubSpot UTK, and content tracking.
  • Reschedule through this API.
  • Send in CAPTCHA tokens.
  • Create meetings with payment.
  • Send in an IP address.

The sections below provides a walkthrough of how to use the v3 endpoints. For a full reference of the available endpoints and their required fields, click the Endpoints tab at the top of this article.

List meeting scheduling pages

To get a list of meetings scheduling pages, make a GET request to /scheduler/v3/meetings/meeting-links. Use the amount of meeting links you want returned as the limit in the request URL and use your userID, name, and type as a query parameter.

To get and filter a list  of meeting links, supply the filters you’d like to apply as query parameters (e.g., limit, type, and name), and provide your user ID as the organizerUserId query parameter. For example, if your user ID is 1234567, you’d make a GET request to /scheduler/v3/meetings/meeting-links?limit=1&name=menelson&organzerUserId=1234567&type=PERSONAL_LINK

The response for fetching a list of meeting scheduling pages would resemble the following:

//Example response body { "total": 1, "results": [ { "id": "3779484", "slug": "menelson", "link": "https://meetings.hubspotqa.com/menelson", "name": "Sales Pro Demo", "type": "PERSONAL_LINK", "organizerUserId": "2195101", "userIdsOfLinkMembers": [ "2195101" ], "defaultLink": true, "createdAt": "2024-09-13T18:05:08.797Z", "updatedAt": "2024-09-13T18:43:35.116Z" } ] }

The details of each response field are outlined in the table below:

Use this table to describe parameters / fields
FieldDescription
id

The ID of the activity.

slug

The end of the meeting link’s URL.

link

The full meeting URL.

name

The title of the meeting.

type

Indicates if the meeting is a one-on-one (PERSONAL_LINK), group (GROUP_CALENDAR), or round-robin (ROUND_ROBIN_CALENDAR) meeting link.

organizerUserId

The user ID of the user who organized the meeting.

userIdsOfLinkMembers

The user IDs of the meeting link owner.

defaultLink

Indicates if the meeting is the user’s default meeting link.

List booking information

To get details about the initial information necessary for a meeting scheduler, make a GET request to /scheduler/v3/meetings/meeting-links/book/{slug}. Use your meeting link path as the slug and use your timezone as a query parameter.

For example, to get details about initial information necessary for meeting scheduler, make a GET request to /scheduler/v3/meetings/meeting-links/book/menelson&timezone=America%2FNew_York.

The response for fetching booking information would resemble the following:

The details of each response field are outlined in the table below:

//Example response body { "total": 1, "results": [ { "id": "3779484", "slug": "menelson", "link": "https://meetings.hubspotqa.com/menelson", "name": "Sales Pro Demo", "type": "PERSONAL_LINK", "organizerUserId": "2195101", "userIdsOfLinkMembers": [ "2195101" ], "defaultLink": true, "createdAt": "2024-09-13T18:05:08.797Z", "updatedAt": "2024-09-13T18:43:35.116Z" } ] }{ "linkId": "3779484", "isOffline": false, "customParams": { "legalConsentEnabled": false, "ownerPrioritized": false, "formFields": [], "displayInfo": { "companyAvatar": "https://99261937.fs1.hubspotusercontentqa-na1.net/hubfs/99261937/1c2f7f64-2687-49da-b931-7d87da9e3d1a.png", "publicDisplayAvatarOption": "PROFILE_IMAGE" }, "guestSettings": { "canAddGuests": false, "maxGuestCount": 10 }, "meetingBufferTime": 900000, "availability": { "MON_FRI": [ { "start": 540, "end": 1020 } ] }, "startTimeIncrementMinutes": "FIFTEEN", "weeksToAdvertise": 2, "durations": [ 900000, 1800000, 3600000 ], "welcomeScreenInfo": { "useCompanyLogo": false, "showWelcomeScreen": false } }, "linkType": "PERSONAL_LINK", "allUsersBusyTimes": [ { "isOffline": false, "meetingsUser": { "id": "2101913", "userId": "2195101", "isSalesStarter": false, "userProfile": { "firstName": "Melinda", "lastName": "Nelson", "email": "menelson@hubspot.com", "fullName": "Melinda Nelson" }, "calendarProvider": "GOOGLE" }, "busyTimes": [ { "start": 1726664400000, "end": 1726668000000 }, } ], "brandingMetadata": { "logoWidth": 0, "logoHeight": 0, "showMarketingAd": false, "showSalesAd": false, "logoUrl": "", "logoAltText": "", "primaryColor": "#3574E3", "secondaryColor": null, "accentColor": null, "accent2Color": null, "companyName": null, "companyDomain": "joekurien.com", "companyAddressLine1": null, "companyAddressLine2": null, "companyCity": null, "companyState": null, "companyZip": null, "companyCountry": null, "companyAvatar": "https://api-na1.hubapiqa.com/avatars/v1/signed-uris/1CkoKEQgEEg1qb2VrdXJpZW4uY29tGNr_-4cGIKCGNioaYnJhbmRpbmc6YXBpOndlYjp1cy1lYXN0LTEyDzE2My4xMTYuMTM1LjExOBIZAPjT6vbwOch01nPRCSQyux1GWlQKiewhnA" }, "linkAvailability": { "linkAvailabilityByDuration": { "900000": { "meetingDurationMillis": 900000, "availabilities": [ { "startMillisUtc": 1726672500000, "endMillisUtc": 1726673400000 }, "1800000": { "meetingDurationMillis": 1800000, "availabilities": [ { "startMillisUtc": 1726672500000, "endMillisUtc": 1726674300000 },

List availability

To get the next availability page for a meeting, make a GET request to /scheduler/v3/meetings/meeting-links/book/availability-page/{slug}. Use your meeting link path as the slug and your timezone as a query parameter.

For example, to get make a the next availability page for a meeting, make a GET request to https://api.hubspot.com/scheduler/v3/meetings/meeting-links/book/menelson&timezone=America%2FNew_York

The response for fetching the availability page for a meeting would resemble the following:

//Example response body { "linkAvailability": { "linkAvailabilityByDuration": { "1800000": { "meetingDurationMillis": 1800000, "availabilities": [ { "startMillisUtc": 1725282000000, "endMillisUtc": 1725283800000 }, { "startMillisUtc": 1725282900000, "endMillisUtc": 1725284700000 }, { "startMillisUtc": 1726259400000, "endMillisUtc": 1726261200000 } ] } }, "hasMore": false }, "allUsersBusyTimes": [ { "isOffline": false, "meetingsUser": { "id": "1821619", "userId": "1234567", "isSalesStarter": true, } } ] }

Book a meeting

To book a meeting using a meeting link, make a POST request to /scheduler/v3/meetings/meeting-links/book/{slug}.  Use your meeting link path as the slug and your timezone as a query parameter.

For example to book a meeting, make a POST  request to /scheduler/v3/meetings/meeting-links/book?timezone=America%2FNew_York

The request body should include the following information. Any information that's required in your meeting registration must be included in the request body:

//Request body sample { "slug": menelson "firstName": Melinda "lastName": Nelson "email": menelson@hubspot.com "startTime": 1726059600000, "duration": 1800000, "guestEmails": [], "timezone": "America/New_York", "locale": "en-us", ], "likelyAvailableUserIds": [] }
//Response body sample { { id:"3779484", slug:"menelson", link:"https://meetings.hubspotqa.com/menelson", name:"Sales Pro Demo", type:"PERSONAL_LINK", organizerUserId:"2195101", userIdsOfLinkMembers:["2195101"], defaultLink:true, createdAt:"2024-09-13T18:05:08.797Z"(timestamp: 1726250708797), updatedAt:"2024-09-13T18:43:35.116Z"(timestamp: 1726253015116) } ] }

Was this article helpful?
This form is used for documentation feedback only. Learn how to get help with HubSpot.