curl --request POST \
--url https://api.hubapi.com/scheduler/2026-03/meetings/meeting-links/book \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"duration": 123,
"email": "<string>",
"firstName": "<string>",
"formFields": [
{
"name": "<string>",
"value": "<string>"
}
],
"lastName": "<string>",
"legalConsentResponses": [
{
"communicationTypeId": "<string>",
"consented": true
}
],
"likelyAvailableUserIds": [
"<string>"
],
"slug": "<string>",
"startTime": "2023-11-07T05:31:56Z",
"locale": "<string>",
"timezone": "<string>"
}
'import requests
url = "https://api.hubapi.com/scheduler/2026-03/meetings/meeting-links/book"
payload = {
"duration": 123,
"email": "<string>",
"firstName": "<string>",
"formFields": [
{
"name": "<string>",
"value": "<string>"
}
],
"lastName": "<string>",
"legalConsentResponses": [
{
"communicationTypeId": "<string>",
"consented": True
}
],
"likelyAvailableUserIds": ["<string>"],
"slug": "<string>",
"startTime": "2023-11-07T05:31:56Z",
"locale": "<string>",
"timezone": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
duration: 123,
email: '<string>',
firstName: '<string>',
formFields: [{name: '<string>', value: '<string>'}],
lastName: '<string>',
legalConsentResponses: [{communicationTypeId: '<string>', consented: true}],
likelyAvailableUserIds: ['<string>'],
slug: '<string>',
startTime: '2023-11-07T05:31:56Z',
locale: '<string>',
timezone: '<string>'
})
};
fetch('https://api.hubapi.com/scheduler/2026-03/meetings/meeting-links/book', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hubapi.com/scheduler/2026-03/meetings/meeting-links/book",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'duration' => 123,
'email' => '<string>',
'firstName' => '<string>',
'formFields' => [
[
'name' => '<string>',
'value' => '<string>'
]
],
'lastName' => '<string>',
'legalConsentResponses' => [
[
'communicationTypeId' => '<string>',
'consented' => true
]
],
'likelyAvailableUserIds' => [
'<string>'
],
'slug' => '<string>',
'startTime' => '2023-11-07T05:31:56Z',
'locale' => '<string>',
'timezone' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.hubapi.com/scheduler/2026-03/meetings/meeting-links/book"
payload := strings.NewReader("{\n \"duration\": 123,\n \"email\": \"<string>\",\n \"firstName\": \"<string>\",\n \"formFields\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"lastName\": \"<string>\",\n \"legalConsentResponses\": [\n {\n \"communicationTypeId\": \"<string>\",\n \"consented\": true\n }\n ],\n \"likelyAvailableUserIds\": [\n \"<string>\"\n ],\n \"slug\": \"<string>\",\n \"startTime\": \"2023-11-07T05:31:56Z\",\n \"locale\": \"<string>\",\n \"timezone\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.hubapi.com/scheduler/2026-03/meetings/meeting-links/book")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"duration\": 123,\n \"email\": \"<string>\",\n \"firstName\": \"<string>\",\n \"formFields\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"lastName\": \"<string>\",\n \"legalConsentResponses\": [\n {\n \"communicationTypeId\": \"<string>\",\n \"consented\": true\n }\n ],\n \"likelyAvailableUserIds\": [\n \"<string>\"\n ],\n \"slug\": \"<string>\",\n \"startTime\": \"2023-11-07T05:31:56Z\",\n \"locale\": \"<string>\",\n \"timezone\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/scheduler/2026-03/meetings/meeting-links/book")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"duration\": 123,\n \"email\": \"<string>\",\n \"firstName\": \"<string>\",\n \"formFields\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"lastName\": \"<string>\",\n \"legalConsentResponses\": [\n {\n \"communicationTypeId\": \"<string>\",\n \"consented\": true\n }\n ],\n \"likelyAvailableUserIds\": [\n \"<string>\"\n ],\n \"slug\": \"<string>\",\n \"startTime\": \"2023-11-07T05:31:56Z\",\n \"locale\": \"<string>\",\n \"timezone\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"bookingTimezone": "<string>",
"calendarEventId": "<string>",
"contactId": "<string>",
"duration": 123,
"end": "2023-11-07T05:31:56Z",
"formFields": [
{
"isCustom": true,
"label": "<string>",
"name": "<string>",
"value": "<string>",
"fieldType": "<string>",
"translatedLabel": "<string>",
"valueLabel": "<string>"
}
],
"guestEmails": [
"<string>"
],
"isOffline": true,
"legalConsentResponses": [
{
"communicationTypeId": "<string>",
"consented": true
}
],
"start": "2023-11-07T05:31:56Z",
"subject": "<string>",
"locale": "<string>",
"location": "<string>",
"webConferenceMeetingId": "<string>",
"webConferenceUrl": "<string>"
}{
"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"
}
}Book a meeting
指定されたミーティングリンクを使用してミーティングを予約してください。このエンドポイントを使用すると、期間、メールアドレス、開始時刻などの必要な詳細を指定してミーティングを作成できます。HubSpotのAPIを通じてプログラムでミーティングをスケジュールするのに役立ててください。
curl --request POST \
--url https://api.hubapi.com/scheduler/2026-03/meetings/meeting-links/book \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"duration": 123,
"email": "<string>",
"firstName": "<string>",
"formFields": [
{
"name": "<string>",
"value": "<string>"
}
],
"lastName": "<string>",
"legalConsentResponses": [
{
"communicationTypeId": "<string>",
"consented": true
}
],
"likelyAvailableUserIds": [
"<string>"
],
"slug": "<string>",
"startTime": "2023-11-07T05:31:56Z",
"locale": "<string>",
"timezone": "<string>"
}
'import requests
url = "https://api.hubapi.com/scheduler/2026-03/meetings/meeting-links/book"
payload = {
"duration": 123,
"email": "<string>",
"firstName": "<string>",
"formFields": [
{
"name": "<string>",
"value": "<string>"
}
],
"lastName": "<string>",
"legalConsentResponses": [
{
"communicationTypeId": "<string>",
"consented": True
}
],
"likelyAvailableUserIds": ["<string>"],
"slug": "<string>",
"startTime": "2023-11-07T05:31:56Z",
"locale": "<string>",
"timezone": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
duration: 123,
email: '<string>',
firstName: '<string>',
formFields: [{name: '<string>', value: '<string>'}],
lastName: '<string>',
legalConsentResponses: [{communicationTypeId: '<string>', consented: true}],
likelyAvailableUserIds: ['<string>'],
slug: '<string>',
startTime: '2023-11-07T05:31:56Z',
locale: '<string>',
timezone: '<string>'
})
};
fetch('https://api.hubapi.com/scheduler/2026-03/meetings/meeting-links/book', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hubapi.com/scheduler/2026-03/meetings/meeting-links/book",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'duration' => 123,
'email' => '<string>',
'firstName' => '<string>',
'formFields' => [
[
'name' => '<string>',
'value' => '<string>'
]
],
'lastName' => '<string>',
'legalConsentResponses' => [
[
'communicationTypeId' => '<string>',
'consented' => true
]
],
'likelyAvailableUserIds' => [
'<string>'
],
'slug' => '<string>',
'startTime' => '2023-11-07T05:31:56Z',
'locale' => '<string>',
'timezone' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.hubapi.com/scheduler/2026-03/meetings/meeting-links/book"
payload := strings.NewReader("{\n \"duration\": 123,\n \"email\": \"<string>\",\n \"firstName\": \"<string>\",\n \"formFields\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"lastName\": \"<string>\",\n \"legalConsentResponses\": [\n {\n \"communicationTypeId\": \"<string>\",\n \"consented\": true\n }\n ],\n \"likelyAvailableUserIds\": [\n \"<string>\"\n ],\n \"slug\": \"<string>\",\n \"startTime\": \"2023-11-07T05:31:56Z\",\n \"locale\": \"<string>\",\n \"timezone\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.hubapi.com/scheduler/2026-03/meetings/meeting-links/book")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"duration\": 123,\n \"email\": \"<string>\",\n \"firstName\": \"<string>\",\n \"formFields\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"lastName\": \"<string>\",\n \"legalConsentResponses\": [\n {\n \"communicationTypeId\": \"<string>\",\n \"consented\": true\n }\n ],\n \"likelyAvailableUserIds\": [\n \"<string>\"\n ],\n \"slug\": \"<string>\",\n \"startTime\": \"2023-11-07T05:31:56Z\",\n \"locale\": \"<string>\",\n \"timezone\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/scheduler/2026-03/meetings/meeting-links/book")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"duration\": 123,\n \"email\": \"<string>\",\n \"firstName\": \"<string>\",\n \"formFields\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"lastName\": \"<string>\",\n \"legalConsentResponses\": [\n {\n \"communicationTypeId\": \"<string>\",\n \"consented\": true\n }\n ],\n \"likelyAvailableUserIds\": [\n \"<string>\"\n ],\n \"slug\": \"<string>\",\n \"startTime\": \"2023-11-07T05:31:56Z\",\n \"locale\": \"<string>\",\n \"timezone\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"bookingTimezone": "<string>",
"calendarEventId": "<string>",
"contactId": "<string>",
"duration": 123,
"end": "2023-11-07T05:31:56Z",
"formFields": [
{
"isCustom": true,
"label": "<string>",
"name": "<string>",
"value": "<string>",
"fieldType": "<string>",
"translatedLabel": "<string>",
"valueLabel": "<string>"
}
],
"guestEmails": [
"<string>"
],
"isOffline": true,
"legalConsentResponses": [
{
"communicationTypeId": "<string>",
"consented": true
}
],
"start": "2023-11-07T05:31:56Z",
"subject": "<string>",
"locale": "<string>",
"location": "<string>",
"webConferenceMeetingId": "<string>",
"webConferenceUrl": "<string>"
}{
"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"
}
}Supported products
Supported products
Required Scopes
Required Scopes
承認
The access token received from the authorization server in the OAuth 2.0 flow.
ボディ
ミーティングの継続時間(分)を表す整数です。
ミーティングを予約した個人のEメールアドレス。
ミーティングを予約した個人の名。
参加者が入力したフォームフィールドの配列で、それぞれに名前と値が含まれています。
Show child attributes
Show child attributes
ミーティングを予約した個人の姓。
参加者が与えた同意を詳細に記した、法的同意応答の配列。
Show child attributes
Show child attributes
ミーティングに参加できる可能性が高いユーザーのIDを表す文字列の配列。
ミーティングリンクの一意の識別子を表す文字列。
ISO 8601の日時形式でのミーティングの開始時刻。
ミーティングを予約するユーザーのロケールを表す文字列。
ミーティングを予約した人のタイムゾーンを表す文字列。
レスポンス
successful operation
ミーティングが予約されたタイムゾーンを文字列で表したもの。
このミーティングに関連付けられているカレンダーイベントの一意の識別子です。
このミーティングに関連付けられているコンタクトの固有ID。
ミーティングの継続時間(分)。整数で表されます。
ミーティングの終了日時(ISO 8601形式)。
予約プロセス中に送信された、検証済みのフォームフィールドの配列。各フィールドはExternalValidatedFormFieldオブジェクトで表されます。
Show child attributes
Show child attributes
ミーティングに招待されたゲストのEメールアドレスの配列。
ミーティングがオフライン(true)かオンライン(false)かを示すブール。
ミーティングに関連付けられた法的同意の応答の配列。各応答はExternalLegalConsentResponseオブジェクトで表されます。
Show child attributes
Show child attributes
ミーティングの開始日時(ISO 8601形式)。
ミーティングの件名またはタイトルです。
ミーティングのロケール設定を文字列で表したもの。
ミーティングの場所を文字列で表します。
該当する場合、ウェブ会議の固有の識別子
該当する場合、ミーティングに関連付けられたウェブ会議のURLです。