[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-openclaw-openclaw-skills-gog":3},{"error":4,"detail":5,"metadata":23,"markdownContent":25,"rawMarkdown":20},false,{"repo_full_name":6,"owner":7,"repo_name":7,"repo_forks":8,"skill_path":9,"repo_stars":10,"name":11,"category_id":12,"description":13,"file_tree":14,"skill_md_content":20,"skill_id":21,"skill_key":22},"openclaw/openclaw","openclaw",64359,"skills/gog",330752,"gog",13,"Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.",[15],{"name":16,"path":17,"size":18,"type":19},"SKILL.md","skills/gog/SKILL.md",4572,"file","---\nname: gog\ndescription: Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.\nhomepage: https://gogcli.sh\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"🎮\",\n        \"requires\": { \"bins\": [\"gog\"] },\n        \"install\":\n          [\n            {\n              \"id\": \"brew\",\n              \"kind\": \"brew\",\n              \"formula\": \"steipete/tap/gogcli\",\n              \"bins\": [\"gog\"],\n              \"label\": \"Install gog (brew)\",\n            },\n          ],\n      },\n  }\n---\n\n# gog\n\nUse `gog` for Gmail/Calendar/Drive/Contacts/Sheets/Docs. Requires OAuth setup.\n\nSetup (once)\n\n- `gog auth credentials /path/to/client_secret.json`\n- `gog auth add you@gmail.com --services gmail,calendar,drive,contacts,docs,sheets`\n- `gog auth list`\n\nCommon commands\n\n- Gmail search: `gog gmail search 'newer_than:7d' --max 10`\n- Gmail messages search (per email, ignores threading): `gog gmail messages search \"in:inbox from:ryanair.com\" --max 20 --account you@example.com`\n- Gmail send (plain): `gog gmail send --to a@b.com --subject \"Hi\" --body \"Hello\"`\n- Gmail send (multi-line): `gog gmail send --to a@b.com --subject \"Hi\" --body-file ./message.txt`\n- Gmail send (stdin): `gog gmail send --to a@b.com --subject \"Hi\" --body-file -`\n- Gmail send (HTML): `gog gmail send --to a@b.com --subject \"Hi\" --body-html \"\u003Cp>Hello\u003C/p>\"`\n- Gmail draft: `gog gmail drafts create --to a@b.com --subject \"Hi\" --body-file ./message.txt`\n- Gmail send draft: `gog gmail drafts send \u003CdraftId>`\n- Gmail reply: `gog gmail send --to a@b.com --subject \"Re: Hi\" --body \"Reply\" --reply-to-message-id \u003CmsgId>`\n- Calendar list events: `gog calendar events \u003CcalendarId> --from \u003Ciso> --to \u003Ciso>`\n- Calendar create event: `gog calendar create \u003CcalendarId> --summary \"Title\" --from \u003Ciso> --to \u003Ciso>`\n- Calendar create with color: `gog calendar create \u003CcalendarId> --summary \"Title\" --from \u003Ciso> --to \u003Ciso> --event-color 7`\n- Calendar update event: `gog calendar update \u003CcalendarId> \u003CeventId> --summary \"New Title\" --event-color 4`\n- Calendar show colors: `gog calendar colors`\n- Drive search: `gog drive search \"query\" --max 10`\n- Contacts: `gog contacts list --max 20`\n- Sheets get: `gog sheets get \u003CsheetId> \"Tab!A1:D10\" --json`\n- Sheets update: `gog sheets update \u003CsheetId> \"Tab!A1:B2\" --values-json '[[\"A\",\"B\"],[\"1\",\"2\"]]' --input USER_ENTERED`\n- Sheets append: `gog sheets append \u003CsheetId> \"Tab!A:C\" --values-json '[[\"x\",\"y\",\"z\"]]' --insert INSERT_ROWS`\n- Sheets clear: `gog sheets clear \u003CsheetId> \"Tab!A2:Z\"`\n- Sheets metadata: `gog sheets metadata \u003CsheetId> --json`\n- Docs export: `gog docs export \u003CdocId> --format txt --out /tmp/doc.txt`\n- Docs cat: `gog docs cat \u003CdocId>`\n\nCalendar Colors\n\n- Use `gog calendar colors` to see all available event colors (IDs 1-11)\n- Add colors to events with `--event-color \u003Cid>` flag\n- Event color IDs (from `gog calendar colors` output):\n  - 1: #a4bdfc\n  - 2: #7ae7bf\n  - 3: #dbadff\n  - 4: #ff887c\n  - 5: #fbd75b\n  - 6: #ffb878\n  - 7: #46d6db\n  - 8: #e1e1e1\n  - 9: #5484ed\n  - 10: #51b749\n  - 11: #dc2127\n\nEmail Formatting\n\n- Prefer plain text. Use `--body-file` for multi-paragraph messages (or `--body-file -` for stdin).\n- Same `--body-file` pattern works for drafts and replies.\n- `--body` does not unescape `\\n`. If you need inline newlines, use a heredoc or `$'Line 1\\n\\nLine 2'`.\n- Use `--body-html` only when you need rich formatting.\n- HTML tags: `\u003Cp>` for paragraphs, `\u003Cbr>` for line breaks, `\u003Cstrong>` for bold, `\u003Cem>` for italic, `\u003Ca href=\"url\">` for links, `\u003Cul>`/`\u003Cli>` for lists.\n- Example (plain text via stdin):\n\n  ```bash\n  gog gmail send --to recipient@example.com \\\n    --subject \"Meeting Follow-up\" \\\n    --body-file - \u003C\u003C'EOF'\n  Hi Name,\n\n  Thanks for meeting today. Next steps:\n  - Item one\n  - Item two\n\n  Best regards,\n  Your Name\n  EOF\n  ```\n\n- Example (HTML list):\n  ```bash\n  gog gmail send --to recipient@example.com \\\n    --subject \"Meeting Follow-up\" \\\n    --body-html \"\u003Cp>Hi Name,\u003C/p>\u003Cp>Thanks for meeting today. Here are the next steps:\u003C/p>\u003Cul>\u003Cli>Item one\u003C/li>\u003Cli>Item two\u003C/li>\u003C/ul>\u003Cp>Best regards,\u003Cbr>Your Name\u003C/p>\"\n  ```\n\nNotes\n\n- Set `GOG_ACCOUNT=you@gmail.com` to avoid repeating `--account`.\n- For scripting, prefer `--json` plus `--no-input`.\n- Sheets values can be passed via `--values-json` (recommended) or as inline rows.\n- Docs supports export/cat/copy. In-place edits require a Docs API client (not in gog).\n- Confirm before sending mail or creating events.\n- `gog gmail search` returns one row per thread; use `gog gmail messages search` when you need every individual email returned separately.\n","9b6ca6aa-a523-53a3-992a-29174f7c45b2","openclaw-openclaw-skills-gog",{"name":11,"description":13,"homepage":24},"https://gogcli.sh","\u003Ch1>gog\u003C/h1>\n\u003Cp>Use \u003Ccode>gog\u003C/code> for Gmail/Calendar/Drive/Contacts/Sheets/Docs. Requires OAuth setup.\u003C/p>\n\u003Cp>Setup (once)\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>gog auth credentials /path/to/client_secret.json\u003C/code>\u003C/li>\n\u003Cli>\u003Ccode>gog auth add you@gmail.com --services gmail,calendar,drive,contacts,docs,sheets\u003C/code>\u003C/li>\n\u003Cli>\u003Ccode>gog auth list\u003C/code>\u003C/li>\n\u003C/ul>\n\u003Cp>Common commands\u003C/p>\n\u003Cul>\n\u003Cli>Gmail search: \u003Ccode>gog gmail search &#39;newer_than:7d&#39; --max 10\u003C/code>\u003C/li>\n\u003Cli>Gmail messages search (per email, ignores threading): \u003Ccode>gog gmail messages search &quot;in:inbox from:ryanair.com&quot; --max 20 --account you@example.com\u003C/code>\u003C/li>\n\u003Cli>Gmail send (plain): \u003Ccode>gog gmail send --to a@b.com --subject &quot;Hi&quot; --body &quot;Hello&quot;\u003C/code>\u003C/li>\n\u003Cli>Gmail send (multi-line): \u003Ccode>gog gmail send --to a@b.com --subject &quot;Hi&quot; --body-file ./message.txt\u003C/code>\u003C/li>\n\u003Cli>Gmail send (stdin): \u003Ccode>gog gmail send --to a@b.com --subject &quot;Hi&quot; --body-file -\u003C/code>\u003C/li>\n\u003Cli>Gmail send (HTML): \u003Ccode>gog gmail send --to a@b.com --subject &quot;Hi&quot; --body-html &quot;&lt;p&gt;Hello&lt;/p&gt;&quot;\u003C/code>\u003C/li>\n\u003Cli>Gmail draft: \u003Ccode>gog gmail drafts create --to a@b.com --subject &quot;Hi&quot; --body-file ./message.txt\u003C/code>\u003C/li>\n\u003Cli>Gmail send draft: \u003Ccode>gog gmail drafts send &lt;draftId&gt;\u003C/code>\u003C/li>\n\u003Cli>Gmail reply: \u003Ccode>gog gmail send --to a@b.com --subject &quot;Re: Hi&quot; --body &quot;Reply&quot; --reply-to-message-id &lt;msgId&gt;\u003C/code>\u003C/li>\n\u003Cli>Calendar list events: \u003Ccode>gog calendar events &lt;calendarId&gt; --from &lt;iso&gt; --to &lt;iso&gt;\u003C/code>\u003C/li>\n\u003Cli>Calendar create event: \u003Ccode>gog calendar create &lt;calendarId&gt; --summary &quot;Title&quot; --from &lt;iso&gt; --to &lt;iso&gt;\u003C/code>\u003C/li>\n\u003Cli>Calendar create with color: \u003Ccode>gog calendar create &lt;calendarId&gt; --summary &quot;Title&quot; --from &lt;iso&gt; --to &lt;iso&gt; --event-color 7\u003C/code>\u003C/li>\n\u003Cli>Calendar update event: \u003Ccode>gog calendar update &lt;calendarId&gt; &lt;eventId&gt; --summary &quot;New Title&quot; --event-color 4\u003C/code>\u003C/li>\n\u003Cli>Calendar show colors: \u003Ccode>gog calendar colors\u003C/code>\u003C/li>\n\u003Cli>Drive search: \u003Ccode>gog drive search &quot;query&quot; --max 10\u003C/code>\u003C/li>\n\u003Cli>Contacts: \u003Ccode>gog contacts list --max 20\u003C/code>\u003C/li>\n\u003Cli>Sheets get: \u003Ccode>gog sheets get &lt;sheetId&gt; &quot;Tab!A1:D10&quot; --json\u003C/code>\u003C/li>\n\u003Cli>Sheets update: \u003Ccode>gog sheets update &lt;sheetId&gt; &quot;Tab!A1:B2&quot; --values-json &#39;[[&quot;A&quot;,&quot;B&quot;],[&quot;1&quot;,&quot;2&quot;]]&#39; --input USER_ENTERED\u003C/code>\u003C/li>\n\u003Cli>Sheets append: \u003Ccode>gog sheets append &lt;sheetId&gt; &quot;Tab!A:C&quot; --values-json &#39;[[&quot;x&quot;,&quot;y&quot;,&quot;z&quot;]]&#39; --insert INSERT_ROWS\u003C/code>\u003C/li>\n\u003Cli>Sheets clear: \u003Ccode>gog sheets clear &lt;sheetId&gt; &quot;Tab!A2:Z&quot;\u003C/code>\u003C/li>\n\u003Cli>Sheets metadata: \u003Ccode>gog sheets metadata &lt;sheetId&gt; --json\u003C/code>\u003C/li>\n\u003Cli>Docs export: \u003Ccode>gog docs export &lt;docId&gt; --format txt --out /tmp/doc.txt\u003C/code>\u003C/li>\n\u003Cli>Docs cat: \u003Ccode>gog docs cat &lt;docId&gt;\u003C/code>\u003C/li>\n\u003C/ul>\n\u003Cp>Calendar Colors\u003C/p>\n\u003Cul>\n\u003Cli>Use \u003Ccode>gog calendar colors\u003C/code> to see all available event colors (IDs 1-11)\u003C/li>\n\u003Cli>Add colors to events with \u003Ccode>--event-color &lt;id&gt;\u003C/code> flag\u003C/li>\n\u003Cli>Event color IDs (from \u003Ccode>gog calendar colors\u003C/code> output):\u003Cul>\n\u003Cli>1: #a4bdfc\u003C/li>\n\u003Cli>2: #7ae7bf\u003C/li>\n\u003Cli>3: #dbadff\u003C/li>\n\u003Cli>4: #ff887c\u003C/li>\n\u003Cli>5: #fbd75b\u003C/li>\n\u003Cli>6: #ffb878\u003C/li>\n\u003Cli>7: #46d6db\u003C/li>\n\u003Cli>8: #e1e1e1\u003C/li>\n\u003Cli>9: #5484ed\u003C/li>\n\u003Cli>10: #51b749\u003C/li>\n\u003Cli>11: #dc2127\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Cp>Email Formatting\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cp>Prefer plain text. Use \u003Ccode>--body-file\u003C/code> for multi-paragraph messages (or \u003Ccode>--body-file -\u003C/code> for stdin).\u003C/p>\n\u003C/li>\n\u003Cli>\u003Cp>Same \u003Ccode>--body-file\u003C/code> pattern works for drafts and replies.\u003C/p>\n\u003C/li>\n\u003Cli>\u003Cp>\u003Ccode>--body\u003C/code> does not unescape \u003Ccode>\\n\u003C/code>. If you need inline newlines, use a heredoc or \u003Ccode>$&#39;Line 1\\n\\nLine 2&#39;\u003C/code>.\u003C/p>\n\u003C/li>\n\u003Cli>\u003Cp>Use \u003Ccode>--body-html\u003C/code> only when you need rich formatting.\u003C/p>\n\u003C/li>\n\u003Cli>\u003Cp>HTML tags: \u003Ccode>&lt;p&gt;\u003C/code> for paragraphs, \u003Ccode>&lt;br&gt;\u003C/code> for line breaks, \u003Ccode>&lt;strong&gt;\u003C/code> for bold, \u003Ccode>&lt;em&gt;\u003C/code> for italic, \u003Ccode>&lt;a href=&quot;url&quot;&gt;\u003C/code> for links, \u003Ccode>&lt;ul&gt;\u003C/code>/\u003Ccode>&lt;li&gt;\u003C/code> for lists.\u003C/p>\n\u003C/li>\n\u003Cli>\u003Cp>Example (plain text via stdin):\u003C/p>\n\u003Cdiv class=\"md-code-block\">\u003Cdiv class=\"md-code-lang\">bash\u003C/div>\u003Cpre>\u003Ccode class=\"hljs language-bash\">gog gmail send --to recipient@example.com \\\n  --subject \u003Cspan class=\"hljs-string\">&quot;Meeting Follow-up&quot;\u003C/span> \\\n  --body-file - &lt;&lt;\u003Cspan class=\"hljs-string\">&#x27;EOF&#x27;\u003C/span>\nHi Name,\n\nThanks \u003Cspan class=\"hljs-keyword\">for\u003C/span> meeting today. Next steps:\n- Item one\n- Item two\n\nBest regards,\nYour Name\nEOF\u003C/code>\u003C/pre>\u003C/div>\u003C/li>\n\u003Cli>\u003Cp>Example (HTML list):\u003C/p>\n\u003Cdiv class=\"md-code-block\">\u003Cdiv class=\"md-code-lang\">bash\u003C/div>\u003Cpre>\u003Ccode class=\"hljs language-bash\">gog gmail send --to recipient@example.com \\\n  --subject \u003Cspan class=\"hljs-string\">&quot;Meeting Follow-up&quot;\u003C/span> \\\n  --body-html \u003Cspan class=\"hljs-string\">&quot;&lt;p&gt;Hi Name,&lt;/p&gt;&lt;p&gt;Thanks for meeting today. Here are the next steps:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Item one&lt;/li&gt;&lt;li&gt;Item two&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Best regards,&lt;br&gt;Your Name&lt;/p&gt;&quot;\u003C/span>\u003C/code>\u003C/pre>\u003C/div>\u003C/li>\n\u003C/ul>\n\u003Cp>Notes\u003C/p>\n\u003Cul>\n\u003Cli>Set \u003Ccode>GOG_ACCOUNT=you@gmail.com\u003C/code> to avoid repeating \u003Ccode>--account\u003C/code>.\u003C/li>\n\u003Cli>For scripting, prefer \u003Ccode>--json\u003C/code> plus \u003Ccode>--no-input\u003C/code>.\u003C/li>\n\u003Cli>Sheets values can be passed via \u003Ccode>--values-json\u003C/code> (recommended) or as inline rows.\u003C/li>\n\u003Cli>Docs supports export/cat/copy. In-place edits require a Docs API client (not in gog).\u003C/li>\n\u003Cli>Confirm before sending mail or creating events.\u003C/li>\n\u003Cli>\u003Ccode>gog gmail search\u003C/code> returns one row per thread; use \u003Ccode>gog gmail messages search\u003C/code> when you need every individual email returned separately.\u003C/li>\n\u003C/ul>\n"]