---
title: "List all calendar events"
method: GET
path: "/ext/v2/calendar-events/"
tags: ["Scheduler"]
---

# List all calendar events

`GET /ext/v2/calendar-events/`

## Request

- Base URL: `https://connect.vetcove.com`
- URL: `https://connect.vetcove.com/ext/v2/calendar-events/`
- Auth: HTTP bearer

Returns a list of all calendar events across all clinics in the organization. The calendar events are sorted by creation date, with the most recent appearing first.

A **calendar event** represents a non-appointment block on a clinic's calendar (e.g., a staff meeting, lunch break, out-of-office, or clinic closure). Calendar events can be one-off or recurring, and may block appointment scheduling depending on configuration.

Events are scoped to specific calendar resources (providers) or can apply to all resources on a calendar. If an event is an exception to a recurring series, it references the parent recurring event.

## Query parameters

- `ids` integer[], nullable: When provided, filters to objects with these IDs.
- `ending_before` integer, nullable: A cursor used for pagination. Fetches the page of results ending immediately before the object with the given ID. Cannot be used at the same time as `starting_after`.
- `starting_after` integer, nullable: A cursor used for pagination. Fetches the page of results starting immediately after the given ID. Cannot be used at the same time as `ending_before`.
- `limit` integer: The maximum number of items to return per page.
- `cursor` string, nullable: A cursor token used for pagination. This token contains encoded information about the last seen record in order to continue pagination. Cannot be used with `starting_after` or `ending_before` parameters.
- `modified__gte` string, date-time, nullable: Filters to objects modified on or after this datetime (ISO8601 UTC, e.g. 2025-08-25T10:30:00Z). Cannot be used with `starting_after` or `ending_before` parameters.
- `modified__lte` string, date-time, nullable: Filters to objects modified on or before this datetime (ISO8601 UTC, e.g. 2025-08-25T10:30:00Z). Cannot be used with `starting_after` or `ending_before` parameters.
- `is_deleted` 'FALSE' | 'TRUE' | 'ALL': When 'FALSE' (default), filters to non-deleted records only. When 'TRUE', filters to soft-deleted records only. When 'ALL', returns both deleted and non-deleted records.
- `clinic_id` integer, nullable: Filter to calendar events belonging to the clinic with this ID.
- `calendar_resource_id` integer, nullable: Filter to calendar events assigned to the calendar resource with this ID.

## Response `200`

OK

- ExternalCalendarEventSchemaList
  - `data` ExternalCalendarEventSchema[], required: A single page of data contained within this list.
    - `calendar_resource_ids` integer[]: The IDs of the calendar resources this event is assigned to.
    - `clinic_id` integer, required: The ID of the clinic this calendar event belongs to.
    - `created` string, date-time, required: The datetime this object was created.
    - `deleted` string, date-time, nullable, required: The datetime this record was soft deleted.
    - `description` string, nullable, required: Plain-text description of the event.
    - `duration_minutes` integer, required: Duration of the event in minutes, computed from start and end datetimes.
    - `end_datetime` string, date-time, required: ISO 8601 formatted end datetime of the event in UTC.
    - `id` integer, required: The unique identifier for this calendar event.
    - `is_applicable_to_all_resources` boolean, required: Whether this event applies to all resources on the calendar.
    - `is_deleted` boolean, required: Whether this record is soft deleted or not.
    - `is_recurring` boolean, required: Whether this record follows a recurrence pattern.
    - `kind_id` integer, required: The ID of the calendar event kind.
    - `kind_slug` string, required: The slug identifier of the calendar event kind.
    - `modified` string, date-time, required: The datetime this object was last modified; changes to related entities will not update this field.
    - `recurrence` RecurrenceBreakdownSchema: Structured representation of an RFC 2445 recurrence rule.
      - `days_of_week` string[]: Two-letter day codes. Applicable for WEEKLY and some MONTHLY patterns.
      - `end_after_occurrences` integer, nullable: Total number of occurrences before the recurrence ends, if bounded by count.
      - `end_date` string, date, nullable: ISO 8601 date (YYYY-MM-DD) when the recurrence ends, if bounded by date.
      - `frequency` 'YEARLY' | 'MONTHLY' | 'WEEKLY' | 'DAILY' | 'HOURLY' | 'MINUTELY' | 'SECONDLY', required: The base recurring frequency.
      - `interval` integer, required: The interval between each frequency iteration (e.g., 2 means every 2 weeks for WEEKLY).
    - `recurrence_excluded_datetimes` string[]: Specific datetimes excluded from the recurrence pattern.
    - `recurring_event_id` integer, nullable: If this event is an exception to a recurring series, the ID of the parent recurring event.
    - `rrule` string, nullable: Raw RFC 2445 RRule string, if recurring.
    - `should_block_appointments` boolean, required: Whether this event prevents appointments from being scheduled during its time window.
    - `start_datetime` string, date-time, required: ISO 8601 formatted start datetime of the event in UTC.
  - `has_more` boolean: Whether there are more pages or data in this list.
  - `next_page` string, required: A URL linking to the next page of this list.
  - `type` string: Type of this object. Always `list`.

---

[API](https://skmtc.dev/vetcove/apis/ninjaapi.md) - [All operations](https://skmtc.dev/vetcove/apis/ninjaapi/llms.txt) - [OpenAPI document](https://skmtc.dev/vetcove/apis/ninjaapi/revisions/4ceaed956e15?raw)
