---
ref: tool:cal-com/create-private-link
name: Create a private booking link
company: company:cal-com
workflows: []
access: [cli, api]
tags: [capability:book-meetings, category:scheduling, has:api, has:cli]
docs: https://cal.com/docs/api-reference/v2/event-types-private-links/create-a-private-link-for-an-event-type
updated: 2026-09-27
---

# Create a private booking link

Returns a private booking URL for an event type that expires after a number of bookings or at a set time.

Without `expiresAt` or `maxUsageCount` the link is single-use, so create one
per prospect and send the returned `bookingUrl`. Set `maxUsageCount` to allow
more bookings, or `expiresAt` to make the link time-based. Send
`cal-api-version: 2024-09-04`. The MCP server has no dedicated tool for this
call.

## Set up

Use the first option your agent supports.

### CLI (official)

Install the command, then confirm it runs.

```sh
npm install -g @calcom/cli
calcom --version
```

Run `calcom private-links create`.

Set `$CAL_API_KEY` in your environment first (get a key: https://app.cal.com/settings/developer/api-keys).

### API (official)

- Base URL: https://api.cal.com
- Endpoint: `POST /v2/event-types/{eventTypeId}/private-links`
- Auth: send the header `Authorization: Bearer $CAL_API_KEY`
- Get a key: https://app.cal.com/settings/developer/api-keys
- Docs: https://cal.com/docs/api-reference/v2/introduction

Before doing anything else, make one read-only call to confirm access.

## Rules

- Ask the user before anything that sends messages, costs money, or changes data.
- Never print API keys.
