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>
105 lines
2.2 KiB
Markdown
105 lines
2.2 KiB
Markdown
---
|
|
name: gcal
|
|
description: Google Calendar read access — agenda, events, schedule. Use when asked about calendar, meetings, schedule, or what's on today/tomorrow.
|
|
allowed-tools:
|
|
- Bash
|
|
- Read
|
|
---
|
|
|
|
# Google Calendar Skill
|
|
|
|
Access Google Calendar via Python API. Uses OAuth credentials at `~/.gmail-mcp/`.
|
|
|
|
## Quick Commands
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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
|