Handoff V4
Bulk handoff appointments
Hands off multiple appointments from specified users within a time period to a target user.
POST
/
v4
/
handoff
/
bulk
Bulk handoff appointments
curl --request POST \
--url https://api.example.com/v4/handoff/bulk \
--header 'Content-Type: application/json' \
--header 'x-meetergo-api-user-id: <api-key>' \
--data '
{
"userId": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"start": "<string>",
"end": "<string>",
"targetUserId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"enableAvailabilityCheck": true,
"targetUserIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"appointmentIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"ignoreAvailability": true
}
'import requests
url = "https://api.example.com/v4/handoff/bulk"
payload = {
"userId": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"],
"start": "<string>",
"end": "<string>",
"targetUserId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"enableAvailabilityCheck": True,
"targetUserIds": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"],
"appointmentIds": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"],
"ignoreAvailability": True
}
headers = {
"x-meetergo-api-user-id": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-meetergo-api-user-id': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
userId: ['3c90c3cc-0d44-4b50-8888-8dd25736052a'],
start: '<string>',
end: '<string>',
targetUserId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
enableAvailabilityCheck: true,
targetUserIds: ['3c90c3cc-0d44-4b50-8888-8dd25736052a'],
appointmentIds: ['3c90c3cc-0d44-4b50-8888-8dd25736052a'],
ignoreAvailability: true
})
};
fetch('https://api.example.com/v4/handoff/bulk', 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/handoff/bulk",
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([
'userId' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'start' => '<string>',
'end' => '<string>',
'targetUserId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'enableAvailabilityCheck' => true,
'targetUserIds' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'appointmentIds' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'ignoreAvailability' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-meetergo-api-user-id: <api-key>"
],
]);
$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.example.com/v4/handoff/bulk"
payload := strings.NewReader("{\n \"userId\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"start\": \"<string>\",\n \"end\": \"<string>\",\n \"targetUserId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"enableAvailabilityCheck\": true,\n \"targetUserIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"appointmentIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"ignoreAvailability\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-meetergo-api-user-id", "<api-key>")
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.example.com/v4/handoff/bulk")
.header("x-meetergo-api-user-id", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"userId\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"start\": \"<string>\",\n \"end\": \"<string>\",\n \"targetUserId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"enableAvailabilityCheck\": true,\n \"targetUserIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"appointmentIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"ignoreAvailability\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v4/handoff/bulk")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-meetergo-api-user-id"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"userId\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"start\": \"<string>\",\n \"end\": \"<string>\",\n \"targetUserId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"enableAvailabilityCheck\": true,\n \"targetUserIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"appointmentIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"ignoreAvailability\": true\n}"
response = http.request(request)
puts response.read_body{
"success": [
"<string>"
],
"conflicts": [
"<string>"
]
}{
"success": [
"<string>"
],
"conflicts": [
"<string>"
]
}Authorizations
ApiUserHeaderJWTApiKey
User ID to act on behalf of. Platform API Keys only (required with an API Key unless the endpoint states otherwise). Requests authenticated with a Personal Access Token are rejected if this header names another user.
Body
application/json
Array of user IDs to handoff appointments from
Period start date in ISO format
Period end date in ISO format
Target user ID to handoff appointments to
Enable availability check during handoff
Array of target user IDs to distribute appointments across (round-robin)
Specific appointment IDs to handoff (cherry-pick). If not provided, all matching appointments are included.
If true, ignore availability conflicts and force handoff all appointments
⌘I
Bulk handoff appointments
curl --request POST \
--url https://api.example.com/v4/handoff/bulk \
--header 'Content-Type: application/json' \
--header 'x-meetergo-api-user-id: <api-key>' \
--data '
{
"userId": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"start": "<string>",
"end": "<string>",
"targetUserId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"enableAvailabilityCheck": true,
"targetUserIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"appointmentIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"ignoreAvailability": true
}
'import requests
url = "https://api.example.com/v4/handoff/bulk"
payload = {
"userId": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"],
"start": "<string>",
"end": "<string>",
"targetUserId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"enableAvailabilityCheck": True,
"targetUserIds": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"],
"appointmentIds": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"],
"ignoreAvailability": True
}
headers = {
"x-meetergo-api-user-id": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-meetergo-api-user-id': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
userId: ['3c90c3cc-0d44-4b50-8888-8dd25736052a'],
start: '<string>',
end: '<string>',
targetUserId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
enableAvailabilityCheck: true,
targetUserIds: ['3c90c3cc-0d44-4b50-8888-8dd25736052a'],
appointmentIds: ['3c90c3cc-0d44-4b50-8888-8dd25736052a'],
ignoreAvailability: true
})
};
fetch('https://api.example.com/v4/handoff/bulk', 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/handoff/bulk",
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([
'userId' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'start' => '<string>',
'end' => '<string>',
'targetUserId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'enableAvailabilityCheck' => true,
'targetUserIds' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'appointmentIds' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'ignoreAvailability' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-meetergo-api-user-id: <api-key>"
],
]);
$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.example.com/v4/handoff/bulk"
payload := strings.NewReader("{\n \"userId\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"start\": \"<string>\",\n \"end\": \"<string>\",\n \"targetUserId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"enableAvailabilityCheck\": true,\n \"targetUserIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"appointmentIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"ignoreAvailability\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-meetergo-api-user-id", "<api-key>")
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.example.com/v4/handoff/bulk")
.header("x-meetergo-api-user-id", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"userId\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"start\": \"<string>\",\n \"end\": \"<string>\",\n \"targetUserId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"enableAvailabilityCheck\": true,\n \"targetUserIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"appointmentIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"ignoreAvailability\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v4/handoff/bulk")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-meetergo-api-user-id"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"userId\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"start\": \"<string>\",\n \"end\": \"<string>\",\n \"targetUserId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"enableAvailabilityCheck\": true,\n \"targetUserIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"appointmentIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"ignoreAvailability\": true\n}"
response = http.request(request)
puts response.read_body{
"success": [
"<string>"
],
"conflicts": [
"<string>"
]
}{
"success": [
"<string>"
],
"conflicts": [
"<string>"
]
}