Availability Schedule
Update Availability Schedule by UUID
Update a specific availability schedule by its UUID. Modify weekly working hours, time zone, or date-specific overrides.
PATCH
/
schedules
/
{uuid}
Update availability schedule by UUID
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",
"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": []
}
]
}
'import requests
url = "https://api.zeeg.me/v2/schedules/{uuid}"
payload = {
"email": "lena.meier@horizondigital.de",
"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": []
}
]
}
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',
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: []}
]
})
};
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',
'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' => [
]
]
]
]),
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 \"timezone\": \"Europe/Berlin\",\n \"weeklyHours\": [\n {\n \"day\": \"Mon\",\n \"timesets\": [\n [\n \"18:00\",\n \"21:00\"\n ]\n ]\n },\n {\n \"day\": \"Tue\",\n \"timesets\": [\n [\n \"18:00\",\n \"21:00\"\n ]\n ]\n },\n {\n \"day\": \"Wed\",\n \"timesets\": []\n },\n {\n \"day\": \"Thu\",\n \"timesets\": [\n [\n \"18:00\",\n \"21:00\"\n ]\n ]\n },\n {\n \"day\": \"Fri\",\n \"timesets\": []\n },\n {\n \"day\": \"Sat\",\n \"timesets\": []\n },\n {\n \"day\": \"Sun\",\n \"timesets\": []\n }\n ]\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 \"timezone\": \"Europe/Berlin\",\n \"weeklyHours\": [\n {\n \"day\": \"Mon\",\n \"timesets\": [\n [\n \"18:00\",\n \"21:00\"\n ]\n ]\n },\n {\n \"day\": \"Tue\",\n \"timesets\": [\n [\n \"18:00\",\n \"21:00\"\n ]\n ]\n },\n {\n \"day\": \"Wed\",\n \"timesets\": []\n },\n {\n \"day\": \"Thu\",\n \"timesets\": [\n [\n \"18:00\",\n \"21:00\"\n ]\n ]\n },\n {\n \"day\": \"Fri\",\n \"timesets\": []\n },\n {\n \"day\": \"Sat\",\n \"timesets\": []\n },\n {\n \"day\": \"Sun\",\n \"timesets\": []\n }\n ]\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 \"timezone\": \"Europe/Berlin\",\n \"weeklyHours\": [\n {\n \"day\": \"Mon\",\n \"timesets\": [\n [\n \"18:00\",\n \"21:00\"\n ]\n ]\n },\n {\n \"day\": \"Tue\",\n \"timesets\": [\n [\n \"18:00\",\n \"21:00\"\n ]\n ]\n },\n {\n \"day\": \"Wed\",\n \"timesets\": []\n },\n {\n \"day\": \"Thu\",\n \"timesets\": [\n [\n \"18:00\",\n \"21:00\"\n ]\n ]\n },\n {\n \"day\": \"Fri\",\n \"timesets\": []\n },\n {\n \"day\": \"Sat\",\n \"timesets\": []\n },\n {\n \"day\": \"Sun\",\n \"timesets\": []\n }\n ]\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,
"currentTime": "2026-04-10T08:30:00+02:00",
"createdAt": "2026-04-02T12:00:00.000000Z",
"updatedAt": "2026-04-10T08:30:00.000000Z"
}
}{
"message": "Unauthenticated."
}{
"success": false,
"message": "You cannot access this resource.",
"status": 403
}{
"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
Example:
"Q1ZYo391da"
Body
application/json
Email address of the user who owns the schedule.
IANA timezone identifier. Set to null to keep the current timezone.
Example:
"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
Current server time
Timestamp of creation
Timestamp of last update
Last modified on April 29, 2026
⌘I
Update availability schedule by UUID
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",
"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": []
}
]
}
'import requests
url = "https://api.zeeg.me/v2/schedules/{uuid}"
payload = {
"email": "lena.meier@horizondigital.de",
"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": []
}
]
}
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',
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: []}
]
})
};
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',
'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' => [
]
]
]
]),
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 \"timezone\": \"Europe/Berlin\",\n \"weeklyHours\": [\n {\n \"day\": \"Mon\",\n \"timesets\": [\n [\n \"18:00\",\n \"21:00\"\n ]\n ]\n },\n {\n \"day\": \"Tue\",\n \"timesets\": [\n [\n \"18:00\",\n \"21:00\"\n ]\n ]\n },\n {\n \"day\": \"Wed\",\n \"timesets\": []\n },\n {\n \"day\": \"Thu\",\n \"timesets\": [\n [\n \"18:00\",\n \"21:00\"\n ]\n ]\n },\n {\n \"day\": \"Fri\",\n \"timesets\": []\n },\n {\n \"day\": \"Sat\",\n \"timesets\": []\n },\n {\n \"day\": \"Sun\",\n \"timesets\": []\n }\n ]\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 \"timezone\": \"Europe/Berlin\",\n \"weeklyHours\": [\n {\n \"day\": \"Mon\",\n \"timesets\": [\n [\n \"18:00\",\n \"21:00\"\n ]\n ]\n },\n {\n \"day\": \"Tue\",\n \"timesets\": [\n [\n \"18:00\",\n \"21:00\"\n ]\n ]\n },\n {\n \"day\": \"Wed\",\n \"timesets\": []\n },\n {\n \"day\": \"Thu\",\n \"timesets\": [\n [\n \"18:00\",\n \"21:00\"\n ]\n ]\n },\n {\n \"day\": \"Fri\",\n \"timesets\": []\n },\n {\n \"day\": \"Sat\",\n \"timesets\": []\n },\n {\n \"day\": \"Sun\",\n \"timesets\": []\n }\n ]\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 \"timezone\": \"Europe/Berlin\",\n \"weeklyHours\": [\n {\n \"day\": \"Mon\",\n \"timesets\": [\n [\n \"18:00\",\n \"21:00\"\n ]\n ]\n },\n {\n \"day\": \"Tue\",\n \"timesets\": [\n [\n \"18:00\",\n \"21:00\"\n ]\n ]\n },\n {\n \"day\": \"Wed\",\n \"timesets\": []\n },\n {\n \"day\": \"Thu\",\n \"timesets\": [\n [\n \"18:00\",\n \"21:00\"\n ]\n ]\n },\n {\n \"day\": \"Fri\",\n \"timesets\": []\n },\n {\n \"day\": \"Sat\",\n \"timesets\": []\n },\n {\n \"day\": \"Sun\",\n \"timesets\": []\n }\n ]\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,
"currentTime": "2026-04-10T08:30:00+02:00",
"createdAt": "2026-04-02T12:00:00.000000Z",
"updatedAt": "2026-04-10T08:30:00.000000Z"
}
}{
"message": "Unauthenticated."
}{
"success": false,
"message": "You cannot access this resource.",
"status": 403
}{
"error": "Schedule not found"
}{
"message": "The timezone must be a valid timezone.",
"errors": {
"timezone": [
"The timezone must be a valid timezone."
]
}
}