先决条件

以下示例需要 pytzrequests 库。

pip install requests pytz
export CALCOM_API_KEY="your_api_key"
export CALCOM_EVENT_TYPE_ID="your_event_type_id"

示例

以下代理将使用 Cal.com 列出您 Cal.com 账户中明天的所有事件。

cookbook/tools/calcom_tools.py

agent = Agent(
    name="Calendar Assistant",
    instructions=[
        f"你是日程安排助手。今天是 {datetime.now()}。",
        "你可以通过以下方式帮助用户:",
        "- 查找可用时间段",
        "- 创建新的预订",
        "- 管理现有预订(查看、重新安排、取消)",
        "- 获取预订详情",
        "- 重要提示:在重新安排或取消预订时,请调用 get_upcoming_bookings 函数以获取预订 ID。在为给定时间进行预订之前,请检查可用时段。",
        "在进行预订或更改之前,请务必确认重要详细信息。",
    ],
    model=OpenAIChat(id="gpt-4"),
    tools=[CalComTools(user_timezone="America/New_York")],
    show_tool_calls=True,
    markdown=True,
)

agent.print_response("我明天的预订有哪些?")

Toolkit 参数

参数类型默认值描述
api_keystrNoneCal.com API 密钥
event_type_idintNone用于调度的事件类型 ID
user_timezonestrNone用户的时区(例如,“America/New_York”)
get_available_slotsboolTrue启用获取可用时间段
create_bookingboolTrue启用创建新预订
get_upcoming_bookingsboolTrue启用获取即将进行的预订
reschedule_bookingboolTrue启用重新安排预订
cancel_bookingboolTrue启用取消预订

Toolkit 函数

函数描述
get_available_slots获取给定日期范围的可用时间段
create_booking使用提供的详细信息创建新预订
get_upcoming_bookings获取即将进行的预订列表
get_booking_details获取特定预订的详细信息
reschedule_booking重新安排现有预订
cancel_booking取消现有预订

开发者资源