Read, create, and manage Google Calendar events. Use when the user asks to check calendar, view schedule, find meetings, create events, or see what's on the agenda. Supports multiple accounts.
Read, create, and manage Google Calendar events. View agenda, create meetings, check availability.
Before creating ANY calendar event, you MUST get explicit user confirmation.
When the user asks to create an event:
This skill reuses credentials from gmail-skill if available. Otherwise:
~/.claude/skills/gcal-skill/credentials.jsonThen just run any command - browser opens for auth.
python3 ~/.claude/skills/gcal-skill/gcal_skill.py today [--account EMAIL]
python3 ~/.claude/skills/gcal-skill/gcal_skill.py week [--account EMAIL]
python3 ~/.claude/skills/gcal-skill/gcal_skill.py agenda --days 14 [--account EMAIL]
python3 ~/.claude/skills/gcal-skill/gcal_skill.py event EVENT_ID [--account EMAIL]
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--calendar / -c - Target calendar name or id (default primary). Accepts the display name; skill resolves it.--color - Google color id (1-11). See palette below.--account / -a - Calendar accountTime formats supported:
2026-01-20 14:002026-01-20 2:00 PM14:00 (today at that time)2:00 PM (today at that time)Google color id palette:
| id | name | suggested category |
|---|---|---|
| 1 | Lavender | meetings |
| 2 | Sage | personal / family |
| 3 | Grape | reading / research |
| 4 | Flamingo | hard stops / hockey |
| 5 | Banana | admin / inbox |
| 6 | Tangerine | customer / external |
| 7 | Peacock | deep work |
| 8 | Graphite | placeholders / OOO |
| 9 | Blueberry | engineering |
| 10 | Basil | writing |
| 11 | Tomato | urgent |
For mapping a full day onto the calendar in one shot — drives the daily-note → calendar workflow.
python3 ~/.claude/skills/gcal-skill/gcal_skill.py bulk-create path/to/day.json \
--calendar "Idan Work Blocks" \
[--dry-run] \
[--account EMAIL]
Spec format (list of event objects):
[
{
"title": "Deep Block A - CAO writing",
"start": "2026-05-22 08:30",
"end": "2026-05-22 12:30",
"color": 10,
"description": "NeurIPS abstract + intro"
},
{
"title": "Lunch + walk",
"start": "2026-05-22 12:30",
"end": "2026-05-22 13:30",
"color": 2
}
]
Per-event keys: title (required), start (required), end, location, description, color, attendees (list).
--dry-run prints the plan without hitting the API. All events land on the calendar named by --calendar.
python3 ~/.claude/skills/gcal-skill/gcal_skill.py delete EVENT_ID [--calendar NAME] [--account EMAIL]
python3 ~/.claude/skills/gcal-skill/gcal_skill.py search "query" [--max-results N] [--account EMAIL]
python3 ~/.claude/skills/gcal-skill/gcal_skill.py calendars [--account EMAIL]
# 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
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
python3 ~/.claude/skills/gcal-skill/gcal_skill.py today
python3 ~/.claude/skills/gcal-skill/gcal_skill.py week
python3 ~/.claude/skills/gcal-skill/gcal_skill.py search "standup"
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"
All commands output JSON for easy parsing.
pip install google-auth google-auth-oauthlib google-auth-httplib2 google-api-python-client requests~/.claude/skills/gcal-skill/tokens/