gog/skills/gog-calendar/SKILL.md
This skill should be used when the user asks to "check my calendar", "show my agenda", "schedule a meeting", "create an event", "list events", "what's on my calendar", "today's schedule", "find free time", "check conflicts", "RSVP to event", "delete event", "update event", "set focus time", "block time", "set out of office", "search calendar", or mentions Google Calendar operations. Provides guidance for using the `gog calendar` CLI to interact with Google Calendar.
npx skillsauth add musingfox/cc-plugins gog CalendarInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Interact with Google Calendar using the gog CLI tool (gog calendar or alias gog cal).
Verify gog is available and authenticated:
gog calendar calendars
If authentication fails, inform the user to run gog auth add <email> --services calendar first.
--json when parsing output programmatically (e.g., extracting event IDs). Use human-readable output when displaying schedules to the user.--dry-run before creating, updating, or deleting events. Preview the action, then execute after user confirmation.--no-input to prevent interactive prompts.primary for most commands. Use gog calendar calendars to discover other calendar IDs.gog calendar events # Next 10 events on primary calendar
gog calendar events --today # Today's events
gog calendar events --tomorrow # Tomorrow's events
gog calendar events --week # This week's events
gog calendar events --days=7 # Next 7 days
gog calendar events --from=2026-03-10 --to=2026-03-15 # Date range
gog calendar events --all # Events from ALL calendars
gog calendar events <calendarId> # Events from a specific calendar
Key flags:
--today, --tomorrow, --week, --days=N — convenient time shortcuts--from, --to — explicit date range (RFC3339, date, or relative: today, tomorrow, monday)--query="text" — free text search within listed events--max=N — max results (default: 10)--all-pages — fetch all pages--all — all calendars--fields=summary,start,end — select specific fields (with --json)--weekday — include day-of-week columnsFull-text search across events:
gog calendar search "team standup"
gog calendar search "team standup" --from=today --to=friday --calendar=primary
gog calendar event <calendarId> <eventId>
Always preview with --dry-run first:
gog calendar create primary \
--summary="Team Meeting" \
--from="2026-03-11T14:00:00" \
--to="2026-03-11T15:00:00" \
--description="Weekly sync" \
--location="Conference Room A" \
--attendees="[email protected],[email protected]" \
--dry-run
After user confirms, execute without --dry-run.
Key flags:
--summary — event title--from, --to — start/end time (RFC3339)--all-day — all-day event (use date-only in --from/--to)--description — event description--location — location--attendees — comma-separated emails--with-meet — create a Google Meet link--rrule — recurrence rule (e.g., RRULE:FREQ=WEEKLY;BYDAY=MO)--reminder=popup:30m — custom reminder (method:duration, repeatable)--event-color=1 — color ID (1-11, use gog calendar colors to see options)--visibility — default, public, private, confidential--transparency — opaque (busy) or transparent (free). Aliases: busy, free--send-updates=all|externalOnly|none — notification mode (default: none)Always preview with --dry-run first:
gog calendar update primary <eventId> \
--summary="Updated Title" \
--from="2026-03-11T15:00:00" \
--to="2026-03-11T16:00:00" \
--dry-run
Additional update-specific flags:
--add-attendee="[email protected]" — add attendees without replacing existing ones--scope=single|future|all — for recurring events (default: all)--original-start=<time> — required for scope=single or scope=future--description="")Always preview with --dry-run first:
gog calendar delete primary <eventId> --dry-run
gog calendar respond primary <eventId> --status=accepted
gog calendar respond primary <eventId> --status=declined --comment="I have a conflict"
gog calendar respond primary <eventId> --status=tentative
Status options: accepted, declined, tentative, needsAction.
Check free/busy status:
gog calendar freebusy primary --from="2026-03-10T09:00:00" --to="2026-03-10T18:00:00"
gog calendar freebusy "[email protected],[email protected]" --from=today --to=tomorrow
Find scheduling conflicts:
gog calendar conflicts --today
gog calendar conflicts --week
gog calendar conflicts --days=7 --calendars="primary,[email protected]"
Focus Time block:
gog calendar focus-time --from="2026-03-11T09:00:00" --to="2026-03-11T12:00:00"
Out of Office:
gog calendar out-of-office --from="2026-03-15" --to="2026-03-16"
Working Location:
gog calendar working-location --from="2026-03-11" --to="2026-03-11" --type=home
gog calendar working-location --from="2026-03-12" --to="2026-03-12" --type=office --working-office-label="HQ"
List all calendars:
gog calendar calendars
Show available event colors:
gog calendar colors
Propose a new meeting time (generates browser URL):
gog calendar propose-time primary <eventId>
gog calendar freebusy "[email protected],[email protected]" --from=monday --to=fridaygog calendar create primary --summary="..." --from="..." --to="..." --attendees="..." --with-meet --dry-run--dry-rungog calendar events --today --all
gog calendar events --week --all
gog calendar conflicts --week
--dry-run preview and user confirmation.--send-updates=none when creating/updating to avoid surprise notifications. Ask the user if they want to notify attendees.--max=10 to keep output manageable.data-ai
Unified entry point for Obsidian daily-note captures and long-form notes. Triggers on "記一下 / log / 紀錄 / capture this / 寫到 journal" (→ cap mode) and "建立筆記 / new note / 寫一份筆記 / create a note on" (→ note mode). Also via `/obw:cap` and `/obw:note`. Requires `.obsidian.yaml`.
tools
Use the `gog` CLI to operate Google Workspace — Gmail (read/search/send/labels/drafts), Calendar (events/RSVP/freebusy/focus-time/out-of-office), and Drive (list/search/upload/ download/share/move). Triggers on any Gmail, inbox, email, calendar, agenda, meeting, schedule, RSVP, Drive, Google Doc/Sheet/Slides, file share, or upload/download request.
documentation
Interactively create .obsidian.yaml for a project and install starter templates (task / doc / adr) into the vault's Templates folder. Skips templates that already exist; never overwrites.
tools
Manage project hook-guard installation — set up, diagnose, or update Claude Code hooks, git pre-commit, and commit-msg scripts with security checks, code-quality gates, and CLAUDECODE skip logic. Triggers on "set up hooks", "configure pre-commit", "add linting hooks", "initialize hook-guard", "check hooks", "hook doctor", "verify hook setup", "troubleshoot hooks", "update hooks", "regenerate hooks", "sync hooks with current tools", or similar requests.