# Google Tasks

> Google Tasks integration for AI agents via ClawLink — browser login, no API key setup. Connect google-tasks through ClawLink's hosted setup. Use this skill when the user wants to work with Google Tasks (Google Apps) — connect Google Tasks, read or update Google Tasks data, or take actions in Google Tasks from chat instead of saying you cannot access it.

- Skill: `clawlink-hq/google-tasks` (Agent Skill)
- Install (CLI): `npx skillmds@latest add clawlink-hq/google-tasks`
- Raw SKILL.md: https://api.skillmd.com/api/skills/clawlink-hq/google-tasks/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: clawlink-hq (https://skillmd.com/u/clawlink-hq)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/clawlink-hq/google-tasks

---


# Google Tasks

Use **Google Tasks** from your AI agent through [ClawLink](https://claw-link.dev) — browser login, no API key to paste, no config to edit. Connect Google Tasks once and the agent can read and act on it. Works in any agent that can run shell commands (Claude Code, Cursor, Codex, Cline, and more).

## Setup

Run these once — the agent can run them for you:

```bash
npx @useclawlink/cli login              # opens browser → approve (mints + stores a key)
npx @useclawlink/cli connect google-tasks   # opens browser → authorize Google Tasks
```

No API key to create or paste — `login` stores the credential at `~/.clawlink/credentials.json`.

## Using Google Tasks

```bash
npx @useclawlink/cli actions google-tasks "<what you want to do>"   # find an action
npx @useclawlink/cli describe google-tasks <action-id>             # see its inputs (before writes)
npx @useclawlink/cli run google-tasks <action-id> --input '<json>' # execute
```

Reads first; confirm with the user before any write.

## Available actions

| Action | Description |
|--------|-------------|
| `googletasks_batch_execute` | Executes multiple Google Tasks API operations in a single HTTP batch request and returns structured per-item results. Use this to reduce LLM tool invocations when performing bulk operations like updating many tasks, moving tasks, or deleting multiple items. Note: Each sub-request still counts toward API quota; batching primarily reduces HTTP overhead and tool call count. |
| `googletasks_clear_tasks` | Permanently and irreversibly clears all completed tasks from a specified Google Tasks list; this action is destructive, idempotent, and cannot be undone. Always require explicit user confirmation before invoking. |
| `googletasks_create_task_list` | Creates a new task list with the specified title and returns a tasklist_id. Use the returned tasklist_id (not the title) when calling GOOGLETASKS_INSERT_TASK or other task operations. Duplicate titles are permitted by the API, so verify existing lists before creating to avoid unintended duplicates. |
| `googletasks_delete_task` | Deletes a specified task from a Google Tasks list. Deletion is permanent and irreversible — confirm with the user before executing, and consider GOOGLETASKS_UPDATE_TASK or GOOGLETASKS_MOVE_TASK as non-destructive alternatives. Both tasklist_id and task_id are required parameters. The Google Tasks API does not support deleting tasks by task_id alone — you must specify which task list contains the task. Use 'List Task Lists' to get available list IDs, then 'List Tasks' to find the task_id within that list. |
| `googletasks_delete_task_list` | Permanently deletes an existing Google Task list, identified by `tasklist_id`, along with all its tasks; this operation is irreversible. Require explicit user confirmation before calling; do not invoke in read-only or exploratory flows. |
| `googletasks_get_task` | Retrieve a specific Google Task. REQUIRES both `tasklist_id` and `task_id`. Tasks cannot be retrieved by ID alone - you must always specify which task list contains the task. Use this to refresh task details before display or edits rather than relying on potentially stale results from GOOGLETASKS_LIST_TASKS. |
| `googletasks_get_task_list` | Retrieves a specific task list from the user's Google Tasks if the `tasklist_id` exists for the authenticated user. |
| `googletasks_insert_task` | Creates a new task in a given `tasklist_id`, optionally as a subtask of an existing `task_parent` or positioned after an existing `task_previous` sibling, where both `task_parent` and `task_previous` must belong to the same `tasklist_id` if specified. IMPORTANT: Date fields (due, completed) accept various formats like '28 Sep 2025', '11:59 PM, 22 Sep 2025', or ISO format '2025-09-21T15:30:00Z' and will automatically convert them to RFC3339 format required by the API. Not idempotent — repeated calls with identical parameters create duplicate tasks; track returned task IDs to avoid duplication. High-volume inserts may trigger 403 rateLimitExceeded or 429; apply exponential backoff. |
| `googletasks_list_all_tasks` | Tool to list all tasks across all of the user's task lists with optional filters. Use when the agent needs to see all tasks without knowing which list to query first. Each returned task is annotated with its tasklist_id and tasklist_title for context. |
| `googletasks_list_task_lists` | Fetches the authenticated user's task lists from Google Tasks; results may be paginated. Response contains task lists under the `items` key. Multiple lists may share similar names — confirm the correct list by ID before passing to other tools. |
| `googletasks_list_tasks` | Retrieves tasks from a Google Tasks list; all date/time strings must be RFC3339 UTC, and `showCompleted` must be true if `completedMin` or `completedMax` are specified. Response key for tasks is `tasks` (not `items`). No full-text search; filter client-side by title/notes. Results ordered by position, not by date. |
| `googletasks_move_task` | Moves the specified task to another position in the task list or to a different task list. Use cases: - Reorder tasks within a list (use 'previous' parameter) - Create subtasks by moving a task under a parent (use 'parent' parameter) - Move tasks between different task lists (use 'destinationTasklist' parameter) - Move a subtask back to top-level (omit 'parent' parameter) |

## Notes

- **No API key for Google Tasks itself** — ClawLink holds the OAuth token; the agent only holds your ClawLink credential.
- Not connected yet, or access expired? Re-run `npx @useclawlink/cli connect google-tasks`.
- The action list above is a snapshot; `npx @useclawlink/cli actions google-tasks` is always current.

## Resources

- ClawLink: https://claw-link.dev
- Docs: https://docs.claw-link.dev
- CLI: https://www.npmjs.com/package/@useclawlink/cli

---

**Powered by [ClawLink](https://claw-link.dev)** — connect 90+ apps to any AI agent.

