Google Workspace CLI (gog)
Install this skill
npx skills add openclaw/openclawWorks across Claude Code, Cursor, Codex, Copilot & Antigravity
What this skill does
- โขSearch, read, and send complex Gmail messages including support for HTML or plain text bodies
- โขCreate, update, and list calendar events with customizable color-coding and time ranges
- โขManage Google Drive files through search and metadata retrieval
- โขRead, update, and append data to Google Sheets using JSON formatted input
- โขExport Google Docs to local files or print document contents directly to the terminal
When to use it
- โAutomating repetitive email updates or status reports from CLI-based monitoring tools
- โProgrammatically updating spreadsheet trackers or log sheets from local dev scripts
- โScheduling calendar events or meeting summaries without leaving your development environment
- โRetrieving information from Docs or Drive for context-aware coding sessions
When not to use it
- โTasks requiring complex in-place collaborative editing of Google Docs
- โManaging highly sensitive administrative Workspace settings that fall outside standard API scopes
How to invoke it
Example prompts that trigger this skill:
- โCheck my calendar for meetings between 9 AM and 5 PM today using gog.โ
- โSend a follow-up email to the team regarding the latest PR status using gog.โ
- โGet the data from the A1:D10 range in my project tracker sheet via gog.โ
- โSearch my inbox for the last 5 emails from the build server using gog.โ
- โCreate a new calendar entry for the upcoming demo session.โ
Example workflow
- Authenticate with your Google account using 'gog auth add'.
- Set the 'GOG_ACCOUNT' environment variable to your email to simplify subsequent commands.
- Run a 'gog gmail messages search' to identify a specific task thread.
- Use 'gog sheets append' to record the task completion status in a project spreadsheet.
- Use 'gog calendar create' to block out time for the next related follow-up task.
Prerequisites
- โGoogle Cloud project with relevant APIs enabled
- โOAuth client credentials JSON file
- โGoogle account with API access permissions
Pitfalls & limitations
- !Gmail search defaults to threading; use 'messages search' if you need individual message access.
- !The '--body' flag does not support newline escapes, necessitating the use of '--body-file' for multi-line text.
- !In-place editing of Google Docs is not supported via this CLI.
FAQ
How it compares
While web interfaces require manual mouse interactions, gog allows you to pipe data directly from your terminal, enabling true 'as-code' management of your workspace data.
Source & trust
From the source: โ# gog Use `gog` for Gmail/Calendar/Drive/Contacts/Sheets/Docs. Requires OAuth setup. Setup (once) - `gog auth credentials /path/to/client_secret.json` - `gog auth add [email protected] --services gmail,calendar,drive,contacts,docs,sheets` - `gog auth list` Common commands - Gmail search: `gog gmail searโฆโ
View the full SKILL.md source
# gog Use `gog` for Gmail/Calendar/Drive/Contacts/Sheets/Docs. Requires OAuth setup. Setup (once) - `gog auth credentials /path/to/client_secret.json` - `gog auth add [email protected] --services gmail,calendar,drive,contacts,docs,sheets` - `gog auth list` Common commands - 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 [email protected]` - Gmail send (plain): `gog gmail send --to [email protected] --subject "Hi" --body "Hello"` - Gmail send (multi-line): `gog gmail send --to [email protected] --subject "Hi" --body-file ./message.txt` - Gmail send (stdin): `gog gmail send --to [email protected] --subject "Hi" --body-file -` - Gmail send (HTML): `gog gmail send --to [email protected] --subject "Hi" --body-html "<p>Hello</p>"` - Gmail draft: `gog gmail drafts create --to [email protected] --subject "Hi" --body-file ./message.txt` - Gmail send draft: `gog gmail drafts send <draftId>` - Gmail reply: `gog gmail send --to [email protected] --subject "Re: Hi" --body "Reply" --reply-to-message-id <msgId>` - Calendar list events: `gog calendar events <calendarId> --from <iso> --to <iso>` - Calendar create event: `gog calendar create <calendarId> --summary "Title" --from <iso> --to <iso>` - Calendar create with color: `gog calendar create <calendarId> --summary "Title" --from <iso> --to <iso> --event-color 7` - Calendar update event: `gog calendar update <calendarId> <eventId> --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 <sheetId> "Tab!A1:D10" --json` - Sheets update: `gog sheets update <sheetId> "Tab!A1:B2" --values-json '[["A","B"],["1","2"]]' --input USER_ENTERED` - Sheets append: `gog sheets append <sheetId> "Tab!A:C" --values-json '[["x","y","z"]]' --insert INSERT_ROWS` - Sheets clear: `gog sheets clear <sheetId> "Tab!A2:Z"` - Sheets metadata: `gog sheets metadata <sheetId> --json` - Docs export: `gog docs export <docId> --format txt --out /tmp/doc.txt` - Docs cat: `gog docs cat <docId>` Calendar Colors - Use `gog calendar colors` to see all available event colors (IDs 1-11) - Add colors to events with `--event-color <id>` 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: `<p>` for paragraphs, `<br>` for line breaks, `<strong>` for bold, `<em>` for italic, `<a href="url">` for links, `<ul>`/`<li>` for lists. - Example (plain text via stdin): ```bash gog gmail send --to [email protected] \ --subject "Meeting Follow-up" \ --body-file - <<'EOF' Hi Name, Thanks for meeting today. Next steps: - Item one - Item two Best regards, Your Name EOF ``` - Example (HTML list): ```bash gog gmail send --to [email protected] \ --subject "Meeting Follow-up" \ --body-html "<p>Hi Name,</p><p>Thanks for meeting today. Here are the next steps:</p><ul><li>Item one</li><li>Item two</li></ul><p>Best regards,<br>Your Name</p>" ``` Notes - Set `[email protected]` to avoid repeating `--account`. - For scripting, prefer `--json` plus `--no-input`. - Sheets values can be passed via `--values-json` (recommended) or as inline rows. - Docs supports export/cat/copy. In-place edits require a Docs API client (not in gog). - Confirm before sending mail or creating events. - `gog gmail search` returns one row per thread; use `gog gmail messages search` when you need every individual email returned separately.
Quoted from openclaw/openclaw for reference โ see the original for the authoritative, latest version.
๐ Full skill instructions โ original source: openclaw/openclaw
How to Use This Skill Unit
Option A: Project-Specific (Recommended)
- Click "Download" above
- In your project, create the directory:
.agent/skills/gog/ - Save the file as
SKILL.md - The agent will automatically discover the skill based on its description.
Option B: Global Installation (All Agents)
Save the file to these locations to make it available across all projects:
- Claude Code:
~/.claude/skills/openclaw/openclaw/gog/SKILL.md - Cursor:
~/.cursor/skills/openclaw/openclaw/gog/SKILL.md - Antigravity:
~/.gemini/antigravity/skills/openclaw/openclaw/gog/SKILL.md
๐ Install with CLI:npx skills add openclaw/openclaw
