A command-line interface to interact with Google Workspace services like Gmail, Calendar, and Drive.
Install
mkdir -p .claude/skills/gog && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/684" && unzip -o skill.zip -d .claude/skills/gog && rm skill.zipInstalls to .claude/skills/gog
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.Key capabilities
- →Search and manage Gmail messages
- →Create and update Google Calendar events
- →Read and write data to Google Sheets
- →Search and manage Google Drive files
- →Export or display Google Docs content
How it works
The skill acts as a CLI wrapper for Google Workspace APIs, requiring an initial OAuth authentication flow. It maps terminal commands to specific API endpoints for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.
Inputs & outputs
When to use gog
- →Search and manage Gmail inbox from terminal
- →Create or list Google Calendar events
- →Read and write data to Google Sheets
- →Automate file management in Google Drive
About this skill
gog
Use gog for Gmail/Calendar/Drive/Contacts/Sheets/Docs. Requires OAuth setup.
Prefer an already-authorized host account: run the requested gog command first. Enter setup only after an authentication error. Never ask for passwords, client secrets, or refresh tokens in chat.
Setup (once)
gog auth credentials /path/to/client_secret.jsongog auth add [email protected] --services gmail,calendar,drive,contacts,docs,sheetsgog auth list
Remote / headless Gateway hosts
When the Gateway host has no local browser display:
- Prefer a live callback listener on the Gateway host. From the machine with the browser, forward the exact callback port (
ssh -L <port>:127.0.0.1:<port> user@gateway-host), open the authorization URLgogprints, and let the redirect complete on that forwarded port. - When a live listener is unavailable, the operator picks one paste-mode path in a trusted shell on the Gateway host. Callback URLs must never enter chat or agent tool input:
--manual: the operator pastes the full redirect URL intogog's interactive prompt.--remote --step 1: printsauth_url(andstate_reused) then exits. After browser consent, the operator runs--remote --step 2 --auth-url <callback-url>in the trusted shell. A failedlocalhostpage load after consent is expected.
- Keep the same resolved config context across remote steps:
GOG_CONFIG_DIRtakes precedence over--home, which takes precedence overGOG_HOME. Also preserve--client, services/scopes, redirect URI, and consent options. Matching unexpired manual state may be reused (state_reused=true). - If desktop keyring is unavailable, configure the file backend (
gog auth keyring file) and setGOG_KEYRING_PASSWORDin the Gateway environment so non-interactive agent/--no-inputruns can read tokens.gog auth doctorreports when the password is missing. - Callback received is not the same as token stored. If token exchange or identity lookup fails behind a proxy, restart from step 1 after the operator approves scoped egress or proxy exceptions for the required Google endpoints. Do not bypass host network policy or reuse failed or expired state.
For diagnostics, inspect every entry reported by gog auth list --check; its exit status does not prove every stored token is valid. Likewise, inspect the status reported by gog auth doctor rather than relying only on its exit code.
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 colorsto see all available event colors (IDs 1-11) - Add colors to events with
--event-color <id>flag - Event color IDs (from
gog calendar colorsoutput):- 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-filefor multi-paragraph messages (or--body-file -for stdin). -
Same
--body-filepattern works for drafts and replies. -
--bodydoes not unescape\n. If you need inline newlines, use a heredoc or$'Line 1\n\nLine 2'. -
Use
--body-htmlonly 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):
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):
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
--jsonplus--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).
gog gmail searchreturns one row per thread; usegog gmail messages searchwhen you need every individual email returned separately.
When not to use it
- →For in-place editing of Google Docs files
- →When complex Google Sheets formatting requires the full Sheets API client
Prerequisites
Limitations
- →Requires manual OAuth setup for credentials
- →Google Docs editing is limited to export and display
- →Requires specific account configuration for multi-account usage
How it compares
It enables direct terminal-based interaction with Google Workspace services, eliminating the need for a browser-based UI for routine data management tasks.
Compared to similar skills
gog side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| gog (this skill) | 78 | 4mo | Review | Intermediate |
| calc | 0 | 5mo | Review | Beginner |
| bewerbungs-tracker | 0 | 4mo | No flags | Beginner |
| office-productivity | 0 | 7mo | No flags | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by openclaw
View all by openclaw →You might also like
calc
Anhvu1107
ALWAYS use this when the request matches Calc: Spreadsheet creation, format conversion (ODS/XLSX/CSV), formulas, data automation with LibreOffice Calc.
bewerbungs-tracker
Flissel
Bewerbungs-Tracker mit Status-Pipeline (Sichtung -> Interview -> Angebot/Absage),
office-productivity
netbarros
Office productivity workflow covering document creation, spreadsheet automation, presentation generation, and integration with LibreOffice and Microsoft Office formats.
spreadsheet-workflow-automator
zwright8
Use when tasks require spreadsheet workflow automator with credential-aware preflight, deterministic execution, validation gates, and handoff-ready artifacts.
google-sheets-automation
TJSNDHU
Lightweight Google Sheets integration with standalone OAuth authentication. No MCP server required. Full read/write access.
import
JaguarJack
Generate Excel import class for CatchAdmin module.