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: connected calendars failed or providers reported incomplete reads.
Example
{
"data": {
"calendar_events": [
{
"providerId": "string",
"type": "EMAIL",
"subjectOrTitle": "string",
"dateTime": "2026-10-27T17:27:24.843Z",
"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"
}
)
List workspace calendar events
One window of the workspace calendar, `start` to `end` (ISO 8601 with offset, at most 7 days apart, plus an hour for a week that crosses a DST change; the start's offset decides which days teammates'
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

