google-calendar
Connect Letta Code to Google Calendar via OAuth 2.0 and perform calendar operations. Use when a user wants to search events, check availability, or create/schedule meetings. Triggers on queries about calendar, schedule, meetings, availability, or booking time.
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
Google Calendar Integration
This skill provides Google Calendar access using the same OAuth credentials as Gmail.
Prerequisites
- OAuth credentials already set up (shared with Gmail skill)
- Calendar API enabled in Google Cloud Console
- Token includes calendar scopes (calendar.readonly, calendar.events)
Available Scripts
All scripts are in tools/google-calendar/scripts/ and require --credentials ./credentials.json.
List Calendars
uv run python tools/google-calendar/scripts/list_calendars.py --credentials ./credentials.json
Search Events
Search for events by text query or time range:
# Search by text
uv run python tools/google-calendar/scripts/search_events.py "meeting" --credentials ./credentials.json
# Search by date range (use YYYY-MM-DD format)
uv run python tools/google-calendar/scripts/search_events.py --start "YYYY-MM-DD" --end "YYYY-MM-DD" --credentials ./credentials.json
# Combine text and date
uv run python tools/google-calendar/scripts/search_events.py "standup" --start "YYYY-MM-DD" --credentials ./credentials.json
Check Availability (Free/Busy)
Find busy periods in a time range:
uv run python tools/google-calendar/scripts/find_busy.py --start "YYYY-MM-DDTHH:MM:00" --end "YYYY-MM-DDTHH:MM:00" --credentials ./credentials.json
Note: This script may have issues with datetime formatting. Use search_events.py as a more reliable way to check what's on the calendar.
Create Event
Create a new calendar event:
uv run python tools/google-calendar/scripts/create_event.py \
--summary "Team Standup" \
--start "YYYY-MM-DDTHH:MM:00" \
--end "YYYY-MM-DDTHH:MM:00" \
--credentials ./credentials.json
# With optional fields
uv run python tools/google-calendar/scripts/create_event.py \
--summary "Product Demo" \
--start "YYYY-MM-DDTHH:MM:00" \
--end "YYYY-MM-DDTHH:MM:00" \
--description "Demo of new features" \
--location "Zoom" \
--attendees "alice@example.com,bob@example.com" \
--timezone "America/Los_Angeles" \
--credentials ./credentials.json
Options:
-
--summary(required): Event title -
--start(required): Start datetime in ISO format -
--end(required): End datetime in ISO format -
--description: Event description -
--location: Event location (e.g., "Zoom", "Conference Room A") -
--attendees: Comma-separated email addresses (sends invites automatically) -
--timezone: Timezone for the event (e.g., America/Los_Angeles, America/New_York, Europe/London) -
--calendar: Calendar ID (default: "primary")
Common Patterns
Check availability for a day
Use search_events.py with start and end dates to see all events:
uv run python tools/google-calendar/scripts/search_events.py --start "YYYY-MM-DD" --end "YYYY-MM-DD" --credentials ./credentials.json
Schedule a meeting
- Check calendar with
search_events.pyto find free slots - Create event with
create_event.py
Review upcoming week
uv run python tools/google-calendar/scripts/search_events.py --start "TODAY" --end "NEXT_WEEK" --credentials ./credentials.json
(Replace TODAY/NEXT_WEEK with actual dates)
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-01-20
- Index updated
- 2026-02-04
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!