跳转到内容

Google 日历集成

让你的代理通过 Google 日历管理日历事件、日程和可用性。借助 AI 驱动的自动化,创建和更新事件、管理参与者、检查可用性,并简化你的排期工作流。

在使用 Google 日历集成前,请确保你已经具备:

  • 一个拥有有效订阅的 CrewAI AMP 账号
  • 一个可访问 Google 日历的 Google 账号
  • 已通过 集成页面 连接你的 Google 账号
  1. 进入 CrewAI AMP Integrations
  2. 在身份验证集成部分找到 Google Calendar
  3. 点击 Connect 并完成 OAuth 流程
  4. 授予日历访问所需的权限
  5. Integration Settings 复制你的 Enterprise Token
Terminal window
uv add crewai-tools
Terminal window
export CREWAI_PLATFORM_INTEGRATION_TOKEN="your_enterprise_token"

或者将其添加到你的 .env 文件中:

CREWAI_PLATFORM_INTEGRATION_TOKEN=your_enterprise_token
google_calendar/get_availability

描述: 获取日历可用性(空闲/忙碌信息)。

参数:

  • timeMin (string, required): 开始时间(RFC3339 格式)
  • timeMax (string, required): 结束时间(RFC3339 格式)
  • items (array, required): 要检查的日历 ID
    [
    {
    "id": "calendar_id"
    }
    ]
  • timeZone (string, optional): 响应中使用的时区。默认值为 UTC。
  • groupExpansionMax (integer, optional): 单个组可提供的日历标识符最大数量。最大值:100
  • calendarExpansionMax (integer, optional): 可提供 FreeBusy 信息的日历最大数量。最大值:50
google_calendar/create_event

描述: 在指定日历中创建新事件。

参数:

  • calendarId (string, required): 日历 ID(主日历使用 'primary'
  • summary (string, required): 事件标题/摘要
  • start_dateTime (string, required): RFC3339 格式的开始时间(例如:2024-01-20T10:00:00-07:00)
  • end_dateTime (string, required): RFC3339 格式的结束时间
  • description (string, optional): 事件描述
  • timeZone (string, optional): 时区(例如:America/Los_Angeles)
  • location (string, optional): 事件的地理位置,使用自由文本。
  • attendees (array, optional): 事件参与者列表。
    [
    {
    "email": "[email protected]",
    "displayName": "Attendee Name",
    "optional": false
    }
    ]
  • reminders (object, optional): 有关事件提醒的信息。
    {
    "useDefault": true,
    "overrides": [
    {
    "method": "email",
    "minutes": 15
    }
    ]
    }
  • conferenceData (object, optional): 与会议相关的信息,例如 Google Meet 会议详情。
    {
    "createRequest": {
    "requestId": "unique-request-id",
    "conferenceSolutionKey": {
    "type": "hangoutsMeet"
    }
    }
    }
  • visibility (string, optional): 事件可见性。可选项:default, public, private, confidential。默认值:default
  • transparency (string, optional): 事件是否会在日历上阻塞时间。可选项:opaque, transparent。默认值:opaque
google_calendar/view_events

描述: 检索指定日历的事件。

参数:

  • calendarId (string, required): 日历 ID(主日历使用 'primary'
  • timeMin (string, optional): 事件下限时间(RFC3339)
  • timeMax (string, optional): 事件上限时间(RFC3339)
  • maxResults (integer, optional): 最大事件数(默认 10)。最小值:1,最大值:2500
  • orderBy (string, optional): 结果中返回事件的排序方式。可选项:startTime, updated。默认值:startTime
  • singleEvents (boolean, optional): 是否将重复事件展开为实例,并仅返回单次事件和重复事件的实例。默认值:true
  • showDeleted (boolean, optional): 是否在结果中包含已删除事件(状态为 cancelled)。默认值:false
  • showHiddenInvitations (boolean, optional): 是否在结果中包含隐藏邀请。默认值:false
  • q (string, optional): 用于查找匹配这些条件的事件的自由文本搜索词。
  • pageToken (string, optional): 指定要返回哪个结果页的令牌。
  • timeZone (string, optional): 响应中使用的时区。
  • updatedMin (string, optional): 事件最后修改时间的下限(RFC3339),用于筛选。
  • iCalUID (string, optional): 指定要在响应中提供的 iCalendar 格式事件 ID。
google_calendar/update_event

描述: 更新现有事件。

参数:

  • calendarId (string, required): 日历 ID
  • eventId (string, required): 要更新的事件 ID
  • summary (string, optional): 更新后的事件标题
  • description (string, optional): 更新后的事件描述
  • start_dateTime (string, optional): 更新后的开始时间
  • end_dateTime (string, optional): 更新后的结束时间
google_calendar/delete_event

描述: 删除指定事件。

参数:

  • calendarId (string, required): 日历 ID
  • eventId (string, required): 要删除的事件 ID
google_calendar/view_calendar_list

描述: 检索用户的日历列表。

参数:

  • maxResults (integer, optional): 单个结果页返回的最大条目数。最小值:1
  • pageToken (string, optional): 指定要返回哪个结果页的令牌。
  • showDeleted (boolean, optional): 是否在结果中包含已删除的日历列表条目。默认值:false
  • showHidden (boolean, optional): 是否显示隐藏条目。默认值:false
  • minAccessRole (string, optional): 返回条目中用户的最低访问角色。可选项:freeBusyReader, owner, reader, writer
from crewai import Agent, Task, Crew
# Create an agent with Google Calendar capabilities
calendar_agent = Agent(
role="Schedule Manager",
goal="Manage calendar events and scheduling efficiently",
backstory="An AI assistant specialized in calendar management and scheduling coordination.",
apps=['google_calendar'] # All Google Calendar actions will be available
)
# Task to create a meeting
create_meeting_task = Task(
description="Create a team standup meeting for tomorrow at 9 AM with the development team",
agent=calendar_agent,
expected_output="Meeting created successfully with Google Meet link"
)
# Run the task
crew = Crew(
agents=[calendar_agent],
tasks=[create_meeting_task]
)
crew.kickoff()
meeting_coordinator = Agent(
role="Meeting Coordinator",
goal="Coordinate meetings and check availability",
backstory="An AI assistant that focuses on meeting scheduling and availability management.",
apps=['google_calendar/create_event', 'google_calendar/get_availability']
)
# Task to schedule a meeting with availability check
schedule_meeting = Task(
description="Check availability for next week and schedule a project review meeting with stakeholders",
agent=meeting_coordinator,
expected_output="Meeting scheduled after checking availability of all participants"
)
crew = Crew(
agents=[meeting_coordinator],
tasks=[schedule_meeting]
)
crew.kickoff()
from crewai import Agent, Task, Crew
event_manager = Agent(
role="Event Manager",
goal="Manage and update calendar events efficiently",
backstory="An experienced event manager who handles event logistics and updates.",
apps=['google_calendar']
)
# Task to manage event updates
event_management = Task(
description="""
1. List all events for this week
2. Update any events that need location changes to include video conference links
3. Check availability for upcoming meetings
""",
agent=event_manager,
expected_output="Weekly events updated with proper locations and availability checked"
)
crew = Crew(
agents=[event_manager],
tasks=[event_management]
)
crew.kickoff()