Update Availability Schedule by UUID
Update a specific availability schedule by its UUID. Modify weekly working hours, time zone, or date-specific overrides.
curl --request PATCH \
--url https://api.zeeg.me/v2/schedules/{uuid} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"email": "lena.meier@horizondigital.de"
}
'import requests
url = "https://api.zeeg.me/v2/schedules/{uuid}"
payload = { "email": "lena.meier@horizondigital.de" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({email: 'lena.meier@horizondigital.de'})
};
fetch('https://api.zeeg.me/v2/schedules/{uuid}', 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.zeeg.me/v2/schedules/{uuid}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'email' => 'lena.meier@horizondigital.de'
]),
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.zeeg.me/v2/schedules/{uuid}"
payload := strings.NewReader("{\n \"email\": \"lena.meier@horizondigital.de\"\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.zeeg.me/v2/schedules/{uuid}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"lena.meier@horizondigital.de\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zeeg.me/v2/schedules/{uuid}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"lena.meier@horizondigital.de\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"status": 200,
"resource": {
"uri": "https://api.zeeg.me/v2/schedules/otrBCIib7j",
"uuid": "otrBCIib7j",
"email": "lena.meier@horizondigital.de",
"title": "Evening Consultations",
"isDefault": false,
"timezone": "Europe/Berlin",
"weeklyHours": [
{
"day": "Mon",
"timesets": [
[
"18:00",
"21:00"
]
]
},
{
"day": "Tue",
"timesets": [
[
"18:00",
"21:00"
]
]
},
{
"day": "Wed",
"timesets": []
},
{
"day": "Thu",
"timesets": [
[
"18:00",
"21:00"
]
]
},
{
"day": "Fri",
"timesets": []
},
{
"day": "Sat",
"timesets": []
},
{
"day": "Sun",
"timesets": []
}
],
"specialHours": null,
"timeOff": [
{
"uuid": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
"uri": "https://api.zeeg.me/v2/time-off/3f2504e0-4f89-41d3-9a0c-0305e82c3301",
"type": "vacation",
"title": "Summer break",
"startDate": "2026-08-01",
"endDate": "2026-08-15",
"startHalfDay": false,
"endHalfDay": true,
"startHalfDayCutoff": null,
"endHalfDayCutoff": "13:00",
"note": null
}
],
"currentTime": "2026-04-10T08:30:00+02:00",
"createdAt": "2026-04-02T12:00:00.000000Z",
"updatedAt": "2026-04-10T08:30:00.000000Z"
}
}{
"message": "Unauthenticated."
}{
"error": {
"type": "insufficient_scope",
"message": "Your token is missing the required scope: schedules:write.",
"error_id": "e165f252-5e93-4b8c-bdf6-42bbda0ba31c",
"required_scopes": [
"schedules:write"
]
}
}{
"error": "Schedule not found"
}{
"message": "The timezone must be a valid timezone.",
"errors": {
"timezone": [
"The timezone must be a valid timezone."
]
}
}Authorizations
Path Parameters
Schedule identifier
"Q1ZYo391da"
Body
Email address of the user who owns the schedule.
IANA timezone identifier. Set to null to keep the current timezone.
"Europe/Berlin"
Weekly availability hours.
Date-specific availability overrides.
Hide child attributes
Hide child attributes
Response
OK
Hide child attributes
Hide child attributes
API resource URI for this schedule
Email address of the schedule owner
Display name of the schedule
Whether this is the default schedule
IANA timezone identifier
User-level time-off periods (vacation, out-of-office) that apply across all of the user's scheduling pages. Only future periods are returned, ordered by start date. Half-day flags indicate the first/last day of the period is partial.
Hide child attributes
Hide child attributes
Canonical URL of the time-off period.
vacation, out_of_office Half-day cutoff (HH:MM), null when startHalfDay is false.
Half-day cutoff (HH:MM), null when endHalfDay is false.
Current server time
Timestamp of creation
Timestamp of last update
curl --request PATCH \
--url https://api.zeeg.me/v2/schedules/{uuid} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"email": "lena.meier@horizondigital.de"
}
'import requests
url = "https://api.zeeg.me/v2/schedules/{uuid}"
payload = { "email": "lena.meier@horizondigital.de" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({email: 'lena.meier@horizondigital.de'})
};
fetch('https://api.zeeg.me/v2/schedules/{uuid}', 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.zeeg.me/v2/schedules/{uuid}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'email' => 'lena.meier@horizondigital.de'
]),
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.zeeg.me/v2/schedules/{uuid}"
payload := strings.NewReader("{\n \"email\": \"lena.meier@horizondigital.de\"\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.zeeg.me/v2/schedules/{uuid}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"lena.meier@horizondigital.de\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zeeg.me/v2/schedules/{uuid}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"lena.meier@horizondigital.de\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"status": 200,
"resource": {
"uri": "https://api.zeeg.me/v2/schedules/otrBCIib7j",
"uuid": "otrBCIib7j",
"email": "lena.meier@horizondigital.de",
"title": "Evening Consultations",
"isDefault": false,
"timezone": "Europe/Berlin",
"weeklyHours": [
{
"day": "Mon",
"timesets": [
[
"18:00",
"21:00"
]
]
},
{
"day": "Tue",
"timesets": [
[
"18:00",
"21:00"
]
]
},
{
"day": "Wed",
"timesets": []
},
{
"day": "Thu",
"timesets": [
[
"18:00",
"21:00"
]
]
},
{
"day": "Fri",
"timesets": []
},
{
"day": "Sat",
"timesets": []
},
{
"day": "Sun",
"timesets": []
}
],
"specialHours": null,
"timeOff": [
{
"uuid": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
"uri": "https://api.zeeg.me/v2/time-off/3f2504e0-4f89-41d3-9a0c-0305e82c3301",
"type": "vacation",
"title": "Summer break",
"startDate": "2026-08-01",
"endDate": "2026-08-15",
"startHalfDay": false,
"endHalfDay": true,
"startHalfDayCutoff": null,
"endHalfDayCutoff": "13:00",
"note": null
}
],
"currentTime": "2026-04-10T08:30:00+02:00",
"createdAt": "2026-04-02T12:00:00.000000Z",
"updatedAt": "2026-04-10T08:30:00.000000Z"
}
}{
"message": "Unauthenticated."
}{
"error": {
"type": "insufficient_scope",
"message": "Your token is missing the required scope: schedules:write.",
"error_id": "e165f252-5e93-4b8c-bdf6-42bbda0ba31c",
"required_scopes": [
"schedules:write"
]
}
}{
"error": "Schedule not found"
}{
"message": "The timezone must be a valid timezone.",
"errors": {
"timezone": [
"The timezone must be a valid timezone."
]
}
}