Agenda
List calendar events
External calendar events fetched live from the authenticated user's connected Google / Office365 credentials via the sync-engine — there's no DB table. Optional `limit` and `dateRange.{start,end}` (IS
GET /v2/agenda/calendar/events
Parameters
Query parameters
limit
integer
searchQuery
string
dateRange
object
Responses
200 — Successful response
Content-Type: application/json
data
object required
data.calendar_events
array<object> required
data.calendar_events[].providerId
string required
data.calendar_events[].type
string enum required
Possible values:
"EMAIL", "CALENDAR"data.calendar_events[].subjectOrTitle
string required
data.calendar_events[].dateTime
string (date-time) required
data.calendar_events[].endDateTime
string (date-time)
data.calendar_events[].isAllDay
boolean | null
data.calendar_events[].participants
array<object> required
data.calendar_events[].participants[].email
string required
data.calendar_events[].participants[].name
string | null
data.calendar_events[].providerLink
string | null
data.calendar_events[].email
string required
data.calendar_events[].iCalUID
string | null
data.calendar_events[].summaryOfEvent
string | null
data.calendar_events[].descriptionOfEvent
string | null
data.calendar_events[].conferenceData
object | null
data.calendar_events[].conferenceData.conferenceId
string | null
data.calendar_events[].conferenceData.entryPoints
array<object> | null
data.calendar_events[].conferenceData.entryPoints[].uri
string | null
data.calendar_events[].conferenceData.entryPoints[].label
string | null
data.calendar_events[].conferenceData.entryPoints[].accessCode
string | null
data.calendar_events[].isRecurring
boolean | null
data.calendar_events[].provider
string | null
data.pagination
object
data.pagination.nextCursor
string | null
data.pagination.count
integer
data.warnings
array<string>
Incomplete results: some connected calendars could not be read.
Example
{
"data": {
"calendar_events": [
{
"providerId": "string",
"type": "EMAIL",
"subjectOrTitle": "string",
"dateTime": "2026-09-17T02:39:21.248Z",
"participants": [
{
"email": "string"
}
],
"email": "string"
}
]
}
}
400 — Request body failed validation.
Content-Type: application/json
(body)
any
401 — Missing or invalid API key.
Content-Type: application/json
(body)
any
403 — Valid key, insufficient permission.
Content-Type: application/json
(body)
any
404 — Resource does not exist.
Content-Type: application/json
(body)
any
409 — Request conflicts with the current state of the resource.
Content-Type: application/json
(body)
any
429 — Rate limit exceeded.
Content-Type: application/json
(body)
any
500 — Unexpected server error.
Content-Type: application/json
(body)
any
Code samples
curl https://api.prod.getdex.com/v2/agenda/calendar/events \
--header 'Authorization: Bearer YOUR_API_KEY'
fetch('https://api.prod.getdex.com/v2/agenda/calendar/events', {
headers: {
Authorization: 'Bearer YOUR_API_KEY'
}
})
requests.get(
"https://api.prod.getdex.com/v2/agenda/calendar/events",
headers={
"Authorization": "Bearer YOUR_API_KEY"
}
)
Remove related contacts
Unlink one or more related contacts from `{contactId}`. The contacts themselves are NOT deleted — only the relation rows are removed (both stored directions, so legacy double-stored pairs are fully cl
Create a calendar event
Create an event on the connected calendar (primary account by default). Set start_datetime/end_datetime for a timed event, or start_date/end_date for an all-day event (end date exclusive). **Requires

