---
title: "Calendar disconnected"
method: POST
path: "calendar_connection.disconnected"
tags: ["Calendar connections"]
---

# Calendar disconnected

`POST calendar_connection.disconnected` (webhook)

Sent when a calendar connection is disconnected, through the API or because its member
was deleted.

Delivered to every workspace webhook endpoint subscribed to this event,
signed with the endpoint's `whsec_` secret. See
[Webhooks](/api-reference/webhooks#verification-code) for signature verification, retries,
and ordering.

## Payload

- CalendarConnectionEvent
  - `id` string: Stable typed event ID beginning with `evt_`. Use it to deduplicate retries.
  - `type` 'calendar_connection.connected' | 'calendar_connection.disconnected' | 'calendar_connection.error': The event type. Also sent in the `X-HappyScribe-Event` header. - `calendar_connection.connected`: the member finished consent, including a reconnect. - `calendar_connection.disconnected`: the connection was disconnected, or the member removed. - `calendar_connection.error`: the calendar stopped syncing.
  - `created_at` string, date-time: When the event happened, in ISO 8601.
  - `data` object: `object`: the calendar connection, as `GET /calendar_connections/{id}` returns it.
    - `object` CalendarConnection
      - `id` string: Stable typed ID beginning with `cal_`. Treat it as an opaque string.
      - `object` string: Always `calendar_connection`.
      - `workspace_id` string: Workspace ID, beginning with `wks_`. Treat it as an opaque string.
      - `member_id` string: The member whose calendar this is.
      - `provider` 'google' | 'microsoft': The connected calendar. - `google`: Google Calendar. - `microsoft`: Microsoft Outlook calendar.
      - `status` 'active' | 'error' | 'disconnected': - `active`: syncing. - `error`: the account stopped granting access; send the member a new connect link. - `disconnected`: disconnected by you or in HappyScribe, or the member was removed.
      - `account_email` string, nullable: The email of the connected Google or Microsoft account.
      - `error` object, nullable: Why the connection stopped working, while `status` is `error`; otherwise `null`.
        - `code` string: A stable code, such as `access_revoked`.
        - `message` string: What happened, and what to do.
      - `connected_at` string, date-time, nullable: When the member last finished consent, in ISO 8601.
      - `last_synced_at` string, date-time, nullable: When the calendar last synced, in ISO 8601.
      - `created_at` string, date-time: When the connection was first made, in ISO 8601.

## Acknowledgement `200`

Return any 2xx status to acknowledge receipt. Any other status, or a timeout, triggers a retry — up to 21 attempts with backoff.

---

[API](https://skmtc.dev/happyscribe/apis/happyscribe-api.md) - [All operations](https://skmtc.dev/happyscribe/apis/happyscribe-api/llms.txt) - [OpenAPI document](https://skmtc.dev/happyscribe/apis/happyscribe-api/revisions/1281bd968c3d?raw)
