google-taskslisted
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 -