# Cal.com API keys (/integrations/calcom-service-account)

Connect Cal.com with an API key from the account whose bookings and event types your workflows should manage. The key carries that user's permissions and remains valid until it expires or is revoked.

## Prerequisites \[#prerequisites]

You need a Cal.com account (cal.com cloud). Create the key from the account your workflow will use; check that its settings permit API access.

Cal.com API keys are tied to the user who creates them. For production workflows, create the key from a dedicated service login (e.g. `sim-bot@yourcompany.com`) rather than a personal account — the workflow identity is separate from an individual employee. Its access follows that account; keep it active.

## Create the API key \[#creating-the-api-key]

Log in to Cal.com and go to **Settings** → **Developer** → **API keys** (direct link: [app.cal.com/settings/developer/api-keys](https://app.cal.com/settings/developer/api-keys))

Click **+ Add**, give the key a name (e.g. `sim-workflows`), and set its expiry. Choose the expiry appropriate for your workflows, or **Never expires** if available. Record any expiry date so you can rotate before it lapses

Copy the key when it's shown. Cal.com only displays it once — if you close the dialog, you'll have to create a new key.

Live-mode keys start with `cal_live_`; test-mode keys start with `cal_`. Either form is accepted.

Warning:

The API key carries the full privileges of the user who created it — there is no scope selection. Treat it like a password: do not commit it to source control or share it publicly. Sim encrypts the key at rest.

## Add the API key to Sim \[#adding-the-api-key-to-sim]

Open **Integrations** from your workspace sidebar

Search for "Cal.com" and open it, then click **Add to Sim** and choose **Add API key**

Paste the API key, and optionally set a display name and description

Click **Add API key**. Sim verifies the key by calling Cal.com's `/v2/me` endpoint — if it fails, you'll see a specific error explaining what went wrong.

## Use the credential in workflows \[#using-the-credential-in-workflows]

Add a Cal.com block to your workflow. In the credential dropdown, select the saved Cal.com API key. Configure the selected operation.

The block calls Cal.com's API (`api.cal.com/v2`) with the key. The credential acts as the Cal.com user who created the key — bookings, event types, and schedules the workflows touch are the ones that user can see and manage.

## Expiry and rotation \[#expiry-and-rotation]

If a key expires or is revoked, blocks using it fail authentication. Create a replacement in **Settings → Developer → API keys**. A credential Admin can open the connection in Sim's **Integrations** page, select **Reconnect**, and paste the replacement. Test a booking operation before deleting the old key. Sim does not refresh pasted API keys.

Use a `cal_live_` key for production. A key accepted by `/v2/me` has passed an identity check; test-mode booking behavior and access to each booking or event type still need verification. Resource permissions follow the key's user, including whether that user hosts the booking.

Sim's Cal.com tools call `api.cal.com`; this credential cannot target a self-hosted Cal.com API host.

See Cal.com's [API key setup](https://cal.com/blog/where-is-my-api-key-and-what-can-it-do) for current settings and expiry controls.
