Skip to main content
Enable Agno agents to use Calcom tool for calendaring and scheduling functions.

Prerequisites

  1. Get Cal.com API key
  2. Get the event Type ID from Cal.com
  3. Set up the following:
    • uv pip install requests pytz
    • Export these environment variables:
      export CALCOM_API_KEY="your_api_key"
      export CALCOM_EVENT_TYPE_ID="your_event_type_id"
      
    • Alternatively, provide these environment variables when creating the CalComTools instance
from datetime import datetime

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

# ---------------------------------------------------------------------------
# Create Agent
# ---------------------------------------------------------------------------

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)
    - Getting booking details
    - 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.
"""


# Example 1: Include specific Cal.com functions for booking management
booking_agent = Agent(
    name="Booking Assistant",
    instructions=[INSTRUCTIONS],
    model=OpenAIChat(id="gpt-4"),
    tools=[
        CalComTools(
            user_timezone="America/New_York",
        )
    ],
    markdown=True,
)

# Example 2: Exclude cancellation functions for safety
safe_calendar_agent = Agent(
    name="Safe Calendar Assistant",
    instructions=[INSTRUCTIONS],
    model=OpenAIChat(id="gpt-4"),
    tools=[
        CalComTools(
            user_timezone="America/New_York",
        )
    ],
    markdown=True,
)

# Example 3: Full Cal.com functionality (default)
agent = Agent(
    name="Full Calendar Assistant",
    instructions=[INSTRUCTIONS],
    model=OpenAIChat(id="gpt-4"),
    tools=[CalComTools(user_timezone="America/New_York")],
    markdown=True,
)

# Example usage

# ---------------------------------------------------------------------------
# Run Agent
# ---------------------------------------------------------------------------
if __name__ == "__main__":
    agent.print_response("What are my bookings for tomorrow?")

Run the Example

# Clone and setup repo
git clone https://github.com/agno-agi/agno.git
cd agno/cookbook/91_tools

# Create and activate virtual environment
./scripts/demo_setup.sh
source .venvs/demo/bin/activate

python calcom_tools.py
For details, see Cal.com cookbook.