{"id":"3fa07baa-ae59-47e3-a35b-55e3d8634c47","shortId":"LTpbjj","kind":"skill","title":"google-workspace-ops","tagline":"Google Workspace CLI automation via gogcli. Gmail, Calendar, Drive, Docs, Slides, Sheets, and 9 more services. JSON-first output, composable pipelines.","description":"# Google Workspace Ops\n\nAutomates Google Workspace work using the `gog` CLI with machine-parseable JSON output, from email and calendar operations to Drive/docs/sheets workflows. Use it when you need repeatable workspace automation, but avoid it for non-Google services or ad hoc UI workflows.\n\nTerminology used in this file:\n- **OAuth:** Google's delegated login/authorization flow used to grant CLI access without sharing your password.\n- **GCP:** Google Cloud Platform, where you create the project and OAuth credentials.\n- **RFC3339:** Standard date-time format used by Google APIs (for example, `2026-02-18T09:00:00+00:00`).\n\n## Setup\n\n```bash\nbrew tap steipete/tap\nbrew install gogcli\ngog login YOUR_EMAIL --services all\n```\n\n- **Claude Code:** copy this skill folder into `.claude/skills/google-workspace-ops/`\n- **Codex CLI:** append this SKILL.md content to your project's root `AGENTS.md`\n\nFor the full installation walkthrough (prerequisites, OAuth setup, verification, troubleshooting), see [references/installation-guide.md](references/installation-guide.md).\n\n**Credential management:** `GOG_KEYRING_PASSWORD` is required for all `gog` operations using the file-based keyring (headless/SSH environments, or desktop when opting out of system keychain). We strongly recommend managing it via the [vault skill](../vault/) -- see [references/auth-setup.md](references/auth-setup.md#credential-management) for all options including vault, custom secret managers, and plain export.\n\n## Staying Updated\n\nThis skill ships with an `UPDATES.md` changelog and `UPDATE-GUIDE.md` for your AI agent.\n\nAfter installing, tell your agent: \"Check `UPDATES.md` in the google-workspace-ops skill for any new features or changes.\"\n\nWhen updating, tell your agent: \"Read `UPDATE-GUIDE.md` and apply the latest changes from `UPDATES.md`.\"\n\nFollow `UPDATE-GUIDE.md` so customized local files are diffed before any overwrite.\n\n---\n\n## Quick Start\n\nRun one read-only Gmail flow end-to-end:\n\n```bash\ngog auth status\ngog gmail search \"is:unread\" --max 5 --json --no-input\ngog gmail thread get THREAD_ID --json --no-input\n```\n\nUse this baseline pattern for automation:\n- read/list/search: `--json --no-input`\n- send/create/modify/delete: run `--dry-run` first, then ask user approval\n\n## Decision Tree: When to Use gog\n\n```text\nNeed to interact with Google Workspace?\n  |\n  +-- Is it email? (read, search, send, labels, drafts)\n  |     YES --> gog gmail ...\n  |\n  +-- Is it calendar? (events, create, conflicts, freebusy)\n  |     YES --> gog calendar ...\n  |\n  +-- Is it files? (search, upload, download, share)\n  |     YES --> gog drive ...\n  |\n  +-- Is it document editing? (create, read, write Google Docs)\n  |     YES --> gog docs ...\n  |\n  +-- Is it presentations? (create from markdown, export)\n  |     YES --> gog slides ...\n  |\n  +-- Is it spreadsheets? (read cells, update, append)\n  |     YES --> gog sheets ...\n  |\n  +-- Is it people? (contacts, directory search, tasks)\n        YES --> gog contacts / gog tasks / gog people ...\n```\n\n**Rule of thumb:** if it touches Google Workspace, `gog` is the right entry point.\n\n## Security: Approval Rules\n\n**State-modifying operations require explicit user approval before execution.**\n\n| Operation Type | Examples | Autonomous? |\n|---------------|----------|-------------|\n| **Read / List / Search** | `gmail messages list`, `drive ls`, `calendar list`, `docs cat` | YES — run freely |\n| **Send / Create** | `gmail send`, `docs create`, `calendar create`, `drive upload` | NO — ask user first |\n| **Modify / Update** | `gmail modify`, `sheets update`, `docs write`, `contacts update` | NO — ask user first |\n| **Delete / Trash** | `gmail trash`, `drive trash`, `tasks delete` | NO — ask user first |\n| **Draft** | `gmail drafts create` | YES — drafts are safe, not sent |\n\nThe rule is simple: if an action changes workspace state visible to others or is hard to undo, get approval first. Reading is okay.\n\nAutomation and scripts should present intent (recipient, subject, summary, account, target IDs) and wait for explicit confirmation before send/modify/delete operations.\n\n## Global Flags (All Commands)\n\nEvery `gog` command accepts these flags. Know them -- they control output format and safety.\n\n| Flag | Short | Purpose | When to Use |\n|------|-------|---------|-------------|\n| `--json` | `-j` | JSON output to stdout | **Always for agent use** -- structured, parseable |\n| `--plain` | `-p` | TSV output (no colors) | When piping to awk/cut |\n| `--results-only` | | Drop envelope (nextPageToken etc.) | Cleaner JSON for single-page results |\n| `--select=FIELDS` | | Pick only needed fields (dot paths) | Reduce token cost on large responses |\n| `--account=EMAIL` | `-a` | Target specific account | Multi-account setups |\n| `--dry-run` | `-n` | Preview without executing | **Always before destructive ops** |\n| `--force` | `-y` | Skip confirmations | Non-interactive pipelines |\n| `--no-input` | | Fail instead of prompting | Agent automation (never interactive) |\n| `--verbose` | `-v` | Debug logging | Troubleshooting |\n\n**Agent-critical pattern:** use `--json --no-input` for automation. JSON keeps automation deterministic. `--no-input` prevents prompt hangs.\n\n## Services Overview\n\n| Service | Command | Aliases | Key Operations |\n|---------|---------|---------|----------------|\n| Gmail | `gog gmail` | `mail`, `email` | search, get, send, thread, labels, drafts, batch |\n| Calendar | `gog calendar` | `cal` | events, create, search, conflicts, freebusy |\n| Drive | `gog drive` | `drv` | ls, search, upload, download, share, mkdir |\n| Docs | `gog docs` | `doc` | create, cat, write, insert, find-replace |\n| Slides | `gog slides` | `slide` | create, create-from-markdown, export, read-slide |\n| Sheets | `gog sheets` | `sheet` | get, update, append, clear, format, metadata |\n| Contacts | `gog contacts` | `contact` | search, list, create, update |\n| Tasks | `gog tasks` | `task` | lists, list, add, done, update |\n| Chat | `gog chat` | | spaces, messages, threads, dm |\n| People | `gog people` | `person` | me, search, get, relations |\n| Forms | `gog forms` | `form` | get, create, responses |\n| Groups | `gog groups` | `group` | list, members |\n| Classroom | `gog classroom` | `class` | courses, students, coursework, submissions |\n| Apps Script | `gog appscript` | `script` | get, content, run, create |\n| Keep | `gog keep` | | list, get, search (Workspace only) |\n\n**Top-level shortcuts** (save keystrokes):\n\n| Shortcut | Expands To |\n|----------|------------|\n| `gog send` | `gog gmail send` |\n| `gog ls` | `gog drive ls` |\n| `gog search` | `gog drive search` |\n| `gog download` | `gog drive download` |\n| `gog upload` | `gog drive upload` |\n| `gog login` | `gog auth add` |\n| `gog logout` | `gog auth remove` |\n| `gog status` | `gog auth status` |\n| `gog me` / `gog whoami` | `gog people me` |\n\n## 10x Workflows\n\nThese are the highest-leverage patterns. Use these before inventing new scripts.\n\n### 1. Read and Summarize Recent Emails\n\n```bash\n# Get last 5 unread emails with full content\ngog gmail search \"is:unread\" --max 5 --json | jq '.[].messages[0] | {subject: .subject, from: .from, snippet: .snippet}'\n\n# Get a specific thread with all messages\ngog gmail thread get THREAD_ID --json\n```\n\n### 2. Send Email (with Safety)\n\n```bash\n# Preview first (dry-run)\ngog send --to \"person@example.com\" --subject \"Meeting notes\" --body \"Here are the notes...\" --dry-run\n\n# Then send\ngog send --to \"person@example.com\" --subject \"Meeting notes\" --body \"Here are the notes...\" --no-input\n```\n\n### 3. Today's Calendar at a Glance\n\n```bash\n# Today's events across all calendars\ngog cal events --today --all --json\n\n# This week\ngog cal events --week --json\n\n# Next 3 days\ngog cal events --days 3 --json\n```\n\n### 4. Create Calendar Event from Natural Language\n\n```bash\n# The agent translates natural language to RFC3339 times\ngog cal create primary \\\n  --summary \"Team standup\" \\\n  --from \"2026-02-18T09:00:00+00:00\" \\\n  --to \"2026-02-18T09:30:00+00:00\" \\\n  --description \"Daily sync\" \\\n  --with-meet \\\n  --json\n```\n\n### 5. Search Drive and Get Links\n\n```bash\n# Full-text search\ngog search \"quarterly report\" --max 5 --json | jq '.[].webViewLink'\n\n# List files in a folder\ngog ls --parent FOLDER_ID --json\n```\n\n### 6. Create a Google Doc from Markdown\n\n```bash\n# Create doc with markdown content\ngog docs create \"Meeting Notes 2026-02-17\" --file notes.md --json\n\n# Or write markdown to existing doc\ngog docs write DOC_ID --file notes.md --replace --markdown\n```\n\n### 7. Read a Google Doc as Plain Text\n\n```bash\n# Dump doc as text (great for agent consumption)\ngog docs cat DOC_ID\n\n# Read specific tab\ngog docs cat DOC_ID --tab \"Notes\"\n\n# All tabs\ngog docs cat DOC_ID --all-tabs\n```\n\n### 8. Create Slides from Markdown\n\n```bash\n# One command: markdown -> Google Slides\ngog slides create-from-markdown \"Q1 Review\" --content-file presentation.md --json\n```\n\n### 9. Spreadsheet Operations\n\n```bash\n# Read a range\ngog sheets get SHEET_ID \"Sheet1!A1:D10\" --json\n\n# Append a row\ngog sheets append SHEET_ID \"Sheet1!A:D\" \"value1\" \"value2\" \"value3\" \"value4\"\n\n# Update specific cells\ngog sheets update SHEET_ID \"Sheet1!B2\" \"new value\"\n```\n\n### 10. Multi-Service Pipeline\n\n```bash\n# Find a doc, read it, email a summary\nDOC_ID=$(gog search \"project brief\" --max 1 --json | jq -r '.[0].id')\nCONTENT=$(gog docs cat \"$DOC_ID\")\ngog send --to \"team@example.com\" --subject \"Project Brief Summary\" --body \"$CONTENT\" --no-input\n```\n\n## Output Modes\n\n`gog` supports three output modes. Choose based on consumer.\n\n| Mode | Flag | Best For |\n|------|------|----------|\n| Human | (default) | Terminal, interactive use, colored tables |\n| JSON | `--json` | Automation, scripting, `jq` pipelines |\n| TSV | `--plain` | `awk`, `cut`, spreadsheet import |\n\nFor automation: **always `--json`**. Add `--results-only` to trim envelopes.\n\n**Field selection** reduces token use:\n```bash\n# Only get subject and date from emails\ngog gmail search \"is:unread\" --json --select \"subject,date,from\"\n```\n\n## Exit Codes\n\nStable exit codes for automation.\n\n| Code | Name | Meaning |\n|------|------|---------|\n| 0 | ok | Success |\n| 1 | error | General error |\n| 2 | usage | Invalid arguments / bad syntax |\n| 3 | empty_results | No results found (use with `--fail-empty`) |\n| 4 | auth_required | OAuth token missing or expired |\n| 5 | not_found | Resource not found |\n| 6 | permission_denied | Insufficient permissions |\n| 7 | rate_limited | Google API rate limit hit |\n| 8 | retryable | Transient error, retry is safe |\n| 10 | config | Configuration problem |\n| 130 | cancelled | User cancelled (Ctrl-C) |\n\n**Agent error handling pattern:**\n```bash\ngog gmail search \"is:unread\" --json --fail-empty\nEXIT=$?\nif [ $EXIT -eq 3 ]; then echo \"No unread emails\"; fi\nif [ $EXIT -eq 4 ]; then echo \"Auth expired -- run: gog login EMAIL\"; fi\nif [ $EXIT -eq 7 ]; then sleep 5 && retry; fi\n```\n\n## Multi-Account\n\n`gog` supports multiple Google accounts. Use `-a EMAIL` to target a specific account.\n\n```bash\n# List authenticated accounts\ngog auth list\n\n# Target specific account\ngog gmail search \"is:unread\" -a work@company.com --json\ngog cal events --today -a personal@gmail.com --json\n\n# Set default account\ngog config set default_account work@company.com\n```\n\n## Common Gotchas\n\n| Issue | Cause | Fix |\n|-------|-------|-----|\n| `auth_required` (exit 4) | Token expired or missing | Run `gog login EMAIL --services all` |\n| `config` (exit 10) | No OAuth credentials JSON | Download from Google Cloud Console, run `gog auth credentials set FILE.json` |\n| Gmail search returns threads, not messages | Gmail groups by thread by default | Use `gog gmail get MSG_ID` for individual messages |\n| Calendar times wrong | Missing timezone in RFC3339 | Include timezone offset, e.g. `2026-02-18T09:00:00+00:00` |\n| `rate_limited` (exit 7) | Too many API calls | Wait and retry. Use `--max` to limit results per call. |\n| Docs markdown not rendering | Missing `--markdown` flag | Use `gog docs write DOC_ID --replace --markdown` |\n| `--select` returns empty | Field path wrong | Run once with `--json` first to inspect schema |\n| Slides from markdown: empty | Missing `--content` or `--content-file` | Provide content inline or via file |\n\n## Error Handling\n\n| Symptom | Exit code / signal | Recovery |\n|---------|---------------------|----------|\n| No results when data is expected | `3` (`empty_results`) | Re-run without `--fail-empty` to inspect envelope; broaden query or change filters |\n| OAuth expired or missing | `4` (`auth_required`) | Run `gog login EMAIL --services all`, then `gog auth status` |\n| API permission denied | `6` (`permission_denied`) | Re-auth with the needed scopes and verify API is enabled in Google Cloud |\n| Rate limit hit | `7` (`rate_limited`) | Back off (`sleep`), reduce `--max`, retry with jitter |\n| Transient backend error | `8` (`retryable`) | Retry with exponential backoff; keep idempotent operations safe |\n| Invalid command/flags | `2` (`usage`) | Re-check command syntax in `references/gog-commands.md` |\n\n## Anti-Patterns\n\n| Do Not | Do Instead |\n|--------|------------|\n| Use `gog` without `--json` in automation | Always use `--json --no-input` |\n| Send email without `--dry-run` first | Preview with `--dry-run`, then send |\n| Fetch all pages of large results | Use `--max N`; paginating blindly wastes tokens |\n| Hardcode account email in scripts | Use `-a EMAIL` or `default_account` config |\n| Use `gog` for non-Google services | Use the right tool for the job |\n| Skip `--no-input` in automation | Scripts cannot answer prompts |\n| Use `--force` on delete without `--dry-run` | Always preview destructive operations |\n| Ignore exit codes | Handle them explicitly (see table above) |\n\n## Sandboxed / CI Environments\n\n`gog` makes HTTPS calls to Google APIs. In sandboxed or CI environments, ensure network access is available.\n\n| Operation Type | Sandbox Requirements |\n|---------------|---------------------|\n| Read-only (search, list, get) | Read-only sandbox + network access |\n| Write operations (send, create, modify) | Write sandbox + network access |\n| Complex pipelines with local file I/O | Full access (write + network) |\n\nIf your sandbox blocks outbound HTTPS, `gog` commands will fail with network errors. Ensure your environment allows connections to `*.googleapis.com`.\n\n## Bundled Resources Index\n\n| Path | What | When to Load |\n|------|------|-------------|\n| `./UPDATES.md` | Structured changelog for AI agents | When checking for new features or updates |\n| `./UPDATE-GUIDE.md` | Instructions for AI agents performing updates | When updating this skill |\n| `./references/installation-guide.md` | Detailed install walkthrough for Claude Code and Codex CLI | First-time setup or environment repair |\n| `./references/gog-commands.md` | Full command reference for all 15 services | Need exact command syntax and flags |\n| `./references/pipeline-patterns.md` | Composable patterns: `gog` + jq + multi-service workflows | Building complex automation |\n| `./references/auth-setup.md` | OAuth setup, credentials, token handling, multi-account, headed + headless auth | First-time setup or auth troubleshooting |","tags":["google","workspace","ops","fieldwork","skills","buildoak","agent-skills","ai-agents","ai-tools","automation","browser-automation","claude-code"],"capabilities":["skill","source-buildoak","skill-google-workspace-ops","topic-agent-skills","topic-ai-agents","topic-ai-tools","topic-automation","topic-browser-automation","topic-claude-code","topic-claude-skills","topic-codex"],"categories":["fieldwork-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/buildoak/fieldwork-skills/google-workspace-ops","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add buildoak/fieldwork-skills","source_repo":"https://github.com/buildoak/fieldwork-skills","install_from":"skills.sh"}},"qualityScore":"0.457","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 15 github stars · SKILL.md body (15,156 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T19:06:32.824Z","embedding":null,"createdAt":"2026-04-18T23:07:13.170Z","updatedAt":"2026-04-22T19:06:32.824Z","lastSeenAt":"2026-04-22T19:06:32.824Z","tsv":"'+00':123,1083,1092,1645 '-02':118,1078,1087,1151,1640 '-17':1152 '-18':119,1079,1088,1641 '/references/auth-setup.md':2070 '/references/gog-commands.md':2044 '/references/installation-guide.md':2027 '/references/pipeline-patterns.md':2058 '/update-guide.md':2016 '/updates.md':2003 '/vault':208 '0':953,1305,1404 '00':121,122,124,1081,1082,1084,1091,1093,1643,1644,1646 '1':928,1301,1407 '10':1280,1462,1591 '10x':913 '130':1466 '15':2050 '2':974,1411,1808 '2026':117,1077,1086,1150,1639 '3':1017,1045,1051,1417,1491,1723 '30':1090 '4':1053,1428,1501,1578,1745 '5':309,937,949,1101,1117,1436,1517 '6':1132,1442,1761 '7':1171,1447,1514,1650,1782 '8':1213,1455,1796 '9':18,1237 'a1':1250 'accept':582 'access':88,1937,1955,1964,1972 'account':564,649,654,657,1522,1527,1535,1539,1545,1563,1568,1864,1873,2078 'across':1028 'action':537 'ad':69 'add':801,895,1364 'agent':240,245,265,607,685,695,1062,1186,1473,2008,2020 'agent-crit':694 'agents.md':158 'ai':239,2007,2019 'alias':719 'all-tab':1210 'allow':1991 'alway':605,666,1362,1830,1907 'answer':1897 'anti':1818 'anti-pattern':1817 'api':114,1451,1653,1758,1773,1929 'app':840 'append':149,417,783,1253,1258 'appli':269 'approv':344,450,459,550 'appscript':843 'argument':1414 'ask':342,492,506,518 'auth':301,894,899,904,1429,1504,1541,1575,1603,1746,1756,1766,2081,2087 'authent':1538 'autom':8,30,59,329,555,686,704,707,1350,1361,1400,1829,1894,2069 'autonom':465 'avail':1939 'avoid':61 'awk':1356 'awk/cut':620 'b2':1277 'back':1785 'backend':1794 'backoff':1801 'bad':1415 'base':187,1334 'baselin':326 'bash':126,299,934,979,1024,1060,1107,1139,1179,1218,1240,1285,1376,1477,1536 'batch':733 'best':1339 'blind':1860 'block':1978 'bodi':992,1009,1321 'brew':127,130 'brief':1299,1319 'broaden':1736 'build':2067 'bundl':1995 'c':1472 'cal':737,1032,1040,1048,1070,1555 'calendar':12,47,371,378,474,487,734,736,1020,1030,1055,1628 'call':1654,1664,1926 'cancel':1467,1469 'cannot':1896 'cat':477,758,1190,1198,1207,1310 'caus':1573 'cell':415,1270 'chang':260,272,538,1739 'changelog':234,2005 'chat':804,806 'check':246,1812,2010 'choos':1333 'ci':1921,1933 'class':835 'classroom':832,834 'claud':139,2032 'claude/skills/google-workspace-ops':146 'cleaner':628 'clear':784 'cli':7,37,87,148,2036 'cloud':95,1599,1778 'code':140,1395,1398,1401,1714,1913,2033 'codex':147,2035 'color':616,1346 'command':578,581,718,1220,1813,1982,2046,2054 'command/flags':1807 'common':1570 'complex':1965,2068 'compos':25,2059 'config':1463,1565,1589,1874 'configur':1464 'confirm':571,673 'conflict':374,741 'connect':1992 'consol':1600 'consum':1336 'consumpt':1187 'contact':424,430,503,787,789,790 'content':152,846,942,1144,1233,1307,1322,1699,1702,1705 'content-fil':1232,1701 'control':588 'copi':141 'cost':645 'cours':836 'coursework':838 'creat':99,373,393,404,482,486,488,524,739,757,768,770,793,824,848,1054,1071,1133,1140,1147,1214,1227,1959 'create-from-markdown':769,1226 'credenti':104,172,213,1594,1604,2073 'credential-manag':212 'critic':696 'ctrl':1471 'ctrl-c':1470 'custom':220,278 'cut':1357 'd':1263 'd10':1251 'daili':1095 'data':1720 'date':108,1381,1392 'date-tim':107 'day':1046,1050 'debug':691 'decis':345 'default':1342,1562,1567,1618,1872 'deleg':81 'delet':509,516,1902 'deni':1444,1760,1763 'descript':1094 'desktop':192 'destruct':668,1909 'detail':2028 'determinist':708 'dif':282 'directori':425 'dm':810 'doc':14,397,400,476,485,501,753,755,756,1136,1141,1146,1161,1163,1165,1175,1181,1189,1191,1197,1199,1206,1208,1288,1294,1309,1311,1665,1674,1676 'document':391 'done':802 'dot':641 'download':384,750,882,885,1596 'draft':365,521,523,526,732 'dri':338,660,983,998,1840,1846,1905 'drive':13,388,472,489,513,743,745,874,879,884,889,1103 'drive/docs/sheets':50 'drop':624 'drv':746 'dry-run':337,659,982,997,1839,1845,1904 'dump':1180 'e.g':1638 'echo':1493,1503 'edit':392 'email':45,136,360,650,726,933,939,976,1291,1383,1496,1509,1530,1586,1751,1837,1865,1870 'empti':1418,1427,1486,1682,1697,1724,1732 'enabl':1775 'end':296,298 'end-to-end':295 'ensur':1935,1988 'entri':447 'envelop':625,1370,1735 'environ':190,1922,1934,1990,2042 'eq':1490,1500,1513 'error':1408,1410,1458,1474,1710,1795,1987 'etc':627 'event':372,738,1027,1033,1041,1049,1056,1556 'everi':579 'exact':2053 'exampl':116,464 'execut':461,665 'exist':1160 'exit':1394,1397,1487,1489,1499,1512,1577,1590,1649,1713,1912 'expand':864 'expect':1722 'expir':1435,1505,1580,1742 'explicit':457,570,1916 'exponenti':1800 'export':225,407,773 'fail':681,1426,1485,1731,1984 'fail-empti':1425,1484,1730 'featur':258,2013 'fetch':1850 'fi':1497,1510,1519 'field':636,640,1371,1683 'file':77,186,280,381,1122,1153,1167,1234,1703,1709,1969 'file-bas':185 'file.json':1606 'filter':1740 'find':762,1286 'find-replac':761 'first':23,340,494,508,520,551,981,1690,1842,2038,2083 'first-tim':2037,2082 'fix':1574 'flag':576,584,593,1338,1671,2057 'flow':83,294 'folder':144,1125,1129 'follow':275 'forc':670,1900 'form':819,821,822 'format':110,590,785 'found':1422,1438,1441 'freebusi':375,742 'freeli':480 'full':161,941,1109,1971,2045 'full-text':1108 'gcp':93 'general':1409 'get':317,549,728,781,817,823,845,853,935,960,970,1105,1246,1378,1622,1949 'glanc':1023 'global':575 'gmail':11,293,304,315,368,469,483,497,511,522,722,724,869,944,968,1385,1479,1547,1607,1613,1621 'gog':36,133,174,181,300,303,314,350,367,377,387,399,409,419,429,431,433,443,580,723,735,744,754,765,778,788,796,805,812,820,827,833,842,850,866,868,871,873,876,878,881,883,886,888,891,893,896,898,901,903,906,908,910,943,967,985,1002,1031,1039,1047,1069,1112,1126,1145,1162,1188,1196,1205,1224,1244,1256,1271,1296,1308,1313,1328,1384,1478,1507,1523,1540,1546,1554,1564,1584,1602,1620,1673,1749,1755,1825,1876,1923,1981,2061 'gogc':10,132 'googl':2,5,27,31,66,79,94,113,251,356,396,441,1135,1174,1222,1450,1526,1598,1777,1880,1928 'google-workspace-op':1,250 'googleapis.com':1994 'gotcha':1571 'grant':86 'great':1184 'group':826,828,829,1614 'handl':1475,1711,1914,2075 'hang':714 'hard':546 'hardcod':1863 'head':2079 'headless':2080 'headless/ssh':189 'highest':919 'highest-leverag':918 'hit':1454,1781 'hoc':70 'https':1925,1980 'human':1341 'i/o':1970 'id':319,566,972,1130,1166,1192,1200,1209,1248,1260,1275,1295,1306,1312,1624,1677 'idempot':1803 'ignor':1911 'import':1359 'includ':218,1635 'index':1997 'individu':1626 'inlin':1706 'input':313,323,334,680,702,711,1016,1325,1835,1892 'insert':760 'inspect':1692,1734 'instal':131,162,242,2029 'instead':682,1823 'instruct':2017 'insuffici':1445 'intent':560 'interact':354,676,688,1344 'invalid':1413,1806 'invent':925 'issu':1572 'j':600 'jitter':1792 'job':1888 'jq':951,1119,1303,1352,2062 'json':22,42,310,320,331,599,601,629,699,705,950,973,1036,1043,1052,1100,1118,1131,1155,1236,1252,1302,1348,1349,1363,1389,1483,1553,1560,1595,1689,1827,1832 'json-first':21 'keep':706,849,851,1802 'key':720 'keychain':198 'keyr':175,188 'keystrok':862 'know':585 'label':364,731 'languag':1059,1065 'larg':647,1854 'last':936 'latest':271 'level':859 'leverag':920 'limit':1449,1453,1648,1661,1780,1784 'link':1106 'list':467,471,475,792,799,800,830,852,1121,1537,1542,1948 'load':2002 'local':279,1968 'log':692 'login':134,892,1508,1585,1750 'login/authorization':82 'logout':897 'ls':473,747,872,875,1127 'machin':40 'machine-pars':39 'mail':725 'make':1924 'manag':173,202,214,222 'mani':1652 'markdown':406,772,1138,1143,1158,1170,1217,1221,1229,1666,1670,1679,1696 'max':308,948,1116,1300,1659,1789,1857 'mean':1403 'meet':990,1007,1099,1148 'member':831 'messag':470,808,952,966,1612,1627 'metadata':786 'miss':1433,1582,1631,1669,1698,1744 'mkdir':752 'mode':1327,1332,1337 'modifi':454,495,498,1960 'msg':1623 'multi':656,1282,1521,2064,2077 'multi-account':655,1520,2076 'multi-servic':1281,2063 'multipl':1525 'n':662,1858 'name':1402 'natur':1058,1064 'need':56,352,639,1769,2052 'network':1936,1954,1963,1974,1986 'never':687 'new':257,926,1278,2012 'next':1044 'nextpagetoken':626 'no-input':311,321,332,678,700,709,1014,1323,1833,1890 'non':65,675,1879 'non-googl':64,1878 'non-interact':674 'note':991,996,1008,1013,1149,1202 'notes.md':1154,1168 'oauth':78,103,165,1431,1593,1741,2071 'offset':1637 'ok':1405 'okay':554 'one':289,1219 'op':4,29,253,669 'oper':48,182,455,462,574,721,1239,1804,1910,1940,1957 'opt':194 'option':217 'other':543 'outbound':1979 'output':24,43,589,602,614,1326,1331 'overview':716 'overwrit':285 'p':612 'page':633,1852 'pagin':1859 'parent':1128 'parseabl':41,610 'password':92,176 'path':642,1684,1998 'pattern':327,697,921,1476,1819,2060 'peopl':423,434,811,813,911 'per':1663 'perform':2021 'permiss':1443,1446,1759,1762 'person':814 'person@example.com':988,1005 'personal@gmail.com':1559 'pick':637 'pipe':618 'pipelin':26,677,1284,1353,1966 'plain':224,611,1177,1355 'platform':96 'point':448 'prerequisit':164 'present':403,559 'presentation.md':1235 'prevent':712 'preview':663,980,1843,1908 'primari':1072 'problem':1465 'project':101,155,1298,1318 'prompt':684,713,1898 'provid':1704 'purpos':595 'q1':1230 'quarter':1114 'queri':1737 'quick':286 'r':1304 'rang':1243 'rate':1448,1452,1647,1779,1783 're':1727,1765,1811 're-auth':1764 're-check':1810 're-run':1726 'read':266,291,361,394,414,466,552,775,929,1172,1193,1241,1289,1945,1951 'read-on':290,1944,1950 'read-slid':774 'read/list/search':330 'recent':932 'recipi':561 'recommend':201 'recoveri':1716 'reduc':643,1373,1788 'refer':2047 'references/auth-setup.md':210,211 'references/gog-commands.md':1816 'references/installation-guide.md':170,171 'relat':818 'remov':900 'render':1668 'repair':2043 'repeat':57 'replac':763,1169,1678 'report':1115 'requir':178,456,1430,1576,1747,1943 'resourc':1439,1996 'respons':648,825 'result':622,634,1366,1419,1421,1662,1718,1725,1855 'results-on':621,1365 'retri':1459,1518,1657,1790,1798 'retryabl':1456,1797 'return':1609,1681 'review':1231 'rfc3339':105,1067,1634 'right':446,1884 'root':157 'row':1255 'rule':435,451,532 'run':288,336,339,479,661,847,984,999,1506,1583,1601,1686,1728,1748,1841,1847,1906 'safe':528,1461,1805 'safeti':592,978 'sandbox':1920,1931,1942,1953,1962,1977 'save':861 'schema':1693 'scope':1770 'script':557,841,844,927,1351,1867,1895 'search':305,362,382,426,468,727,740,748,791,816,854,877,880,945,1102,1111,1113,1297,1386,1480,1548,1608,1947 'secret':221 'secur':449 'see':169,209,1917 'select':635,1372,1390,1680 'send':363,481,484,729,867,870,975,986,1001,1003,1314,1836,1849,1958 'send/create/modify/delete':335 'send/modify/delete':573 'sent':530 'servic':20,67,137,715,717,1283,1587,1752,1881,2051,2065 'set':1561,1566,1605 'setup':125,166,658,2040,2072,2085 'share':90,385,751 'sheet':16,420,499,777,779,780,1245,1247,1257,1259,1272,1274 'sheet1':1249,1261,1276 'ship':230 'short':594 'shortcut':860,863 'signal':1715 'simpl':534 'singl':632 'single-pag':631 'skill':143,207,229,254,2026 'skill-google-workspace-ops' 'skill.md':151 'skip':672,1889 'sleep':1516,1787 'slide':15,410,764,766,767,776,1215,1223,1225,1694 'snippet':958,959 'source-buildoak' 'space':807 'specif':653,962,1194,1269,1534,1544 'spreadsheet':413,1238,1358 'stabl':1396 'standard':106 'standup':1075 'start':287 'state':453,540 'state-modifi':452 'status':302,902,905,1757 'stay':226 'stdout':604 'steipete/tap':129 'strong':200 'structur':609,2004 'student':837 'subject':562,954,955,989,1006,1317,1379,1391 'submiss':839 'success':1406 'summar':931 'summari':563,1073,1293,1320 'support':1329,1524 'symptom':1712 'sync':1096 'syntax':1416,1814,2055 'system':197 't09':120,1080,1089,1642 'tab':1195,1201,1204,1212 'tabl':1347,1918 'tap':128 'target':565,652,1532,1543 'task':427,432,515,795,797,798 'team':1074 'team@example.com':1316 'tell':243,263 'termin':1343 'terminolog':73 'text':351,1110,1178,1183 'thread':316,318,730,809,963,969,971,1610,1616 'three':1330 'thumb':437 'time':109,1068,1629,2039,2084 'timezon':1632,1636 'today':1018,1025,1034,1557 'token':644,1374,1432,1579,1862,2074 'tool':1885 'top':858 'top-level':857 'topic-agent-skills' 'topic-ai-agents' 'topic-ai-tools' 'topic-automation' 'topic-browser-automation' 'topic-claude-code' 'topic-claude-skills' 'topic-codex' 'touch':440 'transient':1457,1793 'translat':1063 'trash':510,512,514 'tree':346 'trim':1369 'troubleshoot':168,693,2088 'tsv':613,1354 'type':463,1941 'ui':71 'undo':548 'unread':307,938,947,1388,1482,1495,1550 'updat':227,262,416,496,500,504,782,794,803,1268,1273,2015,2022,2024 'update-guide.md':236,267,276 'updates.md':233,247,274 'upload':383,490,749,887,890 'usag':1412,1809 'use':34,52,74,84,111,183,324,349,598,608,698,922,1345,1375,1423,1528,1619,1658,1672,1824,1831,1856,1868,1875,1882,1899 'user':343,458,493,507,519,1468 'v':690 'valu':1279 'value1':1264 'value2':1265 'value3':1266 'value4':1267 'vault':206,219 'verbos':689 'verif':167 'verifi':1772 'via':9,204,1708 'visibl':541 'wait':568,1655 'walkthrough':163,2030 'wast':1861 'webviewlink':1120 'week':1038,1042 'whoami':909 'with-meet':1097 'without':89,664,1729,1826,1838,1903 'work':33 'work@company.com':1552,1569 'workflow':51,72,914,2066 'workspac':3,6,28,32,58,252,357,442,539,855 'write':395,502,759,1157,1164,1675,1956,1961,1973 'wrong':1630,1685 'y':671 'yes':366,376,386,398,408,418,428,478,525","prices":[{"id":"203d1c0c-5da4-4daf-a1b7-1a0c444338ba","listingId":"3fa07baa-ae59-47e3-a35b-55e3d8634c47","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"buildoak","category":"fieldwork-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T23:07:13.170Z"}],"sources":[{"listingId":"3fa07baa-ae59-47e3-a35b-55e3d8634c47","source":"github","sourceId":"buildoak/fieldwork-skills/google-workspace-ops","sourceUrl":"https://github.com/buildoak/fieldwork-skills/tree/main/skills/google-workspace-ops","isPrimary":false,"firstSeenAt":"2026-04-18T23:07:13.170Z","lastSeenAt":"2026-04-22T19:06:32.824Z"}],"details":{"listingId":"3fa07baa-ae59-47e3-a35b-55e3d8634c47","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"buildoak","slug":"google-workspace-ops","github":{"repo":"buildoak/fieldwork-skills","stars":15,"topics":["agent-skills","ai-agents","ai-tools","automation","browser-automation","claude-code","claude-skills","codex"],"license":"apache-2.0","html_url":"https://github.com/buildoak/fieldwork-skills","pushed_at":"2026-03-18T08:36:25Z","description":"Battle-tested skills for AI agents that do real work","skill_md_sha":"42ac40327e37c13fd3282a60e0d6f9decb414cc3","skill_md_path":"skills/google-workspace-ops/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/buildoak/fieldwork-skills/tree/main/skills/google-workspace-ops"},"layout":"multi","source":"github","category":"fieldwork-skills","frontmatter":{"name":"google-workspace-ops","description":"Google Workspace CLI automation via gogcli. Gmail, Calendar, Drive, Docs, Slides, Sheets, and 9 more services. JSON-first output, composable pipelines."},"skills_sh_url":"https://skills.sh/buildoak/fieldwork-skills/google-workspace-ops"},"updatedAt":"2026-04-22T19:06:32.824Z"}}