<!-- BusyBot node reference — https://busybot.net/tools/google-tasks/ -->

> Node: Google Tasks (`google_tasks`) · Action · v1
> Category: Productivity · Credentials: Google Tasks OAuth2 (`googleTasksOAuth2Api`)
> Updated: 2026-08-16

# Google Tasks

> Create, get, update, and delete tasks in Google Tasks task lists.

## Overview

Google Tasks tool manages tasks within Google Tasks task lists. Task operations: create a task in a task list (with title, notes, due date, status, parent, previous sibling), delete a task by ID, get a single task by ID, get many tasks from a task list (with optional filters for completion dates, due dates, show-completed/deleted/hidden flags, and updatedMin), update an existing task using PATCH. Pagination for getAll uses nextPageToken with maxResults=100 per page.

**Category:** Productivity  
**Tool Name:** `google_tasks`  
**Version:** 1

**Appearance:** Icon: `lucide-CalendarCheck` | Color: `#4285F4`

## Node Type

**Action** — processes input items and produces output

## Input / Output

| Direction | Port(s) |
|-----------|--------|
| Input | `Input` |
| Output | `Output`, `Error` |

## Credentials

This tool requires **Google Tasks OAuth2** credentials.
See the [Credentials Guide](https://busybot.net/credentials/google-tasks-oauth2-api/) for setup instructions.

### Resources

| Resource | Value |
|----------|-------|
| Task | `task` |

### Operations

**Task** (`task`)

| Operation | Value | Description |
|-----------|-------|-------------|
| Create | `create` | Add a task to a task list. |
| Delete | `delete` | Delete a task. |
| Get | `get` | Retrieve a task. |
| Get Many | `getAll` | Retrieve many tasks from a task list. |
| Update | `update` | Update a task. |

### Parameters

#### Task: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Task List ID (`taskListId`) | `string` | Yes | — | The ID of the task list to add the task to. Supports expressions. |
| Title (`title`) | `string` | Yes | — | The title of the task. Supports expressions. |
| Status (`status`) | `options` | No | — | Current status of the task. |
| | | | | Options: `""` (none — leave the status unset), `needsAction`, `completed` |
| Notes (`notes`) | `string` | No | — | Additional notes for the task. Supports expressions. |
| Due Date (`dueDate`) | `string` | No | — | Due date of the task as an RFC 3339 timestamp (e.g. 2026-03-15T00:00:00.000Z). Supports expressions. |
| Completion Date (`completed`) | `string` | No | — | Completion date of the task as an RFC 3339 timestamp. Omit if task is not completed. Supports expressions. |
| Deleted (`deleted`) | `boolean` | No | `false` | Whether the task has been marked as deleted. |
| Parent Task ID | `string` | No | — | Parent task identifier. Omit to create a top-level task. Supports expressions. |
| Previous Sibling Task ID (`previous`) | `string` | No | — | Previous sibling task identifier. Omit to create the task at the first position among its siblings. Supports expressions. |

#### Task: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Task List ID (`taskListId`) | `string` | Yes | — | The ID of the task list containing the task to delete. Supports expressions. |
| Task ID (`taskId`) | `string` | Yes | — | The ID of the task to delete. Supports expressions. |

#### Task: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Task List ID (`taskListId`) | `string` | Yes | — | The ID of the task list containing the task to retrieve. Supports expressions. |
| Task ID (`taskId`) | `string` | Yes | — | The ID of the task to retrieve. Supports expressions. |

#### Task: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Task List ID (`taskListId`) | `string` | Yes | — | The ID of the task list to retrieve tasks from. Supports expressions. |
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `20` | Maximum number of results to return. Accepts 1–100. _(shown when Return All is `false`)_ |
| Completed Min | `string` | No | — | Lower bound for task completion date (RFC 3339 timestamp) to filter by. Supports expressions. |
| Completed Max | `string` | No | — | Upper bound for task completion date (RFC 3339 timestamp) to filter by. Supports expressions. |
| Due Min | `string` | No | — | Lower bound for task due date (RFC 3339 timestamp) to filter by. Supports expressions. |
| Due Max | `string` | No | — | Upper bound for task due date (RFC 3339 timestamp) to filter by. Supports expressions. |
| Show Completed | `boolean` | No | `true` | Whether to include completed tasks in results. Show Hidden must also be true to show tasks completed in first-party clients. |
| Show Deleted | `boolean` | No | `false` | Whether to include deleted tasks in results. |
| Show Hidden | `boolean` | No | `false` | Whether to include hidden tasks in results. |
| Updated Min | `string` | No | — | Lower bound for task last modification time (RFC 3339 timestamp) to filter by. Supports expressions. |

#### Task: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Task List ID (`taskListId`) | `string` | Yes | — | The ID of the task list containing the task to update. Supports expressions. |
| Task ID (`taskId`) | `string` | Yes | — | The ID of the task to update. Supports expressions. |
| Title (`updateTitle`) | `string` | No | — | New title for the task. Leave blank to keep existing. Supports expressions. |
| Status (`updateStatus`) | `options` | No | — | New status for the task. |
| | | | | Options: `""` (no change — keep the current status), `needsAction`, `completed` |
| Notes (`updateNotes`) | `string` | No | — | New notes for the task. Leave blank to keep existing. Supports expressions. |
| Due Date (`updateDueDate`) | `string` | No | — | New due date as an RFC 3339 timestamp. Leave blank to keep existing. Supports expressions. |
| Completion Date (`updateCompleted`) | `string` | No | — | New completion date as an RFC 3339 timestamp. Omit if not completed. Supports expressions. |
| Deleted (`updateDeleted`) | `boolean` | No | `false` | Whether to mark the task as deleted. |
| Previous Sibling Task ID (`updatePrevious`) | `string` | No | — | New previous sibling task identifier. Supports expressions. |

#### All Operations

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Authentication | `options` | No | `oAuth2` | Authentication method to use. |
| | | | | Options: `oAuth2` (recommended), `serviceAccount` |
| Google Account | `credential` | No | — | Connect or select your Google account. _(shown when Authentication is `oAuth2`)_ |
| Service Account Email | `string` | Yes | — | The email address of the Google service account. _(shown when Authentication is `serviceAccount`)_ |
| Private Key | `string` | Yes | — | The private key from the service account JSON key file, entered as the full `-----BEGIN PRIVATE KEY-----` block. Stored encrypted. _(shown when Authentication is `serviceAccount`)_ |
| Max Concurrency | `number` | No | `5` | Maximum number of items to process concurrently. Accepts 1–20. |

## Output Data

The Google Tasks response is merged into the item JSON at the top level — the rest of the incoming item passes through, and any incoming field whose name collides with a returned one is overwritten. Binary data on the input item is not carried to the output. Every operation except **Get Many** produces exactly one output item per input item.

**Get Many is the only operation that fans out:** it emits one output item per task returned, each carrying the input item's JSON merged with that task. When the list comes back empty — because the task list is empty or every task was filtered out — exactly one output item is emitted instead, carrying the input item's JSON unchanged and nothing else. Check for a field you expect from the task before treating that item as a result. With **Return All** on, every page of results is fetched; otherwise a single page capped at **Limit** (at most 100) is returned.

| Operation | What lands on the item |
|-----------|------------------------|
| `create` | The created task as Google Tasks returns it, including the fields you set — title, status, notes, due date, completion date and the deleted flag. |
| `delete` | `success: true`. No task data is returned. |
| `get` | The requested task. |
| `getAll` | One item per task (see the fan-out note above). |
| `update` | The task after the patch is applied. Only the fields you filled in are sent; blank fields are left untouched. |

Reference the result downstream by expression, e.g. `{{ $json.title }}`.

## Usage Examples

- Create a new task in a Google Tasks list
- Get a specific task by its ID
- List all tasks in a task list with filters
- Update a task title, notes, or status
- Delete a task from a task list
- Retrieve all incomplete tasks due before a date
- Mark a task as completed

## Example Configuration

Create a new task with notes and a due date:

```json
{
  "type": "google_tasks",
  "parameters": {
    "resource": "task",
    "operation": "create",
    "taskListId": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTA",
    "title": "Complete project documentation",
    "status": "needsAction",
    "notes": "Include API documentation and user guides",
    "dueDate": "2024-03-15T17:00:00.000Z"
  }
}
```

Create a subtask under an existing task:

```json
{
  "type": "google_tasks",
  "parameters": {
    "resource": "task",
    "operation": "create",
    "taskListId": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTA",
    "title": "Write API documentation",
    "status": "needsAction",
    "parent": "parent_task_id_here",
    "dueDate": "2024-03-10T12:00:00.000Z"
  }
}
```

Get a specific task:

```json
{
  "type": "google_tasks",
  "parameters": {
    "resource": "task",
    "operation": "get",
    "taskListId": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTA",
    "taskId": "task_id_to_retrieve"
  }
}
```

Update a task and mark it completed:

```json
{
  "type": "google_tasks",
  "parameters": {
    "resource": "task",
    "operation": "update",
    "taskListId": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTA",
    "taskId": "task_id_to_update",
    "updateTitle": "Updated task title",
    "updateStatus": "completed",
    "updateCompleted": "2024-03-12T14:30:00.000Z",
    "updateNotes": "Task completed successfully"
  }
}
```

Delete a task:

```json
{
  "type": "google_tasks",
  "parameters": {
    "resource": "task",
    "operation": "delete",
    "taskListId": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTA",
    "taskId": "task_id_to_delete"
  }
}
```

Get tasks due in a date range, capped at 50 results:

```json
{
  "type": "google_tasks",
  "parameters": {
    "resource": "task",
    "operation": "getAll",
    "taskListId": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTA",
    "returnAll": false,
    "limit": 50,
    "showCompleted": true,
    "showHidden": false,
    "dueMin": "2024-03-01T00:00:00.000Z",
    "dueMax": "2024-03-31T23:59:59.000Z"
  }
}
```

Get every task in a list, paging through all results:

```json
{
  "type": "google_tasks",
  "parameters": {
    "resource": "task",
    "operation": "getAll",
    "taskListId": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTA",
    "returnAll": true,
    "showCompleted": true,
    "showDeleted": false
  }
}
```

### Error Handling

| Mode | Behavior |
|------|----------|
| **stop** | Halts workflow on first error |
| **continue** | Skips failed items, passes successful ones through |
| **errorPort** | Routes failed items to Error output port |

## Tips

Manage Google Tasks — create, get, update, delete tasks in your task lists with full filter and pagination support.