---
title: "Get a calendar connect link"
method: GET
path: "/calendar_connect_links/{id}"
tags: ["Calendar connections"]
---

# Get a calendar connect link

`GET /calendar_connect_links/{id}`

## Request

- Base URL: `https://www.happyscribe.com/api/v1`
- URL: `https://www.happyscribe.com/api/v1/calendar_connect_links/{id}`
- Auth: API key in header `Authorization`

The link and its outcome, for when you'd rather not read it from `return_url` or the webhook.

## Response `200`

The link.

- CalendarConnectLink
  - `id` string: Stable typed ID beginning with `ccl_`.
  - `object` string: Always `calendar_connect_link`.
  - `workspace_id` string: Workspace ID, beginning with `wks_`. Treat it as an opaque string.
  - `member_id` string, nullable: The member connecting, or `null` to create the member from the connected account.
  - `provider` 'google' | 'microsoft': The calendar to connect. - `google`: Google Calendar. - `microsoft`: Microsoft Outlook calendar.
  - `return_url` string: Where the browser returns after consent, with the outcome in the query string.
  - `client_reference_id` string, nullable: Your own reference, returned on the redirect.
  - `member_data` CalendarConnectLinkMemberData: The member to create when the user consents. Nothing is created until then.
    - `name` string: The member's name. A person who already has a HappyScribe account keeps their own.
    - `email` string, email: Pre-fills Google's or Microsoft's account chooser. It is a hint, never a check: the member's email is the account the user approves.
    - `metadata` Metadata: Your own key-value pairs, for your ids and context. HappyScribe stores them, returns them on the object and in every webhook that carries it, and never acts on them. Up to 50 keys of up to 40 characters (no square brackets), values up to 500 characters. See [metadata](/meetingkit/setup#a-workspace-per-customer).
  - `url` string, nullable: The link to send the user to. `null` once it can no longer be opened.
  - `expires_at` string, date-time: When the link stops working, 24 hours after it was created.
  - `status` 'open' | 'completed' | 'failed' | 'expired': - `open`: waiting for the user, including after they declined consent. - `completed`: the user connected their calendar; see `calendar_connection_id`. - `failed`: it could not connect; `error` says why. - `expired`: 24 hours went by.
  - `calendar_connection_id` string, nullable: The connection it made, once `status` is `completed`.
  - `error` object, nullable: Why the link failed, or `null`.
    - `code` string: `access_denied`, `link_expired`, `link_used`, `account_mismatch`, `calendar_already_connected`, `account_in_use`, `not_authorized`, `sso_required`, `connect_failed`
    - `message` string: What happened.
  - `created_at` string, date-time: When the link was created, in ISO 8601.

## Other responses

- `401`: Missing or invalid API key, or the key is not an owner or admin of the workspace.
- `404`: No such link the key can see.

---

[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)
