---
title: "Retrieve all events from a calendar"
method: GET
path: "/api/v1/calendars/{calendar_id}/events"
tags: ["Calendars"]
---

# Retrieve all events from a calendar

`GET /api/v1/calendars/{calendar_id}/events`

Returns a list of calendar events related to the given calendar.

## Path parameters

- `calendar_id` string, required

## Query parameters

- `expand_recurring` boolean
- `event_type` string
- `attendees` string
- `updated_after` string
- `updated_before` string
- `busy` boolean
- `end` string
- `start` string
- `location` string
- `ical_uid` string
- `description` string
- `title` string
- `is_cancelled` boolean
- `cursor` string
- `offset` number
- `limit` number
- `account_id` string, required

## Response `200`

OK

- object
  - `data` object[], required
    - `object` 'CalendarEvent', required
    - `id` string, required — The ID of the calendar event.
    - `ical_uid` string — The iCalendar UID of the event, as defined in RFC5545.
    - `master_event_id` string — If event instance, the ID of the master event.
    - `calendar_id` string, required — The ID of the calendar the event belongs to.
    - `created_at` string, required — The date the event was created. Uses ISO 8601 UTC datetime (YYYY-MM-DDTHH:MM:SS.sssZ).
    - `updated_at` string, required — The date the event was last updated. Uses ISO 8601 UTC datetime (YYYY-MM-DDTHH:MM:SS.sssZ).
    - `title` string, required — The title of the event.
    - `body` string — The body of the event.
    - `location` string — The location of the event.
    - `is_cancelled` boolean, required — Is the event cancelled.
    - `is_all_day` boolean, required — Is the event all day.
    - `is_attendees_list_hidden` boolean, required — Is the attendees list hidden for attendees.
    - `attendees` object[] — The attendees of the event.
      - `email` string, required — Email address of the attendee.
      - `display_name` string — Display name of the attendee.
      - `comment` string — The response comment of the attendee.
      - `is_organizer` boolean, required — Is the attendee the organizer of the event.
      - `is_optional` boolean, required — Is the attendee optional (based on type).
      - `is_resource` boolean, required — Is the attendee a resource (based on type).
      - `type` union, required — Type of the attendee.
        - 'required'
        - 'optional'
        - 'resource'
      - `response_status` union, required — The response status of the attendee. `yes` if the invitation is accepted. `no` if the invitation is declined. `maybe` if the attendee is not sure. `noreply` if the invitation is pending.
        - 'yes'
        - 'no'
        - 'maybe'
        - 'noreply'
    - `start` union, required — The start date and time of the event.
      - object
        - `date_time` string, required — The date and time. Uses ISO 8601 UTC datetime (YYYY-MM-DDTHH:MM:SS.sssZ).
        - `time_zone` string, required — The time zone of the date time.
      - object
        - `date` string, required — The date. Uses ISO 8601 date format (YYYY-MM-DD).
    - `end` union, required — The end date and time of the event.
      - object
        - `date_time` string, required — The date and time. Uses ISO 8601 UTC datetime (YYYY-MM-DDTHH:MM:SS.sssZ).
        - `time_zone` string, required — The time zone of the date time.
      - object
        - `date` string, required — The date. Uses ISO 8601 date format (YYYY-MM-DD).
    - `recurrence` string[] — List of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event, as specified in RFC5545.
    - `organizer` object, required
      - `email` string, required — Email address of the organizer.
      - `display_name` string — Display name of the organizer.
    - `conference` object
      - `provider` 'google_meet' | 'zoom' | 'teams' | 'unknown', required — The conference provider.
      - `conference_id` string — The provider-native conference ID.
      - `url` string — The conference URL. If not provided, it will automatically create a new conference (only teams and google_meet available)
    - `visibility` union, required — The visibility of the event.
      - 'public'
      - 'private'
    - `transparency` union, required — The transparency of the event. `opaque` does block time on the calendar and is equivalent to setting Show me as to Busy in the Calendar UI. `transparent` does not block time on the calendar and is equivalent to setting Show me as to Available in the Calendar UI.
      - 'opaque'
      - 'transparent'
    - `event_type` string, required — The type of the event (`birthday`, `fromGmail`, `outOfOffice`...)
    - `guests_can_modify` boolean — If true, allow guests to modify the event. <br> `Outlook Calendar`: Not supported, this parameter will always be false.
  - `next_cursor` string — Cursor to get the next page of results if supported. Else use `offset`.

## Other responses

- `401` — ## Unauthorized ### Missing credentials - Type: "errors/missing_credentials" Some credentials are necessary to perform the request. ### Multiple sessions - Type: "errors/multiple_sessions" LinkedIn limits the use of multiple sessions on certain Recruiter accounts. This error restricts access to this route only, but causing a popup to appear in the user's browser, prompting them to choose a session, which can disconnect the current account. To avoid this error, use the cookie connection method. ### Wrong account - Type: "errors/wrong_account" The provided credentials do not match the correct account. ### Invalid credentials - Type: "errors/invalid_credentials" The provided credentials are invalid. ### Invalid proxy credentials - Type: "errors/invalid_proxy_credentials" The provided proxy credentials are invalid. ### Invalid IMAP configuration - Type: "errors/invalid_imap_configuration" The provided IMAP configuration is invalid. ### Invalid SMTP configuration - Type: "errors/invalid_smtp_configuration" The provided SMTP configuration is invalid. ### Invalid checkpoint solution - Type: "errors/invalid_checkpoint_solution" The checkpoint resolution did not pass successfully. Please retry. ### Checkpoint error - Type: "errors/checkpoint_error" The checkpoint does not appear to be resolvable. Please try again and contact support if the problem persists. ### Expired credentials - Type: "errors/expired_credentials" Invalid credentials. Please check your username and password and try again. ### Expired link - Type: "errors/expired_link" This link has expired. Please return to the application and generate a new one. ### Insufficient privileges - Type: "errors/insufficient_privileges" This resource seems to be out of your scopes. ### Disconnected account - Type: "errors/disconnected_account" The account appears to be disconnected from the provider service. ### Disconnected feature - Type: "errors/disconnected_feature" The service you're trying to reach appears to be disconnected.
- `403` — ## Forbidden ### Insufficient permissions - Type: "errors/insufficient_permissions" Valid authentication but insufficient permissions to perform the request. ### Account restricted - Type: "errors/account_restricted" Access to this account has been restricted by the provider. ### Account mismatch - Type: "errors/account_mismatch" This action cannot be done with your account. ### Unknown authentication context - Type: "errors/unknown_authentication_context" An additional step seems necessary to complete login. Please connect to provider with your browser to find out more, then retry authentication. ### Session mismatch - Type: "errors/session_mismatch" Token User id does not match client session id. ### Feature not subscribed - Type: "errors/feature_not_subscribed" The requested feature has either not been subscribed or not been authenticated properly. ### Subscription required - Type: "errors/subscription_required" The action you're trying to achieve requires a subscription to provider's services. ### Resource access restricted - Type: "errors/resource_access_restricted" You don't have access to this resource. ### Action required - Type: "errors/action_required" An additional step seems necessary. Complete authentication on the provider's native application and try again.
- `500` — ## Internal Server Error ### Unexpected error - Type: "errors/unexpected_error" Something went wrong. {{moreDetails}} ### Provider error - Type: "errors/provider_error" The provider is experiencing operational problems. Please try again later. ### Authentication intent error - Type: "errors/authentication_intent_error" The current authentication intent was killed after failure. Please start the process again from the beginning.
- `503` — ## Service Unavailable ### No client session - Type: "errors/no_client_session" No client session is currently running. ### No channel - Type: "errors/no_channel" No channel to client session. ### Handler missing - Type: "errors/no_handler" Handler missing for that request. ### Network down - Type: "errors/network_down" Network is down on server side. Please wait a moment and retry. ### Service unavailable - Type: "errors/service_unavailable" Please try again later.
- `504` — ## Gateway Timeout ### Request timed out - Type: "errors/request_timeout" Request Timeout. Please try again, and if the issue persists, contact support.

---

[API](https://skmtc.net/unipile/apis/unipile-api-reference.md) · [All operations](https://skmtc.net/unipile/apis/unipile-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/unipile/unipile-api-reference/revisions/3483a34061f6/schema)
