Agenda
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
POST /v2/agenda/calendar/events
Request body
Content-Type: application/json
summary
string required
description
string
location
string
attendees
array<object>
attendees[].email
string (email)
attendees[].display_name
string
account_email
string
account_provider
string enum
Possible values:
"GOOGLE", "OFFICE365"start_datetime
string (date-time)
Event start, ISO 8601 with offset (timed events)
end_datetime
string (date-time)
Event end, ISO 8601 with offset (timed events)
timezone
string
IANA timezone for the event (e.g. "America/New_York")
start_date
string (date)
Event start date, YYYY-MM-DD (all-day events)
end_date
string (date)
Event end date, YYYY-MM-DD, EXCLUSIVE (all-day events; a one-day event on the 10th ends on the 11th)
Example
{
"summary": "string"
}
Responses
200 — Successful response
Content-Type: application/json
data
object required
data.calendar_event
object required
data.calendar_event.providerId
string required
data.calendar_event.type
string enum required
Possible values:
"EMAIL", "CALENDAR"data.calendar_event.subjectOrTitle
string required
data.calendar_event.dateTime
string (date-time) required
data.calendar_event.endDateTime
string (date-time)
data.calendar_event.isAllDay
boolean | null
data.calendar_event.participants
array<object> required
data.calendar_event.participants[].email
string required
data.calendar_event.participants[].name
string | null
data.calendar_event.providerLink
string | null
data.calendar_event.email
string required
data.calendar_event.iCalUID
string | null
data.calendar_event.summaryOfEvent
string | null
data.calendar_event.descriptionOfEvent
string | null
data.calendar_event.conferenceData
object | null
data.calendar_event.conferenceData.conferenceId
string | null
data.calendar_event.conferenceData.entryPoints
array<object> | null
data.calendar_event.conferenceData.entryPoints[].uri
string | null
data.calendar_event.conferenceData.entryPoints[].label
string | null
data.calendar_event.conferenceData.entryPoints[].accessCode
string | null
data.calendar_event.isRecurring
boolean | null
data.calendar_event.provider
string | null
Example
{
"data": {
"calendar_event": {
"providerId": "string",
"type": "EMAIL",
"subjectOrTitle": "string",
"dateTime": "2026-08-21T15:31:00.957Z",
"participants": [
{
"email": "string"
}
],
"email": "string"
}
}
}
400
No response body.
401
No response body.
403
No response body.
404
No response body.
409
No response body.
429
No response body.
500
No response body.
Code samples
curl https://api.prod.getdex.com/v2/agenda/calendar/events \
--request POST \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"summary": "string"
}'
fetch('https://api.prod.getdex.com/v2/agenda/calendar/events', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
summary: 'string'
})
})
requests.post(
"https://api.prod.getdex.com/v2/agenda/calendar/events",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"summary": "string"
}
)
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
Search emails
Free-text email search across ALL of the authenticated user's connected mail accounts, fetched live from the providers (Google / Microsoft) — Dex stores no message content. `searchQuery` matches subje

