---
title: "List calendar events (v2)"
method: GET
path: "/v2/agenda/calendar/events"
tags: ["agenda"]
---

# List calendar events (v2)

`GET /v2/agenda/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}` (ISO datetimes) scope the window; optional `searchQuery` free-text-filters by title, description, location, and attendees. Returns `{ data: { calendar_events, pagination } }`; an empty list when no calendar is connected.

## Query parameters

- `limit` integer
- `searchQuery` string
- `dateRange` object
  - `start` string, date-time
  - `end` string, date-time

## Response `200`

Successful response

- object
  - `data` object, required
    - `calendar_events` object[], required
      - `providerId` string, required
      - `type` 'EMAIL' | 'CALENDAR', required
      - `subjectOrTitle` string, required
      - `dateTime` union, required
        - string, date-time
        - unknown
      - `endDateTime` union
        - string, date-time
        - unknown
      - `isAllDay` boolean, nullable
      - `participants` object[], required
        - `email` string, required
        - `name` string, nullable
      - `providerLink` string, nullable
      - `email` string, required
      - `iCalUID` string, nullable
      - `summaryOfEvent` string, nullable
      - `descriptionOfEvent` string, nullable
      - `conferenceData` object, nullable
        - `conferenceId` string, nullable
        - `entryPoints` object[], nullable
          - `uri` string, nullable
          - `label` string, nullable
          - `accessCode` string, nullable
      - `isRecurring` boolean, nullable
      - `provider` string, nullable
    - `pagination` object
      - `nextCursor` string, nullable
      - `count` integer
    - `warnings` string[] — Incomplete results: some connected calendars could not be read.

## Other responses

- `400` — Request body failed validation.
- `401` — Missing or invalid API key.
- `403` — Valid key, insufficient permission.
- `404` — Resource does not exist.
- `409` — Request conflicts with the current state of the resource.
- `429` — Rate limit exceeded.
- `500` — Unexpected server error.

## Changes

- **2026-09-10** `1a96c317cb7d` — 1 info
  - added the optional property `data/warnings` to the response with the `200` status
- **2026-08-27** `a2f71a243839` — 1 info
  - api operation id `listCalendarEventsV2` was added
- **2026-07-26** `07a79f0ff879` — 1 info
  - added the new optional `query` request parameter `searchQuery`

[Change history](https://skmtc.dev/getdex/apis/dex-public-api/changes/v2/agenda/calendar/events/get.md)

---

[API](https://skmtc.dev/getdex/apis/dex-public-api.md) · [All operations](https://skmtc.dev/getdex/apis/dex-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getdex/apis/dex-public-api/revisions/4797af6dcfb7?raw)
