--- name: gog description: Google Workspace CLI for Gmail, Google Calendar events, meetings, schedules, availability, Drive, Contacts, Sheets, and Docs user-invocable: true requires: bins: - gog metadata: hybridclaw: category: productivity short_description: "Google Workspace via gog CLI." tags: - google - workspace - gmail - calendar - drive - sheets - docs related_skills: - google-workspace install: - id: gog kind: brew os: ["darwin"] formula: openclaw/tap/gogcli bins: ["gog"] label: Install gog CLI (brew) - id: gog kind: go os: ["linux"] # 2026-09-24 (installer implementation): pin the verified upstream release; image provisioning is separate. module: github.com/openclaw/gogcli/cmd/gog@v0.41.0 bins: ["gog"] label: Install gog CLI (Go) --- # gog Use `gog` for Gmail/Calendar/Drive/Contacts/Sheets/Docs. Requires OAuth setup. ## Setup (once) `/skill install gog gog` selects Homebrew on macOS or Go on Linux. Linux requires a Go toolchain supported by the pinned gog release and its install location (`GOBIN`, or `GOPATH/bin`, normally `~/go/bin`) on the gateway's `PATH`. For cloud deployments, provision gog in the runtime image. Host installation does not install binaries inside separate agent containers. ```bash hybridclaw skill install gog gog hybridclaw auth login google --client-id --client-secret --account you@gmail.com hybridclaw auth status google ``` HybridClaw stores the Google OAuth client secret and refresh token in encrypted runtime secrets, mints a short-lived access token on the host, and injects only `GOG_ACCESS_TOKEN`, `GOOGLE_WORKSPACE_CLI_TOKEN`, and `GOG_ACCOUNT` into the agent runtime for Google Workspace CLIs. ## Common commands `gog` supports the commands: calendar, chat, contacts, docs, drive, forms, gmail, groups, people, slides, tasks, sheets - Help about a gog command: `gog --help` - Gmail search: `gog gmail search 'newer_than:7d' --max 10` - Gmail messages search (per email, ignores threading): `gog gmail messages search "in:inbox from:ryanair.com" --max 20 --account you@example.com` - Gmail send (plain): `gog gmail send --to a@b.com --subject "Hi" --body "Hello"` - Gmail send (multi-line): `gog gmail send --to a@b.com --subject "Hi" --body-file ./message.txt` - Gmail send (stdin): `gog gmail send --to a@b.com --subject "Hi" --body-file -` - Gmail send (HTML): `gog gmail send --to a@b.com --subject "Hi" --body-html "

Hello

"` - Gmail draft: `gog gmail drafts create --to a@b.com --subject "Hi" --body-file ./message.txt` - Gmail send draft: `gog gmail drafts send ` - Gmail reply: `gog gmail send --to a@b.com --subject "Re: Hi" --body "Reply" --reply-to-message-id ` - Calendar search events: `gog calendar search "Meeting" --from --to --max 10` - Calendar list events: `gog calendar events --from --to ` - Calendar create event: `gog calendar create --summary "Title" --from --to ` - Calendar create with attendees: `gog calendar create --summary "Title" --from --to --attendees a@b.com,c@d.com --send-updates all` - Calendar create with color: `gog calendar create --summary "Title" --from --to --event-color 7` - Calendar update event: `gog calendar update --summary "New Title" --event-color 4` - Calendar show colors: `gog calendar colors` - Drive search: `gog drive search "query" --max 10` - Contacts: `gog contacts list --max 20` - Sheets get: `gog sheets get "Tab!A1:D10" --json` - Sheets update: `gog sheets update "Tab!A1:B2" --values-json '[["A","B"],["1","2"]]' --input USER_ENTERED` - Sheets append: `gog sheets append "Tab!A:C" --values-json '[["x","y","z"]]' --insert INSERT_ROWS` - Sheets clear: `gog sheets clear "Tab!A2:Z"` - Sheets metadata: `gog sheets metadata --json` - Docs export: `gog docs export --format txt --out /tmp/doc.txt` - Docs cat: `gog docs cat ` ## Calendar Colors - Use `gog calendar colors` to see all available event colors (IDs 1-11) - Add colors to events with `--event-color ` flag - Event color IDs (from `gog calendar colors` output): - 1: #a4bdfc - 2: #7ae7bf - 3: #dbadff - 4: #ff887c - 5: #fbd75b - 6: #ffb878 - 7: #46d6db - 8: #e1e1e1 - 9: #5484ed - 10: #51b749 - 11: #dc2127 Email Formatting - Prefer plain text. Use `--body-file` for multi-paragraph messages (or `--body-file -` for stdin). - Same `--body-file` pattern works for drafts and replies. - `--body` does not unescape `\n`. If you need inline newlines, use a heredoc or `$'Line 1\n\nLine 2'`. - Use `--body-html` only when you need rich formatting. - HTML tags: `

` for paragraphs, `
` for line breaks, `` for bold, `` for italic, `` for links, `