> ## Documentation Index
> Fetch the complete documentation index at: https://docs.agno.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Cal.com

## Prerequisites

The following example requires the `pytz`, `requests`, and `openai` libraries.

```shell theme={null}
uv pip install requests pytz openai
```

```shell theme={null}
export CALCOM_API_KEY="your_api_key"
export CALCOM_EVENT_TYPE_ID="your_event_type_id"
```

## Example

The following agent will use Cal.com to list all events in your Cal.com account for tomorrow.

```python cookbook/91_tools/calcom_tools.py theme={null}
from datetime import datetime

from agno.agent import Agent
from agno.models.openai import OpenAIResponses
from agno.tools.calcom import CalComTools

agent = Agent(
    name="Calendar Assistant",
    instructions=[
        f"You're scheduling assistant. Today is {datetime.now()}.",
        "You can help users by:",
        "- Finding available time slots",
        "- Creating new bookings",
        "- Managing existing bookings (view, reschedule, cancel)",
        "- IMPORTANT: In case of rescheduling or cancelling booking, call the get_upcoming_bookings function to get the booking uid. check available slots before making a booking for given time",
        "Always confirm important details before making bookings or changes.",
    ],
    model=OpenAIResponses(id="gpt-5.2"),
    tools=[CalComTools(user_timezone="America/New_York")],
    markdown=True,
)

agent.print_response("What are my bookings for tomorrow?")
```

## Toolkit Params

| Parameter                      | Type            | Default | Description                                                            |
| ------------------------------ | --------------- | ------- | ---------------------------------------------------------------------- |
| `api_key`                      | `Optional[str]` | `None`  | Cal.com API key. Uses CALCOM\_API\_KEY if not set.                     |
| `event_type_id`                | `Optional[int]` | `None`  | Event type ID for scheduling. Uses CALCOM\_EVENT\_TYPE\_ID if not set. |
| `user_timezone`                | `Optional[str]` | `None`  | User's timezone. Falls back to "America/New\_York" if not set.         |
| `timeout`                      | `int`           | `30`    | Request timeout in seconds                                             |
| `enable_get_available_slots`   | `bool`          | `True`  | Enable getting available time slots                                    |
| `enable_create_booking`        | `bool`          | `True`  | Enable creating new bookings                                           |
| `enable_get_upcoming_bookings` | `bool`          | `True`  | Enable getting upcoming bookings                                       |
| `enable_reschedule_booking`    | `bool`          | `True`  | Enable rescheduling bookings                                           |
| `enable_cancel_booking`        | `bool`          | `True`  | Enable canceling bookings                                              |
| `all`                          | `bool`          | `False` | Enable all tools                                                       |

## Toolkit Functions

| Function                | Description                                      |
| ----------------------- | ------------------------------------------------ |
| `get_available_slots`   | Gets available time slots for a given date range |
| `create_booking`        | Creates a new booking with provided details      |
| `get_upcoming_bookings` | Gets list of upcoming bookings                   |
| `reschedule_booking`    | Reschedules an existing booking                  |
| `cancel_booking`        | Cancels an existing booking                      |

## Developer Resources

* [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/calcom.py)
