co-google · git:20260905.b4b0024 · 2026-09-05 · sha256 5e83e78cee4b3647
co-google git:20260905.b4b0024A
Immutable. This exact content is served forever at /api/v1/blob/5e83e78cee4b3647.
--- name: co-google description: Route Google account work to Gmail, Drive, Calendar, and YouTube CLI commands using one locally saved login. --- # Google tools | Task | Command family | |---|---| | Mail and drafts | `co gmail --help` (see co-mail-and-drive skill) | | Files and exports | `co gdrive --help` (see co-mail-and-drive skill) | | Events and Meet links | `co gcalendar --help` | | Channels and videos | `co youtube --help` | Connect with `co auth google`. Default requests Gmail send/read/modify, Calendar, Drive and YouTube management, plus email/profile identity. It does not grant every Google API. Google shows the actual consent screen; declined capabilities are not invented. Tokens and actual scopes are saved on this computer, not in a remote credential table. Restricted example: `co auth google --scopes youtube.readonly`. ## Calendar `co gcalendar list` prints event IDs, not reusable row numbers. ```bash co gcalendar today co gcalendar read EVENT_ID co gcalendar meetings --days 7 co gcalendar free 2026-09-07 --minutes 30 co gcalendar create "Review" "2026-09-07T10:00:00+10:00" "2026-09-07T11:00:00+10:00" co gcalendar meet "Review" "2026-09-07T10:00:00Z" "2026-09-07T11:00:00Z" --attendees a@example.com co gcalendar update EVENT_ID --title "New title" co gcalendar delete EVENT_ID ``` Mutations above preview locally. Review the exact arguments, then add `--yes` only with user approval. Primary calendar only. Naive timestamps mean UTC; free slots use 09:00–17:00 UTC and do not check attendees' calendars. Empty update fields do not clear existing fields. A transport failure may have completed a write: inspect the listing before retrying. ## YouTube ```bash co youtube channel co youtube list --last 10 co youtube video 1 co youtube put clip.mp4 --title "Demo" --channel UC_CHANNEL_ID co youtube update VIDEO_ID --title "New title" ``` Numbers belong to the most recent nonempty YouTube listing; prefer stable IDs for writes. `put` and `update` preview by default; `--confirm DIGEST` executes one specific preview. Never fabricate a digest or retry an uncertain write. Upload preview is local, not proof of API approval, quota, or valid media. YouTube's API must be enabled; unaudited projects may be restricted to private uploads. `video` reads metadata, not video bytes. Every `--json` response includes `ok` and `next_command`; inspect them. ## Errors and recovery | Exit | Meaning | Next command | |---|---|---| | 0 | Read succeeded, local preview, or confirmed write returned | Follow the printed `next_command` / `Next:` command | | 1 | Authorization, provider or local I/O failure | `co auth google` for authorization; otherwise `co gcalendar list` or `co youtube list` before retrying | | 2 | Invalid command arguments | `co gcalendar --help` or `co youtube --help` | This skill documents branch behavior, not a claim that 1.8.3 is already published.