Bulk-create time-off periods for one or more users (by email, slug, or UUID) to block their availability for vacations or absences.
curl --request POST \
--url https://api.zeeg.me/v2/time-off \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"users": {
"emails": [
"lena.meier@horizondigital.de",
"tom.schmidt@horizondigital.de"
]
},
"type": "vacation",
"title": "Company offsite",
"startDate": "2026-09-01",
"endDate": "2026-09-04"
}
'{
"users": [
{
"email": "lena.meier@horizondigital.de",
"slug": "lena-meier",
"uuid": "Lena6mK2QwR9XPv",
"status": "created",
"period": {
"uuid": "01907f10-5b00-7b31-9cf0-1234567890ab",
"uri": "https://api.zeeg.me/v2/time-off/01907f10-5b00-7b31-9cf0-1234567890ab",
"type": "vacation",
"title": "Company offsite",
"startDate": "2026-09-01",
"endDate": "2026-09-04",
"startHalfDay": false,
"endHalfDay": false,
"startHalfDayCutoff": null,
"endHalfDayCutoff": null,
"note": null
},
"replaced": []
},
{
"email": "tom.schmidt@horizondigital.de",
"slug": "tom-schmidt",
"uuid": "TomXk3J8YqB1ZPN",
"status": "replaced",
"period": {
"uuid": "01907f10-5b00-7b31-9cf0-2222333344ff",
"uri": "https://api.zeeg.me/v2/time-off/01907f10-5b00-7b31-9cf0-2222333344ff",
"type": "vacation",
"title": "Company offsite",
"startDate": "2026-09-01",
"endDate": "2026-09-04",
"startHalfDay": false,
"endHalfDay": false,
"startHalfDayCutoff": null,
"endHalfDayCutoff": null,
"note": null
},
"replaced": [
"01907f10-5b00-7b31-9cf0-9999888877aa"
]
}
]
}Documentation Index
Fetch the complete documentation index at: https://developer.zeeg.me/llms.txt
Use this file to discover all available pages before exploring further.
vacation, out_of_office 255User-based target. Mutually exclusive with team. Provide exactly one of emails, slugs or uuids.
Half-day cutoff (HH:MM). Required when startHalfDay is true.
Half-day cutoff (HH:MM). Required when endHalfDay is true.
1000At least one period was created or replaced.
Hide child attributes
Target user's email, or the lookup key when resolution failed for an emails request.
Target user's slug, or the lookup key when resolution failed for a slugs request.
Target user's public UUID, or the lookup key when resolution failed for a uuids request.
created, replaced, failed The created time-off period. Present when status is created or replaced.
Hide child attributes
vacation, out_of_office UUIDs of pre-existing periods deleted due to overlap. Empty on created, non-empty on replaced, absent on failed.
Human-readable failure reason. Present only when status is failed.
curl --request POST \
--url https://api.zeeg.me/v2/time-off \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"users": {
"emails": [
"lena.meier@horizondigital.de",
"tom.schmidt@horizondigital.de"
]
},
"type": "vacation",
"title": "Company offsite",
"startDate": "2026-09-01",
"endDate": "2026-09-04"
}
'{
"users": [
{
"email": "lena.meier@horizondigital.de",
"slug": "lena-meier",
"uuid": "Lena6mK2QwR9XPv",
"status": "created",
"period": {
"uuid": "01907f10-5b00-7b31-9cf0-1234567890ab",
"uri": "https://api.zeeg.me/v2/time-off/01907f10-5b00-7b31-9cf0-1234567890ab",
"type": "vacation",
"title": "Company offsite",
"startDate": "2026-09-01",
"endDate": "2026-09-04",
"startHalfDay": false,
"endHalfDay": false,
"startHalfDayCutoff": null,
"endHalfDayCutoff": null,
"note": null
},
"replaced": []
},
{
"email": "tom.schmidt@horizondigital.de",
"slug": "tom-schmidt",
"uuid": "TomXk3J8YqB1ZPN",
"status": "replaced",
"period": {
"uuid": "01907f10-5b00-7b31-9cf0-2222333344ff",
"uri": "https://api.zeeg.me/v2/time-off/01907f10-5b00-7b31-9cf0-2222333344ff",
"type": "vacation",
"title": "Company offsite",
"startDate": "2026-09-01",
"endDate": "2026-09-04",
"startHalfDay": false,
"endHalfDay": false,
"startHalfDayCutoff": null,
"endHalfDayCutoff": null,
"note": null
},
"replaced": [
"01907f10-5b00-7b31-9cf0-9999888877aa"
]
}
]
}