# Cal.com

> Show open times and book, reschedule or cancel Cal.com appointments inside the chat

Canonical: https://skillsets.cloodot.com/skillsets/cal_com
Install: https://chats.cloodot.com/dash/ai/skillsets?install=cmsmy9xaj0000psp7kw53v08i
Publisher: Cloodot Inc
Version: 2
Skills: 6
Installs: 1

## Description

Booking a meeting inside the conversation — what is on offer, when it is free, and the appointment itself. ## Skills **📅 Meeting Types** · **🗓️ Find Available Times** · **✅ Book Appointment** **📋 My Bookings** · **🔁 Reschedule** · **❌ Cancel** ## Whose calendar The API key belongs to the account owner, so it reaches every booking on the account — the customer is scoped in here or not at all. A booking is found by attendee email, so where the channel already knows one it beats anything typed into the chat, and a booking is only moved or cancelled once its attendee matches. ## Setup 1. Cal.com → **Settings → Security → API keys**, create one 2. Install this and paste the key 3. Team calendars: set **Team ID**. Self-hosted: set **API Base URL** 4. Enable it on your **Persona → Skills** > Slots `2024-09-04` · Bookings `2024-08-13` · Event types `2024-06-14`, each overridable in config.

## Skills

- **Book Appointment** (execute) — Creates the booking in Cal.com and returns the reference. Reports a booking awaiting host confirmation as a request rather than a confirmed appointment, and never reports one as made unless Cal.com returned a reference.
- **Cancel Appointment** (execute) — Cancels a booking after checking it belongs to this customer. An already-cancelled booking is reported as already cancelled rather than cancelled again.
- **Find Available Times** (search) — Reads open slots for an event type over a date range and returns them in the customer's timezone, numbered, with the exact start string each one needs to be booked with. Slots outside the requested range or already in the past are discarded.
- **List Meeting Types** (search) — Reads the bookable event types live from Cal.com — title, length and how the team hosts it. Team-scoped when a Team ID is configured, and managed templates are left out because they are not directly bookable.
- **My Bookings** (search) — Lists the customer's own upcoming appointments, found by attendee email. Where the channel already knows an address, that address is the one searched — a different one typed into the chat is ignored and reported.
- **Reschedule Appointment** (execute) — Moves a booking to a new time after checking it belongs to this customer. Cal.com replaces rather than moves, so the reference changes — the new one is returned and the old one is dead.

