Back to Workflow & Productivity

Google Workspace CLI (gog)

google-workspacecliautomationgmailproductivity
โ˜… 4.8 (245)โญ 379.0k๐Ÿ“„ NOASSERTION๐Ÿ•’ 2026-06-16Source โ†—

Install this skill

npx skills add openclaw/openclaw

Works 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

  1. Authenticate with your Google account using 'gog auth add'.
  2. Set the 'GOG_ACCOUNT' environment variable to your email to simplify subsequent commands.
  3. Run a 'gog gmail messages search' to identify a specific task thread.
  4. Use 'gog sheets append' to record the task completion status in a project spreadsheet.
  5. 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 do I handle multi-line email bodies?
Use the '--body-file' flag. You can pass a file path or use '-' to pipe content from stdin, which supports heredocs for clean multi-line formatting.
Can I automate the process for multiple accounts?
Yes, use 'gog auth add' to register different accounts and provide the '--account' flag or set the 'GOG_ACCOUNT' environment variable to switch contexts.
How do I ensure my scripts don't prompt for input?
Include the '--no-input' flag alongside your commands to disable interactive confirmation prompts during automation.

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

โญ 379k stars๐Ÿ“„ NOASSERTION๐Ÿ•’ Updated 2026-06-16๐Ÿ›ก runs-shell, network, reads-credentials

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
The gog tool provides a command-line interface for managing core Google Workspace services directly from your terminal. It allows developers to programmatically interact with Gmail, Calendar, Drive, Contacts, Sheets, and Docs without opening a browser. By shifting these tasks into a text-based environment, you can integrate email automation, calendar scheduling, and spreadsheet data manipulation into your existing shell scripts or development workflows. It simplifies data retrieval and file management by offering native support for JSON output, making it suitable for piping information into other utilities like jq or custom automation pipelines. The tool requires an initial OAuth setup to ensure secure access to your account data, effectively turning your terminal into a bridge for managing your personal or professional Google ecosystem through explicit, scriptable commands.

How to Use This Skill Unit

Option A: Project-Specific (Recommended)

  1. Click "Download" above
  2. In your project, create the directory: .agent/skills/gog/
  3. Save the file as SKILL.md
  4. 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

Read the Master Guide: Mastering Agent Skills โ†’

Recommended Rules

View more rules โ†’

Recommended Workflows

View more workflows โ†’

Recommended MCP Servers

View more MCP servers โ†’

Take It Further

Maximize your productivity with these powerful resources

๐Ÿ“‹

Define Your Standards

Set up coding standards to ensure this workflow produces consistent, high-quality results.

Browse Rules Library
๐Ÿ“–

Master Workflows

Learn how to create custom workflows, use Turbo Mode, and build your automation library.

Complete Guide

How to use this Skill in Claude Code & Cursor

For Claude Code (CLI)

To use this skill in Claude Code, copy the rule content into your project's custom instructions or follow our Add-Skill CLI guide. This ensures Claude follows your standards during every code generation.

For Cursor & Windsurf

For Cursor or Windsurf, individual skills are best used in the "Rules for AI" section. This specific unit helps the agent avoid workflow & productivity issues, leading to cleaner, more efficient code.

Why the skill format matters: the standardized Agent Skills format lets your AI agent load detailed instructions only when they are relevant, keeping your prompt clean while improving results.

Source & attribution

This skill is categorized under Workflow & Productivity and is published by openclaw, maintained in openclaw/openclaw.

โ† Browse All Agent Skills
Sponsored AI assistant. Recommendations may be paid.