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

# The calendar connection object

> A member's connected Google or Microsoft calendar.

A calendar connection is a member's calendar that MeetingKit keeps in sync. A member has at most one. See [Connect calendars](/meetingkit/calendar-connection).

## Attributes

<ResponseField name="id" type="string">
  Stable typed ID beginning with `cal_`. Treat it as an opaque string.
</ResponseField>

<ResponseField name="object" type="string">
  Always `calendar_connection`.
</ResponseField>

<ResponseField name="workspace_id" type="string">
  Workspace ID, beginning with `wks_`. Treat it as an opaque string.
</ResponseField>

<ResponseField name="member_id" type="string">
  The member whose calendar this is.
</ResponseField>

<ResponseField name="provider" type="string">
  * `google`: Google Calendar.
  * `microsoft`: Microsoft Outlook calendar.
</ResponseField>

<ResponseField name="status" type="string">
  * `active`: Syncing.
  * `error`: Access was revoked or expired. Send the member a new connect link.
  * `disconnected`: Disconnected by you or in MeetingKit, or the member was removed.
</ResponseField>

<ResponseField name="account_email" type="string | null">
  The email of the connected Google or Microsoft account.
</ResponseField>

<ResponseField name="error" type="object | null">
  Why the connection stopped working, while `status` is `error`; otherwise `null`.

  <Expandable title="properties">
    <ResponseField name="code" type="string">
      A stable code, such as `access_revoked`.
    </ResponseField>

    <ResponseField name="message" type="string">
      What happened, and what to do.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="connected_at" type="string | null">
  When the member last finished consent, in ISO 8601.
</ResponseField>

<ResponseField name="last_synced_at" type="string | null">
  When the calendar last synced, in ISO 8601.
</ResponseField>

<ResponseField name="created_at" type="string">
  When the connection was first made, in ISO 8601.
</ResponseField>

<ResponseExample>
  ```json The calendar connection object theme={null}
  {
    "id": "cal_01k6c1r9s8x7c2dvq3m5n6p4ab",
    "object": "calendar_connection",
    "workspace_id": "wks_01k6a2r9s8x7c2dvq3m5n6p4ab",
    "member_id": "mem_01k69x9s8x7c2dvq3m5n6p4ab",
    "provider": "google",
    "status": "active",
    "account_email": "laia@gurusup.com",
    "error": null,
    "connected_at": "2026-09-22T10:12:40Z",
    "last_synced_at": "2026-09-22T10:13:02Z",
    "created_at": "2026-09-22T10:12:40Z"
  }
  ```
</ResponseExample>
