Booking Availability V4
Get booking availability for a meeting type
GET
/
v4
/
booking-availability
Get booking availability for a meeting type
curl --request GET \
--url https://api.example.com/v4/booking-availabilityimport requests
url = "https://api.example.com/v4/booking-availability"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/v4/booking-availability', 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.example.com/v4/booking-availability",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/v4/booking-availability"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/v4/booking-availability")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v4/booking-availability")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"timezone": "<string>",
"timeframes": [
{
"start": "<string>",
"end": "<string>",
"unavailabilityEvent": {
"hostId": "<string>",
"hostName": "<string>",
"type": "event",
"picture": "<string>",
"title": "<string>",
"description": "<string>",
"location": "<string>",
"online": true,
"meetingLink": "<string>",
"attendees": [
{
"fullname": "<string>",
"email": "<string>"
}
],
"allDay": true,
"affectedSlotCount": 123,
"scope": "slot",
"recommendedAction": "reviewAppointment",
"settingsRoute": "<string>",
"priority": 123
}
}
],
"dates": [
{
"date": "<string>",
"spots": [
{
"startTime": "<string>",
"unavailabilityEvents": [],
"appointment": {
"id": "<string>",
"totalSpots": 123,
"takenSpots": 123
}
}
]
}
],
"troubleshootSummary": {
"totalSlotCount": 123,
"availableSlotCount": 123,
"blockedSlotCount": 123,
"causes": [
{
"type": "event",
"hostId": "<string>",
"hostName": "<string>",
"affectedSlotCount": 123,
"scope": "slot",
"recommendedAction": "reviewAppointment",
"settingsRoute": "<string>",
"priority": 123
}
],
"days": [
{
"date": "<string>",
"totalSlotCount": 123,
"availableSlotCount": 123,
"blockedSlotCount": 123,
"causes": [
{
"type": "event",
"hostId": "<string>",
"hostName": "<string>",
"affectedSlotCount": 123,
"scope": "slot",
"recommendedAction": "reviewAppointment",
"settingsRoute": "<string>",
"priority": 123
}
]
}
]
},
"earliestAvailableDate": "<string>",
"earliestMonthAvailability": "<unknown>"
}{
"statusCode": 400,
"message": [
"limit must not be greater than 100"
],
"error": "BadRequestException"
}{
"statusCode": 400,
"message": [
"limit must not be greater than 100"
],
"error": "BadRequestException"
}{
"statusCode": 400,
"message": [
"limit must not be greater than 100"
],
"error": "BadRequestException"
}{
"statusCode": 400,
"message": [
"limit must not be greater than 100"
],
"error": "BadRequestException"
}{
"timezone": "<string>",
"timeframes": [
{
"start": "<string>",
"end": "<string>",
"unavailabilityEvent": {
"hostId": "<string>",
"hostName": "<string>",
"type": "event",
"picture": "<string>",
"title": "<string>",
"description": "<string>",
"location": "<string>",
"online": true,
"meetingLink": "<string>",
"attendees": [
{
"fullname": "<string>",
"email": "<string>"
}
],
"allDay": true,
"affectedSlotCount": 123,
"scope": "slot",
"recommendedAction": "reviewAppointment",
"settingsRoute": "<string>",
"priority": 123
}
}
],
"dates": [
{
"date": "<string>",
"spots": [
{
"startTime": "<string>",
"unavailabilityEvents": [],
"appointment": {
"id": "<string>",
"totalSpots": 123,
"takenSpots": 123
}
}
]
}
],
"troubleshootSummary": {
"totalSlotCount": 123,
"availableSlotCount": 123,
"blockedSlotCount": 123,
"causes": [
{
"type": "event",
"hostId": "<string>",
"hostName": "<string>",
"affectedSlotCount": 123,
"scope": "slot",
"recommendedAction": "reviewAppointment",
"settingsRoute": "<string>",
"priority": 123
}
],
"days": [
{
"date": "<string>",
"totalSlotCount": 123,
"availableSlotCount": 123,
"blockedSlotCount": 123,
"causes": [
{
"type": "event",
"hostId": "<string>",
"hostName": "<string>",
"affectedSlotCount": 123,
"scope": "slot",
"recommendedAction": "reviewAppointment",
"settingsRoute": "<string>",
"priority": 123
}
]
}
]
},
"earliestAvailableDate": "<string>",
"earliestMonthAvailability": "<unknown>"
}Query Parameters
Queue ID of meeting type for hosts in round robin
Appointment ID of previous booking for rescheduling
Available options:
everyone, anyone Get blocked timeslots with available slots for diagnostics
Force cache refresh (skip read, write result). Used after slot-occupied error to fetch fresh availability.
Ids of the resource channel entity
Selected channel for per-channel availability lookup Meeting channel/location type
Available options:
local, local-attendee, google, zoom, phone, phone-incoming, whatsapp, connect, webex, skypeForConsumer, skypeForBusiness, teamsForBusiness, teamsForBusiness2, teamsForExchange, teams2ForExchange, custom, resource, whereby, kmeet, zava, jitsi, nextcloudTalk, openTalk Booker email used for account-owner matching on round-robin meeting types. When matching is enabled and an owner resolves to one of the meeting type's eligible hosts, availability is narrowed to that host. Ignored when the meeting type does not have account-owner matching enabled.
⌘I
Get booking availability for a meeting type
curl --request GET \
--url https://api.example.com/v4/booking-availabilityimport requests
url = "https://api.example.com/v4/booking-availability"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/v4/booking-availability', 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.example.com/v4/booking-availability",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/v4/booking-availability"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/v4/booking-availability")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v4/booking-availability")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"timezone": "<string>",
"timeframes": [
{
"start": "<string>",
"end": "<string>",
"unavailabilityEvent": {
"hostId": "<string>",
"hostName": "<string>",
"type": "event",
"picture": "<string>",
"title": "<string>",
"description": "<string>",
"location": "<string>",
"online": true,
"meetingLink": "<string>",
"attendees": [
{
"fullname": "<string>",
"email": "<string>"
}
],
"allDay": true,
"affectedSlotCount": 123,
"scope": "slot",
"recommendedAction": "reviewAppointment",
"settingsRoute": "<string>",
"priority": 123
}
}
],
"dates": [
{
"date": "<string>",
"spots": [
{
"startTime": "<string>",
"unavailabilityEvents": [],
"appointment": {
"id": "<string>",
"totalSpots": 123,
"takenSpots": 123
}
}
]
}
],
"troubleshootSummary": {
"totalSlotCount": 123,
"availableSlotCount": 123,
"blockedSlotCount": 123,
"causes": [
{
"type": "event",
"hostId": "<string>",
"hostName": "<string>",
"affectedSlotCount": 123,
"scope": "slot",
"recommendedAction": "reviewAppointment",
"settingsRoute": "<string>",
"priority": 123
}
],
"days": [
{
"date": "<string>",
"totalSlotCount": 123,
"availableSlotCount": 123,
"blockedSlotCount": 123,
"causes": [
{
"type": "event",
"hostId": "<string>",
"hostName": "<string>",
"affectedSlotCount": 123,
"scope": "slot",
"recommendedAction": "reviewAppointment",
"settingsRoute": "<string>",
"priority": 123
}
]
}
]
},
"earliestAvailableDate": "<string>",
"earliestMonthAvailability": "<unknown>"
}{
"statusCode": 400,
"message": [
"limit must not be greater than 100"
],
"error": "BadRequestException"
}{
"statusCode": 400,
"message": [
"limit must not be greater than 100"
],
"error": "BadRequestException"
}{
"statusCode": 400,
"message": [
"limit must not be greater than 100"
],
"error": "BadRequestException"
}{
"statusCode": 400,
"message": [
"limit must not be greater than 100"
],
"error": "BadRequestException"
}{
"timezone": "<string>",
"timeframes": [
{
"start": "<string>",
"end": "<string>",
"unavailabilityEvent": {
"hostId": "<string>",
"hostName": "<string>",
"type": "event",
"picture": "<string>",
"title": "<string>",
"description": "<string>",
"location": "<string>",
"online": true,
"meetingLink": "<string>",
"attendees": [
{
"fullname": "<string>",
"email": "<string>"
}
],
"allDay": true,
"affectedSlotCount": 123,
"scope": "slot",
"recommendedAction": "reviewAppointment",
"settingsRoute": "<string>",
"priority": 123
}
}
],
"dates": [
{
"date": "<string>",
"spots": [
{
"startTime": "<string>",
"unavailabilityEvents": [],
"appointment": {
"id": "<string>",
"totalSpots": 123,
"takenSpots": 123
}
}
]
}
],
"troubleshootSummary": {
"totalSlotCount": 123,
"availableSlotCount": 123,
"blockedSlotCount": 123,
"causes": [
{
"type": "event",
"hostId": "<string>",
"hostName": "<string>",
"affectedSlotCount": 123,
"scope": "slot",
"recommendedAction": "reviewAppointment",
"settingsRoute": "<string>",
"priority": 123
}
],
"days": [
{
"date": "<string>",
"totalSlotCount": 123,
"availableSlotCount": 123,
"blockedSlotCount": 123,
"causes": [
{
"type": "event",
"hostId": "<string>",
"hostName": "<string>",
"affectedSlotCount": 123,
"scope": "slot",
"recommendedAction": "reviewAppointment",
"settingsRoute": "<string>",
"priority": 123
}
]
}
]
},
"earliestAvailableDate": "<string>",
"earliestMonthAvailability": "<unknown>"
}