gcal

SKILL.md

Google Calendar Manager

Create events, set reminders, and view schedule via Google Calendar API.

Prerequisites

  1. Google OAuth must be set up: python3 ~/.claude/skills/_google-auth/scripts/setup.py
  2. Google Calendar API enabled in Google Cloud project
  3. Python packages: google-auth-oauthlib, google-api-python-client

Command Routing

User Says Action
"today's schedule", "what's on my calendar" List today's events
"this week", "next 7 days" List events for date range
"add event", "schedule meeting" Create timed event
"reminder", "set reminder" Create event with reminder notification
"block time for studying" Create time block

Workflow: List Events

python3 ~/.claude/skills/gcal/scripts/list_events.py --date today

Options:

  • --date today / --date tomorrow / --date "2026-02-28"
  • --days 7 (show next 7 days)
  • --max 20

Present as a clean schedule:

## Today - Tuesday, Feb 25

| Time | Event | Location |
|------|-------|----------|
| 10:00 AM - 11:30 AM | CS 301 Lecture | Room 204 |
| 2:00 PM - 3:00 PM | GAUDON Client Call | Zoom |
| 7:00 PM - 9:00 PM | Study Group | Library |

Workflow: Create Event

Parse natural language into event parameters, then run:

python3 ~/.claude/skills/gcal/scripts/create_event.py \
  --title "CS 301 Study Session" \
  --start "2026-02-26T15:00:00" \
  --end "2026-02-26T17:00:00"

Options:

  • --duration 120 (minutes, instead of --end)
  • --description "Review chapters 5-7"
  • --location "Library Room 3"
  • --reminder 60 (popup 60 min before; can repeat for multiple)
  • --date "2026-03-01" (all-day event, instead of --start/--end)

Workflow: Set Reminder

Reminders are events with notification overrides:

python3 ~/.claude/skills/gcal/scripts/create_event.py \
  --title "Submit Lab Report" \
  --start "2026-02-28T23:59:00" \
  --duration 15 \
  --reminder 60 --reminder 1440

This creates a 15-minute event with popups at 1 hour and 24 hours before.

Natural Language Parsing

Convert user input to script arguments:

User Says Parsed
"tomorrow 3pm-5pm" --start 2026-02-26T15:00:00 --end 2026-02-26T17:00:00
"Friday at noon for 2 hours" --start 2026-02-28T12:00:00 --duration 120
"next Monday" --date 2026-03-02 (all-day)
"remind me at 11:59pm" --start <date>T23:59:00 --duration 15 --reminder 30

Always use ISO 8601 format for dates/times. Use the current date context to resolve relative dates (today, tomorrow, next Monday, etc.).

Error Handling

Error Solution
"OAuth credentials not found" Run setup: python3 ~/.claude/skills/_google-auth/scripts/setup.py
"Token expired" Script auto-refreshes; if fails, re-run setup
Event not appearing Check timezone; script uses local timezone
Past date warning Warn user if creating event in the past

Safety Rules

  • Confirm event details before creating (show: title, time, reminders)
  • Warn if event overlaps with existing events
  • Never delete or modify existing events without explicit permission
Weekly Installs
2
First Seen
Feb 27, 2026
Installed on
mcpjam2
claude-code2
replit2
junie2
windsurf2
zencoder2