← ClaudeAtlas

google-taskslisted

Read and manage Google Tasks task lists and individual tasks via the Tasks v1 REST API. Use when the user mentions Google Tasks, todo / pending / overdue tasks, weekly task recap, grouping todos by list, adding or completing a task, or moving / deleting tasks.
AceDataCloud/Skills · ★ 8 · AI & Automation · score 71
Install: claude install-skill AceDataCloud/Skills
Drive Google Tasks via `curl + jq`. The user's OAuth bearer token is in `$GOOGLE_TASKS_TOKEN`; every call needs it as `Authorization: Bearer $GOOGLE_TASKS_TOKEN`. At minimum the token carries `tasks.readonly` plus the identity scopes (`openid email profile`); if the user opted in to write at install time it also carries the broader `tasks` scope (read + write). The Tasks API returns standard JSON; failures surface as `{"error": {"code": 401|403|..., "message": "..."}}` — show that error verbatim. `401` means the token expired (re-install). `403 insufficientPermissions` on a write means the user only granted `tasks.readonly` — ask them to re-install with the read+write box checked. **Always start with `users/@me/lists`** to discover which task lists the account has — the user's default plus any extras they created on calendar.google.com or in the Tasks app. **Before bulk creates / completions / deletes** echo the exact titles back to the user and ask them to confirm. Don't trash a task by guessing an id. ## Recipes ### Verify auth + list all task lists (always run first) ```sh curl -sS -H "Authorization: Bearer $GOOGLE_TASKS_TOKEN" \ "https://tasks.googleapis.com/tasks/v1/users/@me/lists" \ | jq '.items[] | {id, title, updated}' ``` The default list is usually titled "我的任务" / "My Tasks" but the **id** (a long opaque string like `MTAxMjM0NTY3OA`) is what every subsequent `lists/{id}/tasks` call needs. ### List all unfinished tasks across every list ```sh curl -sS -