← Skills

gog

Google Workspace CLI — Gmail, Calendar, Drive, Sheets, Docs


name: gog description: Google Workspace CLI for Gmail, Calendar, Chat, Classroom, Drive, Docs, Slides, Sheets, Forms, Apps Script, Contacts, Tasks, People, Groups, and Keep. homepage: https://gogcli.sh metadata: {"clawdbot":{"emoji":"🎮","requires":{"bins":["gog"]},"install":[{"id":"binary","kind":"binary","url":"https://github.com/steipete/gogcli/releases","bins":["gog"],"label":"Install gog (Windows binary from GitHub releases)"}]}}

gog (v0.11.0 — Windows native)

Unified CLI for Google Workspace. JSON-first output, multi-account, least-privilege auth.

Installation (Windows)

  1. Download gogcli_<version>_windows_amd64.zip from https://github.com/steipete/gogcli/releases
  2. Extract gog.exe to a directory on PATH (e.g. C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps\)
  3. Verify: gog --version

Setup (once)

  • gog auth credentials C:\path\to\client_secret.json
  • gog auth add you@gmail.com --services all --manual (use --manual for headless/VPS)
  • gog auth list

Global Flags

  • --account <email> — select account
  • --client <name> — select OAuth client
  • --json — JSON output
  • --plain — TSV output (for scripting)
  • --force — skip confirmations
  • --no-input — fail instead of prompting
  • --max <n> — limit results
  • --page <token> — pagination

Gmail

  • Search: gog gmail search "is:unread from:x@y.com newer_than:7d" --max 10 --json
  • Message search: gog gmail messages search "is:unread" --include-body --json
  • Read thread: gog gmail thread get <threadId> --json
  • Read message: gog gmail get <messageId> --format full --json
  • Send: gog gmail send --to a@b.com --subject "Hi" --body "Hello"
  • Send HTML + attachment: gog gmail send --to a@b.com --subject "Report" --html "<h1>Hi</h1>" --attach report.pdf
  • Send tracked: gog gmail send --to a@b.com --subject "Hi" --body "Hello" --track
  • Labels: gog gmail labels list --json
  • Drafts: gog gmail drafts list --json
  • Filters: gog gmail filters list --json

Calendar

  • List calendars: gog calendar calendars --max 5 --json
  • Events: gog calendar events <calendarId> --from <iso> --to <iso> --json
  • Create event: gog calendar create <calendarId> --summary "Meeting" --start <iso> --end <iso>
  • Update event: gog calendar update <calendarId> <eventId> --summary "Updated"
  • Free/busy: gog calendar freebusy <email> --from <iso> --to <iso> --json
  • Conflicts: gog calendar conflicts <calendarId> --from <iso> --to <iso>

Drive

  • List: gog drive ls --max 10 --json
  • Search: gog drive search "query" --max 10 --json
  • Upload: gog drive upload /path/to/file --parent <folderId>
  • Upload + replace: gog drive upload /path/to/file --replace <fileId>
  • Upload + convert: gog drive upload file.csv --convert-to sheet
  • Download: gog drive download <fileId> --out /path/to/output
  • Share: gog drive share <fileId> --to user@example.com --role writer
  • Share to domain: gog drive share <fileId> --to domain --role reader

Sheets

  • Get cells: gog sheets get <sheetId> "Tab!A1:D10" --json
  • Update cells: gog sheets update <sheetId> "Tab!A1:B2" --values-json "[[\"A\",\"B\"],[\"1\",\"2\"]]" --input USER_ENTERED
  • Append rows: gog sheets append <sheetId> "Tab!A:C" --values-json "[[\"x\",\"y\",\"z\"]]" --insert INSERT_ROWS
  • Clear range: gog sheets clear <sheetId> "Tab!A2:Z"
  • Metadata: gog sheets metadata <sheetId> --json

Docs

  • Cat: gog docs cat <docId>
  • Cat with tabs: gog docs cat <docId> --all-tabs
  • Export: gog docs export <docId> --format txt --out output.txt
  • Create from markdown: gog docs create --file input.md --title "My Doc"
  • List tabs: gog docs list-tabs <docId>
  • Write: gog docs write <docId> --text "Content"
  • Find/replace: gog docs find-replace <docId> --find "old" --replace "new"

Slides

  • List slides: gog slides list-slides <presentationId>
  • Read slide: gog slides read-slide <presentationId> <slideIndex>
  • Add slide: gog slides add-slide <presentationId>
  • Create from markdown: gog slides create --file input.md --title "My Deck"

Contacts & People

  • List contacts: gog contacts list --max 20 --json
  • Get contact: gog contacts get <resourceName> --json
  • Update: gog contacts update <resourceName> --email new@x.com
  • Directory: gog people directory --max 50 --json

Tasks

  • List task lists: gog tasks lists --json
  • List tasks: gog tasks list <taskListId> --json
  • Create task: gog tasks create <taskListId> --title "Do something"
  • Complete: gog tasks complete <taskListId> <taskId>

Chat (Workspace only)

  • List spaces: gog chat spaces --json
  • Send message: gog chat send <spaceId> --text "Hello"
  • List messages: gog chat messages <spaceId> --json

Classroom

  • List courses: gog classroom courses --json
  • Coursework: gog classroom coursework <courseId> --json

Notes

  • Set GOG_ACCOUNT=you@gmail.com env var to avoid repeating --account on every command.
  • For scripting/automation, always prefer --json plus --no-input.
  • Sheets values can be passed via --values-json (recommended) or as inline rows.
  • Docs supports create/write/insert/delete/find-replace since v0.11.0.
  • Use --force to skip confirmations when sending mail or creating events.
  • Config stored at: %APPDATA%\gogcli\ on Windows.
  • Tokens stored in Windows Credential Manager (or encrypted file-based keyring).
View raw SKILL.md
---
name: gog
description: Google Workspace CLI for Gmail, Calendar, Chat, Classroom, Drive, Docs, Slides, Sheets, Forms, Apps Script, Contacts, Tasks, People, Groups, and Keep.
homepage: https://gogcli.sh
metadata: {"clawdbot":{"emoji":"🎮","requires":{"bins":["gog"]},"install":[{"id":"binary","kind":"binary","url":"https://github.com/steipete/gogcli/releases","bins":["gog"],"label":"Install gog (Windows binary from GitHub releases)"}]}}
---

# gog (v0.11.0 — Windows native)

Unified CLI for Google Workspace. JSON-first output, multi-account, least-privilege auth.

## Installation (Windows)
1. Download `gogcli_<version>_windows_amd64.zip` from https://github.com/steipete/gogcli/releases
2. Extract `gog.exe` to a directory on PATH (e.g. `C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps\`)
3. Verify: `gog --version`

## Setup (once)
- `gog auth credentials C:\path\to\client_secret.json`
- `gog auth add you@gmail.com --services all --manual` (use `--manual` for headless/VPS)
- `gog auth list`

## Global Flags
- `--account <email>` — select account
- `--client <name>` — select OAuth client
- `--json` — JSON output
- `--plain` — TSV output (for scripting)
- `--force` — skip confirmations
- `--no-input` — fail instead of prompting
- `--max <n>` — limit results
- `--page <token>` — pagination

## Gmail
- Search: `gog gmail search "is:unread from:x@y.com newer_than:7d" --max 10 --json`
- Message search: `gog gmail messages search "is:unread" --include-body --json`
- Read thread: `gog gmail thread get <threadId> --json`
- Read message: `gog gmail get <messageId> --format full --json`
- Send: `gog gmail send --to a@b.com --subject "Hi" --body "Hello"`
- Send HTML + attachment: `gog gmail send --to a@b.com --subject "Report" --html "<h1>Hi</h1>" --attach report.pdf`
- Send tracked: `gog gmail send --to a@b.com --subject "Hi" --body "Hello" --track`
- Labels: `gog gmail labels list --json`
- Drafts: `gog gmail drafts list --json`
- Filters: `gog gmail filters list --json`

## Calendar
- List calendars: `gog calendar calendars --max 5 --json`
- Events: `gog calendar events <calendarId> --from <iso> --to <iso> --json`
- Create event: `gog calendar create <calendarId> --summary "Meeting" --start <iso> --end <iso>`
- Update event: `gog calendar update <calendarId> <eventId> --summary "Updated"`
- Free/busy: `gog calendar freebusy <email> --from <iso> --to <iso> --json`
- Conflicts: `gog calendar conflicts <calendarId> --from <iso> --to <iso>`

## Drive
- List: `gog drive ls --max 10 --json`
- Search: `gog drive search "query" --max 10 --json`
- Upload: `gog drive upload /path/to/file --parent <folderId>`
- Upload + replace: `gog drive upload /path/to/file --replace <fileId>`
- Upload + convert: `gog drive upload file.csv --convert-to sheet`
- Download: `gog drive download <fileId> --out /path/to/output`
- Share: `gog drive share <fileId> --to user@example.com --role writer`
- Share to domain: `gog drive share <fileId> --to domain --role reader`

## Sheets
- Get cells: `gog sheets get <sheetId> "Tab!A1:D10" --json`
- Update cells: `gog sheets update <sheetId> "Tab!A1:B2" --values-json "[[\"A\",\"B\"],[\"1\",\"2\"]]" --input USER_ENTERED`
- Append rows: `gog sheets append <sheetId> "Tab!A:C" --values-json "[[\"x\",\"y\",\"z\"]]" --insert INSERT_ROWS`
- Clear range: `gog sheets clear <sheetId> "Tab!A2:Z"`
- Metadata: `gog sheets metadata <sheetId> --json`

## Docs
- Cat: `gog docs cat <docId>`
- Cat with tabs: `gog docs cat <docId> --all-tabs`
- Export: `gog docs export <docId> --format txt --out output.txt`
- Create from markdown: `gog docs create --file input.md --title "My Doc"`
- List tabs: `gog docs list-tabs <docId>`
- Write: `gog docs write <docId> --text "Content"`
- Find/replace: `gog docs find-replace <docId> --find "old" --replace "new"`

## Slides
- List slides: `gog slides list-slides <presentationId>`
- Read slide: `gog slides read-slide <presentationId> <slideIndex>`
- Add slide: `gog slides add-slide <presentationId>`
- Create from markdown: `gog slides create --file input.md --title "My Deck"`

## Contacts & People
- List contacts: `gog contacts list --max 20 --json`
- Get contact: `gog contacts get <resourceName> --json`
- Update: `gog contacts update <resourceName> --email new@x.com`
- Directory: `gog people directory --max 50 --json`

## Tasks
- List task lists: `gog tasks lists --json`
- List tasks: `gog tasks list <taskListId> --json`
- Create task: `gog tasks create <taskListId> --title "Do something"`
- Complete: `gog tasks complete <taskListId> <taskId>`

## Chat (Workspace only)
- List spaces: `gog chat spaces --json`
- Send message: `gog chat send <spaceId> --text "Hello"`
- List messages: `gog chat messages <spaceId> --json`

## Classroom
- List courses: `gog classroom courses --json`
- Coursework: `gog classroom coursework <courseId> --json`

## Notes
- Set `GOG_ACCOUNT=you@gmail.com` env var to avoid repeating `--account` on every command.
- For scripting/automation, always prefer `--json` plus `--no-input`.
- Sheets values can be passed via `--values-json` (recommended) or as inline rows.
- Docs supports create/write/insert/delete/find-replace since v0.11.0.
- Use `--force` to skip confirmations when sending mail or creating events.
- Config stored at: `%APPDATA%\gogcli\` on Windows.
- Tokens stored in Windows Credential Manager (or encrypted file-based keyring).