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

# Cal.com

> CalComTools enable an Agent to check availability, create, reschedule, and cancel Cal.com bookings.

## 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)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.