---
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

## 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 body failed validation.
- `429` — Rate limit exceeded.
- `500` — Unexpected server error.

---

[API](https://skmtc.net/getdex/apis/dex-public-api.md) · [All operations](https://skmtc.net/getdex/apis/dex-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/getdex/dex-public-api/revisions/b387e63b4b90/schema)
