Google Calendar Skill - Calendar & Events
Read, create, and manage Google Calendar events. View agenda, create meetings, check availability.
CRITICAL: Event Creation Confirmation Required
Before creating ANY calendar event, you MUST get explicit user confirmation.
When the user asks to create an event:
- First, show them the complete event details:
- Title
- Start time
- End time
- Location (if any)
- Attendees (if any)
- Ask: "Do you want me to create this event?"
- ONLY run the create command AFTER the user explicitly confirms
First-Time Setup
This skill reuses credentials from gmail-skill if available. Otherwise:
- Go to Google Cloud Console
- Enable Google Calendar API (APIs & Services -> Library)
- Use existing OAuth client or create new Desktop app client
- Download JSON -> save as
~/.claude/skills/gcal-skill/credentials.json
Then just run any command - browser opens for auth.
Commands
Today's Events
python3 ~/.claude/skills/gcal-skill/gcal_skill.py today [--account EMAIL]
This Week's Events
python3 ~/.claude/skills/gcal-skill/gcal_skill.py week [--account EMAIL]
Agenda (N days)
python3 ~/.claude/skills/gcal-skill/gcal_skill.py agenda --days 14 [--account EMAIL]
Get Event Details
python3 ~/.claude/skills/gcal-skill/gcal_skill.py event EVENT_ID [--account EMAIL]
Create Event (Requires Confirmation)
python3 ~/.claude/skills/gcal-skill/gcal_skill.py create \
--title "Meeting with John" \
--start "2026-01-20 14:00" \
--end "2026-01-20 15:00" \
--location "Zoom" \
--attendees "john@example.com,jane@example.com" \
[--account EMAIL]
Required arguments:
--title/-t- Event title--start/-s- Start time (various formats supported)
Optional arguments:
--end/-e- End time (defaults to 1 hour after start)--location/-l- Event location--description/-d- Event description--attendees- Comma-separated attendee emails--account/-a- Calendar account
Time formats supported:
2026-01-20 14:002026-01-20 2:00 PM14:00(today at that time)2:00 PM(today at that time)
Delete Event
python3 ~/.claude/skills/gcal-skill/gcal_skill.py delete EVENT_ID [--account EMAIL]
Search Events
python3 ~/.claude/skills/gcal-skill/gcal_skill.py search "query" [--max-results N] [--account EMAIL]
List Calendars
python3 ~/.claude/skills/gcal-skill/gcal_skill.py calendars [--account EMAIL]
Manage Accounts
# List authenticated accounts
python3 ~/.claude/skills/gcal-skill/gcal_skill.py accounts
# Remove an account
python3 ~/.claude/skills/gcal-skill/gcal_skill.py logout --account EMAIL
Multi-Account Support
Add accounts by using --account with a new email:
# First account (auto-authenticates)
python3 ~/.claude/skills/gcal-skill/gcal_skill.py today
# Add work account
python3 ~/.claude/skills/gcal-skill/gcal_skill.py today --account work@company.com
# Use specific account
python3 ~/.claude/skills/gcal-skill/gcal_skill.py week --account personal@gmail.com
Examples
Check what's on today
python3 ~/.claude/skills/gcal-skill/gcal_skill.py today
Look at the week ahead
python3 ~/.claude/skills/gcal-skill/gcal_skill.py week
Find all meetings with "standup"
python3 ~/.claude/skills/gcal-skill/gcal_skill.py search "standup"
Schedule a meeting
python3 ~/.claude/skills/gcal-skill/gcal_skill.py create \
--title "1:1 with Sarah" \
--start "2026-01-21 10:00" \
--end "2026-01-21 10:30"
Output
All commands output JSON for easy parsing.
Requirements
- Python 3.9+
pip install google-auth google-auth-oauthlib google-auth-httplib2 google-api-python-client requests
Security Notes
- Tokens stored locally in
~/.claude/skills/gcal-skill/tokens/ - Revoke access anytime: https://myaccount.google.com/permissions
- Event creation always requires user confirmation