Gog — OpenClaw Skill
Google Workspace CLI -- Gmail, Calendar, Drive, Contacts, Sheets, and Docs from your OpenClaw agent.
What This Skill Does
The Gog skill gives your OpenClaw agent comprehensive access to Google Workspace through the gog CLI. It supports six services: Gmail (search threads, search individual messages, send, draft, reply), Calendar (list events, create with color-coding, update), Drive (search files), Contacts (list), Sheets (read ranges, update cells, append rows, clear, view metadata), and Docs (export, read content, copy).
Gmail supports plain text, multi-line body files, stdin input, and rich HTML formatting. Calendar events can be color-coded with 11 distinct colors and support ISO date ranges. Sheets operations use --values-json for structured data input, making it easy to read, write, and append programmatically. The agent confirms before sending mail or creating events to prevent mistakes.
This is one of the most powerful productivity skills available -- your agent can read your inbox, summarize unread emails, draft replies, check your calendar for conflicts, create meeting invites, search Drive for documents, and update tracking spreadsheets. Set GOG_ACCOUNT to avoid repeating your email on every command.
Example Prompts
Search my Gmail for emails from Ryanair in the last 7 days
Send an email to alex@example.com with the subject "Meeting Follow-up" and a summary of our discussion
What events do I have on my calendar this week?
Create a calendar event for tomorrow at 2pm titled "Design Review" with a blue color
Read the data from my tracking spreadsheet and give me a summary of this week's numbers
Append a new row to the Sales sheet with today's figures: 150 leads, 23 conversions, $4,500 revenue
Export my Google Doc meeting notes as a text file
Draft a reply to the latest email from my manager -- acknowledge the request and confirm I'll have it done by Friday
Requirements
Binary dependency: gog must be installed and authenticated with OAuth.
- Install via Homebrew:
brew install steipete/tap/gogcli - OAuth setup: Requires a Google Cloud
client_secret.jsonfile with OAuth credentials - Authentication: Run
gog auth credentials /path/to/client_secret.jsonthengog auth add you@gmail.com --services gmail,calendar,drive,contacts,docs,sheets
Setup on KiwiClaw
Connect your Google Workspace via OAuth in the KiwiClaw dashboard. Your agent gets instant access to Gmail, Calendar, Drive, Sheets, Docs, and Contacts with no manual credential configuration required.
Setup Self-Hosted
- Install gog:
brew install steipete/tap/gogcli - Create a Google Cloud project and download
client_secret.json - Register credentials:
gog auth credentials /path/to/client_secret.json - Authenticate:
gog auth add you@gmail.com --services gmail,calendar,drive,contacts,docs,sheets - Verify:
gog auth list
Related Skills
- Things Mac -- create Things tasks from Gmail action items
- Slack -- share calendar updates and email summaries in Slack channels
- WaCLI -- forward important email highlights via WhatsApp
- Xurl -- schedule social posts based on your calendar availability
FAQ
What Google services does the Gog skill support?
Gog supports six Google Workspace services: Gmail (search, send, draft, reply), Calendar (list events, create, update with colors), Drive (search files), Contacts (list), Sheets (get, update, append, clear, metadata), and Docs (export, cat, copy).
How does Gog authenticate with Google?
Gog uses OAuth with a client_secret.json file. Run gog auth credentials /path/to/client_secret.json to register credentials, then gog auth add you@gmail.com --services gmail,calendar,drive,contacts,docs,sheets to authenticate for specific services.
Can Gog send emails with rich formatting?
Yes. Use --body for plain text, --body-file for multi-line text from a file or stdin, and --body-html for rich HTML formatting with paragraphs, bold, italic, links, and lists.
Can Gog read and write Google Sheets?
Yes. Use gog sheets get to read cell ranges, gog sheets update to write values, gog sheets append to add rows, and gog sheets clear to clear ranges. Values are passed via --values-json for structured data input.