Cal.com

Prerequisites

The following example requires the pytz and requests libraries.

1uv pip install requests pytz
1export CALCOM_API_KEY="your_api_key"
2export 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.

1agent = Agent(
2 name="Calendar Assistant",
3 instructions=[
4 f"You're scheduling assistant. Today is {datetime.now()}.",
5 "You can help users by:",
6 "- Finding available time slots",
7 "- Creating new bookings",
8 "- Managing existing bookings (view, reschedule, cancel) ",
9 "- Getting booking details",
10 "- 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",
11 "Always confirm important details before making bookings or changes.",
12 ],
13 model=OpenAIResponses(id="gpt-5.2"),
14 tools=[CalComTools(user_timezone="America/New_York")],
15 markdown=True,
16)
17
18agent.print_response("What are my bookings for tomorrow?")

Toolkit Params

ParameterTypeDefaultDescription
api_keystrNoneCal.com API key
event_type_idintNoneEvent type ID for scheduling
user_timezonestrNoneUser's timezone (e.g. "America/New_York")
enable_get_available_slotsboolTrueEnable getting available time slots
enable_create_bookingboolTrueEnable creating new bookings
enable_get_upcoming_bookingsboolTrueEnable getting upcoming bookings
enable_reschedule_bookingboolTrueEnable rescheduling bookings
enable_cancel_bookingboolTrueEnable canceling bookings

Toolkit Functions

FunctionDescription
get_available_slotsGets available time slots for a given date range
create_bookingCreates a new booking with provided details
get_upcoming_bookingsGets list of upcoming bookings
get_booking_detailsGets details for a specific booking
reschedule_bookingReschedules an existing booking
cancel_bookingCancels an existing booking

Developer Resources