Get the caller's own agenda (user)
Events between start and end on the caller's own mailbox, merging
the primary calendar with every calendar opted into
read_calendar_ids (the Cockpit sync mirror is never included, even if
somehow selected).
The window may not span more than 62 days; a wider request is rejected
with a 422 on the end field rather than silently truncated.
If the assistant is not enabled for the caller, this endpoint answers
200 with an empty body rather than a 403 - a client polling this on
page load should not treat "not opted in yet" as an error.
Returns the raw, camelCase event shape (CalendarEventRaw), not the
snake_case CalendarEvent model every other endpoint on this page
returns - a known, tracked inconsistency; see the schema description.
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
dataarray<object>
AAMkAGI1AAAtOTU1AAA=Weekly Sync2026-09-08T09:00:00.000000Z2026-09-08T09:30:00.000000Zfree tentative busy oof workingElsewhere nullbusynormal personal private confidential nullnormalnone organizer tentativelyAccepted accepted declined notResponded nullacceptedattendeesarray<object>
jane.smith@example.comJane Smithrequired optionalrequirednone organizer tentativelyAccepted accepted declined notResponded nullacceptedjane.smith@example.comConference Room 2https://meet.example.com/abc-defg-hijerrorsobject
https://cockpit.voxbi.com/api/v1/me/calendar/agenda
curl -X GET 'https://cockpit.voxbi.com/api/v1/me/calendar/agenda' \
-H 'Authorization: Bearer YOUR_TOKEN'
const response = await fetch('https://cockpit.voxbi.com/api/v1/me/calendar/agenda', {
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/me/calendar/agenda',
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/me/calendar/agenda', false, $context);
$data = json_decode($response, true);
print_r($data);
{ … }
"data": [ … ]
{ … }
"attendees": [ … ],
{ … }
{ … }
application/json