> ## Documentation Index
> Fetch the complete documentation index at: https://deepline.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Unipile: List Calendar Events

> List events and meetings from one Google Calendar or Microsoft Outlook calendar of a connected account, filtered by start/end date (for example upcoming.

List events and meetings from one Google Calendar or Microsoft Outlook calendar of a connected account, filtered by start/end date (for example upcoming.

> [!NOTE]
>
> Tool ID: `unipile_list_calendar_events`

## Run this action

Use the TypeScript SDK for one call. Use `ctx.tools.execute(...)` inside a Play for durable calls, scheduled calls, or CSV processing.

```ts theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
import { Deepline } from 'deepline';

const deepline = await Deepline.connect();
const result = await deepline.tools.execute(
  'unipile_list_calendar_events',
  {
    "account_id": "123456789",
    "calendar_id": "calendar_123"
  },
);

console.log(result.toolResponse.raw);
```

### CLI

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
deepline tools execute unipile_list_calendar_events --input '{
  "account_id": "123456789",
  "calendar_id": "calendar_123"
}' --json
```

## Example response

The static output schema lacks the details for a reliable example. Use `deepline describe unipile_list_calendar_events --json` for the complete live contract.

## Input reference

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

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `payload.expand_recurring` | `boolean` | No | — | Filter events by type (single or occurence). |
| `payload.event_type` | `string` | No | — | Filter events by event type. This parameter accepts a comma-delimited list of event type. |
| `payload.attendees` | `string` | No | — | Filter events with attendees contained in this list. This parameter accepts a comma-delimited list of email addresses. |
| `payload.updated_after` | `string` | No | — | Filter events updated after this date. Preferred format: RFC3339 datetime (`2026-02-27T17:07:49Z`). |
| `payload.updated_before` | `string` | No | — | Filter events updated before this date. Preferred format: RFC3339 datetime (`2026-02-27T17:07:49Z`). |
| `payload.busy` | `boolean` | No | — | Filter for events with the status `busy` |
| `payload.end` | `string` | No | — | Filter events ending before this date. Preferred format: RFC3339 datetime (`2026-02-27T17:07:49Z`). |
| `payload.start` | `string` | No | — | Filter events starting after this date. Preferred format: RFC3339 datetime (`2026-02-27T17:07:49Z`). |
| `payload.location` | `string` | No | — | Filter for events matching the specified location. |
| `payload.ical_uid` | `string` | No | — | Filter for events matching the specified iCal UID. |
| `payload.description` | `string` | No | — | Filter for events matching the specified description. |
| `payload.title` | `string` | No | — | Filter for events matching the specified title. |
| `payload.is_cancelled` | `boolean` | No | — | Indicates if you want to retrieve the cancelled events. |
| `payload.cursor` | `string` | No | — | A cursor used for pagination. If supported by the provider, use `next_cursor` given by the previous page of the list, else use `offset`. |
| `payload.offset` | `number` | No | — | An offset used for pagination, if supported by the provider, else use `cursor`. |
| `payload.limit` | `number` | No | — | The limit of items to be returned. |
| `payload.account_id` | `string` | Yes | — | The id of the account to use. |
| `payload.calendar_id` | `string` | Yes | — | The id of the calendar related to events |

<details>
  <summary>Show raw input schema</summary>

  ### Input JSON Schema

  ```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
  {
    "type": "object",
    "description": "Returns a list of calendar events related to the given calendar.",
    "properties": {
      "expand_recurring": {
        "type": "boolean",
        "description": "Filter events by type (single or occurence)."
      },
      "event_type": {
        "type": "string",
        "description": "Filter events by event type. This parameter accepts a comma-delimited list of event type."
      },
      "attendees": {
        "type": "string",
        "description": "Filter events with attendees contained in this list. This parameter accepts a comma-delimited list of email addresses."
      },
      "updated_after": {
        "type": "string",
        "description": "Filter events updated after this date. Preferred format: RFC3339 datetime (`2026-02-27T17:07:49Z`)."
      },
      "updated_before": {
        "type": "string",
        "description": "Filter events updated before this date. Preferred format: RFC3339 datetime (`2026-02-27T17:07:49Z`)."
      },
      "busy": {
        "type": "boolean",
        "description": "Filter for events with the status `busy`"
      },
      "end": {
        "type": "string",
        "description": "Filter events ending before this date. Preferred format: RFC3339 datetime (`2026-02-27T17:07:49Z`)."
      },
      "start": {
        "type": "string",
        "description": "Filter events starting after this date. Preferred format: RFC3339 datetime (`2026-02-27T17:07:49Z`)."
      },
      "location": {
        "type": "string",
        "description": "Filter for events matching the specified location."
      },
      "ical_uid": {
        "type": "string",
        "description": "Filter for events matching the specified iCal UID."
      },
      "description": {
        "type": "string",
        "description": "Filter for events matching the specified description."
      },
      "title": {
        "type": "string",
        "description": "Filter for events matching the specified title."
      },
      "is_cancelled": {
        "type": "boolean",
        "description": "Indicates if you want to retrieve the cancelled events."
      },
      "cursor": {
        "type": "string",
        "description": "A cursor used for pagination. If supported by the provider, use `next_cursor` given by the previous page of the list, else use `offset`."
      },
      "offset": {
        "type": "number",
        "description": "An offset used for pagination, if supported by the provider, else use `cursor`."
      },
      "limit": {
        "type": "number",
        "description": "The limit of items to be returned."
      },
      "account_id": {
        "type": "string",
        "description": "The id of the account to use."
      },
      "calendar_id": {
        "type": "string",
        "description": "The id of the calendar related to events"
      }
    },
    "required": [
      "account_id",
      "calendar_id"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Output reference

Standard tool result payload.

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

> [!NOTE]
>
> This output schema is too large for an inline display. Read the complete live contract with `deepline describe unipile_list_calendar_events --json`.

## Deepline cost

* Pricing model: `fixed` (per call).
* Estimated Deepline credits: `0` per pricing unit.
* Provider-native pricing may still exist outside Deepline credit billing.

## Related documentation

* [Unipile provider guide](https://deepline.com/docs/providers/unipile/guide.md)
* [SDK V2 quickstart](https://deepline.com/docs/sdk-v2/quickstart.md)
* [SDK reference](https://deepline.com/docs/sdk-v2/sdk-reference.md)
* [Run tools across a CSV](https://deepline.com/docs/sdk-v2/batch-csv.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.