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-09-17T02:39:21.249Z",
      "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 \
  --request POST \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
  "summary": "string"
}'
Copyright © 2026