Tempus calendar
Every employee's calendar events across the PBX (data.events), and the public and custom holidays of the companies in scope (data.holidays). filter[type] picks what is returned: legal (holiday), illness, special, home_office, public_holiday, custom_holiday; omit it for all. Narrow events to departments and companies by the employee's active contract, or leave both out for everyone. Holidays follow the same company and department scope (a department scopes to its companies), and filter[country] narrows public holidays to those countries. filter[from] and filter[to] are required; the window spans at most 366 days, both ends included. Statuses pending, approved and pending_removal. Any employee of the PBX may read it. The events are in data, sorted by start, not paginated. Colors per type come from GET /tempus/api/v2/{pbx}/calendar/colors.
User bearer token. Default authentication for customer-facing endpoints.
Obtain a token by calling POST /login with your credentials, then send it
on every subsequent request as Authorization: Bearer <token>. The token
inherits the permissions and PBX scope of the authenticated user.
- HTTP Authorization Scheme
bearer- Bearer format
Bearer <token>
application/jsonResponses
dataobject
eventsarray<object>
550e8400-e29b-41d4-a716-446655440030550e8400-e29b-41d4-a716-446655440001Jane Smith550e8400-e29b-41d4-a716-446655440042550e8400-e29b-41d4-a716-446655440050legal illness special home_officelegalpending approved pending_removalapproved2026-07-072026-07-0938640028800daysarray<object>
2026-07-0728800holidaysarray<object>
public_holiday custom_holidaypublic_holiday2026-07-14National Daymorning afternoon nullLUcompany_idsarray<string>
Authorization Token is missingerrorsobject
https://cockpit.voxbi.com/api/v1/v2/{pbx}/calendar
curl -X GET 'https://cockpit.voxbi.com/api/v1/v2/{pbx}/calendar' \
-H 'Authorization: Bearer YOUR_TOKEN'
const response = await fetch('https://cockpit.voxbi.com/api/v1/v2/{pbx}/calendar', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${YOUR_TOKEN}`,
},
});
const data = await response.json();
console.log(data);
import requests
response = requests.get('https://cockpit.voxbi.com/api/v1/v2/{pbx}/calendar',
headers={'Authorization': f'Bearer {YOUR_TOKEN}'}
)
response.raise_for_status()
data = response.json()
print(data)
<?php
$context = stream_context_create([
'http' => [
'method' => 'GET',
'header' => "Content-Type: application/json\r\nAuthorization: Bearer YOUR_TOKEN",
],
]);
$response = file_get_contents('https://cockpit.voxbi.com/api/v1/v2/{pbx}/calendar', false, $context);
$data = json_decode($response, true);
print_r($data);
{ … }
"data": { … }
"events": [ … ],
{ … },
"days": [ … ]
{ … },
{ … }
{ … }
"days": [ … ]
{ … }
"holidays": [ … ]
{ … },
"company_ids": [ … ]
{ … }
"company_ids": [ … ]
{ … }
private, must-revalidatekeep-aliveapplication/jsonOrigin6057