Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.agno.com/llms.txt

Use this file to discover all available pages before exploring further.

Query events, check availability, and create meetings. By default, exposes query_calendar for reading. Enable write=True to also expose update_calendar for creating and modifying events.
from agno.agent import Agent
from agno.context.calendar import GoogleCalendarContextProvider

calendar = GoogleCalendarContextProvider()

agent = Agent(
    model=...,
    tools=calendar.get_tools(),
)

agent.print_response("What meetings do I have tomorrow?")

Authentication

Same as Gmail - OAuth or service account.
export GOOGLE_CLIENT_ID=...
export GOOGLE_CLIENT_SECRET=...
export GOOGLE_PROJECT_ID=...
Token cached to calendar_token.json.

Configuration

ParameterTypeDefaultDescription
idstr"calendar"Tools become query_<id> and update_<id>.
modelModelNoneModel for sub-agents.
readboolTrueExpose query_calendar.
writeboolFalseExpose update_calendar. Disabled by default for safety.
modeContextModedefaultSee Mode.

Tools Exposed

ToolDescription
query_calendarList events, search events, check availability, find free slots. Always exposed.
update_calendarCreate events, update events, delete events. Requires write=True.

Example queries

QueryWhat happens
”What’s on my calendar this week?”Lists events with time range
”When am I free on Friday afternoon?”Checks availability
”Find all meetings about the product launch”Searches event titles/descriptions
”Schedule a 30-min sync with Alice tomorrow at 2pm”Creates event (requires write=True)

Resources

GoogleCalendarTools Reference

All methods and OAuth setup

Cookbook Example

Working example