---
ref: tool:cal-com/create-booking
name: Create a booking
company: company:cal-com
workflows: []
access: [mcp, cli, api]
tags: [capability:book-meetings, category:scheduling, has:api, has:cli, has:mcp]
docs: https://cal.com/docs/api-reference/v2/bookings/create-a-booking
updated: 2026-09-27
---

# Create a booking

Books an attendee into a start time on an event type and returns the booking with its UID.

Name the event type by `eventTypeId`, or by `eventTypeSlug` plus `username`
(`teamSlug` for a team event), and pass `start` in UTC and the `attendee`'s
`name`, `email` and `timeZone`. Answer the event type's required booking
questions in `bookingFieldsResponses`, or the request fails with a 400. The
endpoint is public, so it can book on behalf of someone outside your
account. Send `cal-api-version: 2026-02-25`. The CLI takes `--event-type-id`,
`--start`, `--attendee-name`, `--attendee-email` and `--attendee-timezone`.

## Set up

Use the first option your agent supports.

### MCP (official, remote)

Add this server to your agent's MCP settings, then sign in when asked.

```json
{ "mcpServers": { "cal-com": { "url": "https://mcp.cal.com/mcp" } } }
```

Call the MCP tool `create_booking`.

Server URL: https://mcp.cal.com/mcp

### CLI (official)

Install the command, then confirm it runs.

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

Run `calcom bookings 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/bookings`
- 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.
