Files
claude-code/skills/gcal/SKILL.md
OpenCode Test 97497b97c2 Add documentation, PreCompact hook, gcal improvements, and marketplace
Documentation:
- Add commands/README.md documenting all slash commands
- Add skills/README.md documenting skill structure and patterns
- Add .claude-plugin/marketplace.json for local dev testing

Hooks:
- Add PreCompact hook to remind about context preservation
- Update hooks/README.md with new hook

GCal improvements:
- Add scripts/next_event.py for single event lookup
- Update SKILL.md with simplified format and allowed-tools: Read

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-01 11:52:04 -08:00

2.2 KiB

name, description, allowed-tools
name description allowed-tools
gcal Google Calendar read access — agenda, events, schedule. Use when asked about calendar, meetings, schedule, or what's on today/tomorrow.
Bash
Read

Google Calendar Skill

Access Google Calendar via Python API. Uses OAuth credentials at ~/.gmail-mcp/.

Quick Commands

GCAL_PY=~/.claude/mcp/gmail/venv/bin/python
SCRIPTS=~/.claude/skills/gcal/scripts

# Today's agenda
$GCAL_PY $SCRIPTS/agenda.py today

# Tomorrow's agenda
$GCAL_PY $SCRIPTS/agenda.py tomorrow

# This week (7 days)
$GCAL_PY $SCRIPTS/agenda.py week

# Next event only
$GCAL_PY $SCRIPTS/next_event.py

Script Reference

Script Purpose Args
agenda.py List events for time range today, tomorrow, week
next_event.py Next upcoming event none

Request Routing

User Request Script Args
"What's on today?" agenda.py today
"Tomorrow's schedule" agenda.py tomorrow
"This week" agenda.py week
"Next meeting" next_event.py none
"Am I free at 3pm?" agenda.py today (then analyze)

Smart Default (no args)

  • Before 6pm → today
  • After 6pm → tomorrow

Delegation Helper (Advanced)

For LLM-assisted operations:

GCAL_PY=~/.claude/mcp/gmail/venv/bin/python
HELPER=~/.claude/mcp/delegation/gcal_delegate.py

# Haiku tier - fetch and format
$GCAL_PY $HELPER today

# Sonnet tier - analyze (spawns claude --model sonnet)
$GCAL_PY $HELPER summary

Output Format

📅 Today — Thursday, Jan 2

  9:00 AM   Team standup (30m)
            📍 Zoom · 👥 5 attendees

 10:30 AM   1:1 with Sarah (45m)
            📍 Conference Room B

No more events today.

Context Fields

  • 📍 Location or meeting link
  • 👥 Attendee count
  • 📝 Description snippet (if relevant)

Error Handling

Missing Calendar Scope

Calendar access not authorized. To fix:
1. Delete cached token: rm ~/.gmail-mcp/token.json
2. Run /gcal today to re-authenticate with Calendar scope

Policy

  • Read-only operations only
  • Show context (attendees, location) by default
  • Summarize results, don't dump raw data
  • Start with lowest capable model tier