com um clique
google-calendar
// Manage your Google Calendar from Claude Code. Create events with Meet links, send invites, check availability.
// Manage your Google Calendar from Claude Code. Create events with Meet links, send invites, check availability.
Summarize the current conversation into a TLDR note and save it to your notes folder. Use when you say "tldr", "save a summary", "note this convo", or want to capture key takeaways from the current session for future reference.
Show current times across Mark's key locations. Use when Mark says "timezone", "what time is it", "team times", "check the time in", or wants to know working hours for his team.
Manage your Gmail inbox from Claude Code. List, read, triage, reply, send, and create filters.
Manage Slack from Claude Code. List conversations, read messages, send replies, search for channels and DMs.
| name | google-calendar |
| description | Manage your Google Calendar from Claude Code. Create events with Meet links, send invites, check availability. |
| allowed-tools | Bash(CLAUDECLAW_DIR=* ~/.venv/bin/python3 ~/.config/calendar/gcal.py *) |
Create meetings with Google Meet links, send invites, check availability, and manage calendar events from Claude Code.
The calendar CLI reads credential paths from environment variables, loaded from ClaudeClaw's .env via CLAUDECLAW_DIR. Every command MUST use this prefix:
CLAUDECLAW_DIR=/path/to/claudeclaw
Your .env should contain:
GOOGLE_CREDS_PATH=~/.config/gmail/credentials.json
GCAL_TOKEN_PATH=~/.config/calendar/token.json
If these aren't set, the script falls back to ~/.config/gmail/credentials.json (shared with Gmail) and ~/.config/calendar/token.json.
CLAUDECLAW_DIR=/path/to/claudeclaw ~/.venv/bin/python3 ~/.config/calendar/gcal.py list
Returns next 10 events as JSON. Each entry has: id, summary, start, end, attendees, meet_link.
CLAUDECLAW_DIR=/path/to/claudeclaw ~/.venv/bin/python3 ~/.config/calendar/gcal.py list --days 7
CLAUDECLAW_DIR=/path/to/claudeclaw ~/.venv/bin/python3 ~/.config/calendar/gcal.py get <event_id>
CLAUDECLAW_DIR=/path/to/claudeclaw ~/.venv/bin/python3 ~/.config/calendar/gcal.py create "Meeting Title" "2026-03-15 10:00" --duration 30 --attendees "person@example.com,other@example.com" --meet
--duration in minutes (default: 30)--attendees comma-separated emails (sends invite emails automatically)--meet adds a Google Meet video link--description adds event description--location adds locationCLAUDECLAW_DIR=/path/to/claudeclaw ~/.venv/bin/python3 ~/.config/calendar/gcal.py update <event_id> --title "New Title" --start "2026-03-16 14:00" --duration 60 --add-attendees "new@example.com" --meet
All flags are optional. Only provided fields are updated. Attendees are notified of changes.
CLAUDECLAW_DIR=/path/to/claudeclaw ~/.venv/bin/python3 ~/.config/calendar/gcal.py cancel <event_id>
Cancels the event and sends cancellation notices to all attendees.
CLAUDECLAW_DIR=/path/to/claudeclaw ~/.venv/bin/python3 ~/.config/calendar/gcal.py freebusy "2026-03-15 09:00" "2026-03-15 17:00"
Shows busy time slots in the given range. If no conflicts, says "Time range is free."
CLAUDECLAW_DIR=/path/to/claudeclaw ~/.venv/bin/python3 ~/.config/calendar/gcal.py auth
NEVER assume a date from a day name (e.g. "Monday", "next Thursday"). Always verify before creating an event:
python3 -c "from datetime import date; d = date(2026, 3, 15); print(f'{d.strftime(\"%A\")} {d}')"
list --days 7freebusy for the proposed slot--meet and --attendeesAlways show the user what you're about to create before running the command:
Then ask for confirmation before executing.
All of these work:
2026-03-15 10:002026-03-15 2:00PM2026-03-15T14:0003/15/2026 10:00The script defaults to America/New_York. To change it, edit the TIMEZONE constant in gcal.py.
--meet unless the user specifically says no video callUses the same Google Cloud project as Gmail. If token.json is missing:
CLAUDECLAW_DIR=/path/to/claudeclaw ~/.venv/bin/python3 ~/.config/calendar/gcal.py auth
Browser opens, sign in, approve Calendar access, done.
If you haven't set up Gmail yet, you'll need credentials.json first. See the Gmail skill setup instructions.
credentials.json missing, point to Gmail setup (same file)token.json missing, run auth automatically