gogcli/SKILL.md
Use `gog` CLI for Gmail and Google Calendar operations. Trigger when user asks to send/search/read email, manage Gmail labels/drafts/filters, create/update/list calendar events, check availability, or interact with Google Workspace email and scheduling. Also covers auth setup, account management, and output formatting.
npx skillsauth add ddnetters/homelab-agent-skills gogcliInstall 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.
gog is a fast, script-friendly CLI for Google Workspace. This skill covers Gmail and Calendar — the two most common services.
Install: brew install gogcli
gog auth credentials ~/Downloads/client_secret_....json
gog auth add [email protected]
export [email protected]
Verify: gog auth list --check
# Search
gog gmail search 'newer_than:7d' --max 10
gog gmail search 'from:[email protected] is:unread'
# Read
gog gmail thread get <threadId>
gog gmail get <messageId>
# Send
gog gmail send --to [email protected] --subject "Hi" --body "Hello"
gog gmail send --to [email protected] --subject "Hi" --body-file ./message.txt
gog gmail send --to [email protected] --subject "Report" --body "See attached" --body-html "<p>See attached</p>"
# Reply (threaded, with quoted original)
gog gmail send --reply-to-message-id <messageId> --quote --to [email protected] --subject "Re: Hi" --body "My reply"
# Drafts
gog gmail drafts create --to [email protected] --subject "Draft" --body "Body"
gog gmail drafts list
gog gmail drafts send <draftId>
# Labels
gog gmail labels list
gog gmail thread modify <threadId> --add STARRED --remove INBOX
# Download attachments
gog gmail thread get <threadId> --download --out-dir ./attachments
# List events
gog calendar events primary --today
gog calendar events primary --tomorrow
gog calendar events primary --week
gog calendar events primary --days 3
gog calendar events primary --from 2025-01-15 --to 2025-01-20
# All calendars
gog calendar events --all --today
# Search
gog calendar search "standup" --today
gog calendar search "meeting" --days 30
# Create event
gog calendar create primary \
--summary "Team Sync" \
--from 2025-01-15T14:00:00Z \
--to 2025-01-15T15:00:00Z \
--attendees "[email protected],[email protected]" \
--location "Zoom"
# Update event
gog calendar update primary <eventId> \
--summary "Updated Meeting" \
--from 2025-01-15T11:00:00Z \
--to 2025-01-15T12:00:00Z
# Delete event
gog calendar delete primary <eventId>
# RSVP
gog calendar respond primary <eventId> --status accepted
gog calendar respond primary <eventId> --status declined
# Check availability
gog calendar freebusy --calendars "primary,[email protected]" \
--from 2025-01-15T00:00:00Z --to 2025-01-16T00:00:00Z
# Conflicts
gog calendar conflicts --all --today
# Calendars list
gog calendar calendars
--json: machine-readable JSON (stdout), errors on stderr--plain: stable TSV for pipingAlways use --json when chaining commands or parsing output programmatically.
# Flag
gog gmail search 'is:unread' --account [email protected]
# Alias
gog auth alias set work [email protected]
gog gmail search 'is:unread' --account work
# Environment (preferred for sessions)
export [email protected]
gog prompts before destructive actions (sending mail, creating events). Use --force to skip, --no-input for CI/scripting.
Pass --send-updates all (or externalOnly) on create/update/delete to notify attendees. Default: no notifications sent.
For complete command reference including filters, batch operations, vacation settings, delegation, recurring events, special event types (focus-time, out-of-office, working-location), and advanced patterns, see references/commands.md.
development
Use when delegating a single coding task to `codex exec` ("hand off to codex", "run codex on this", "dispatch codex on this ticket", any one-shot invocation). Covers flags, sandbox traps, monitoring, and recovery. Not for multi-issue parallel batches — use codex-issue-waves for those.
development
Use when the user says "have codex fix this" / "have codex implement this" / "let codex handle this" / "give this to codex" / "delegate this to codex" for a single task with context already in scope (a Jira ticket, GitHub issue, file diff, bug, or described change). Plans the work, splits it into reviewable waves, dispatches codex per wave with review and correction between waves before opening a PR. Not for multi-issue parallel batches (use codex-issue-waves) or one-shot codex runs without planning (use invoking-codex-exec).
development
Run a batch of GitHub issues through codex exec in isolated git worktrees as parallel autonomous PRs, then manage the review and correction waves until merge. Use when the user gives a list of issue numbers (≥ 2) and asks to "spawn codex" / "dispatch codex" / "have codex work on" / "manage the PRs" / "process feedback" / "get them merged" for those issues, or when the user asks for multi-issue parallel delegation to codex. Not for single-issue wave-driven delegation (use codex-task-waves), single-issue one-shot dispatch (use invoking-codex-exec), or implementation without delegation (use /pr or direct implementation).
development
Slite knowledge base API — ask questions, search notes, retrieve content, manage users and groups, and audit knowledge health via the REST API