Reference · Tools
Google Tasks
Create, retrieve, update, and delete tasks in Google Tasks task lists.
The Google Tasks node connects BusyBot to your Google Tasks account so you can create, read, update, and delete tasks across any task list. Use it to automatically log tasks from form submissions, sync due dates from other tools, or clean up completed tasks on a schedule. It supports subtasks, due dates, status filters, and paginated retrieval of large task lists.
- Node type
- Action
- Parameters
- 40
- Outputs
- Output, Error
- Credentials
- Google Tasks OAuth2
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 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:
{
"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:
{
"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:
{
"type": "google_tasks",
"parameters": {
"resource": "task",
"operation": "get",
"taskListId": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTA",
"taskId": "task_id_to_retrieve"
}
}
Update a task and mark it completed:
{
"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:
{
"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:
{
"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:
{
"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.
Frequently asked questions
What credentials do I need to connect this node?
You need a Google Tasks OAuth2 credential (called googleTasksOAuth2Api in BusyBot). This means authorizing BusyBot to access your Google account via Google's OAuth2 flow — no API key or service account is involved. The credential scopes it to Google Tasks specifically.
Can I retrieve all tasks from a large task list, or is there a cap per request?
The node fetches up to 100 tasks per page and automatically handles pagination using Google's nextPageToken mechanism. If your task list has more than 100 tasks, the node will continue requesting subsequent pages until all results are returned. You don't need to wire up pagination logic manually.
What filters are available when getting many tasks?
When using the getAll operation you can filter by completion date range, due date range, and a minimum updated timestamp (updatedMin). You can also toggle whether completed, deleted, or hidden tasks are included in the results. These flags let you build focused queries, such as fetching only incomplete tasks due this week.
Can I create subtasks, or only top-level tasks?
Yes. When creating a task you can supply a parent task ID to nest it under an existing task, and a previous sibling ID to control its position within that parent. Both are optional — omit them and the task is created at the top level of the list.
What happens if the Google Tasks API returns an error — does the whole workflow fail?
The node has two separate outputs: Output and Error. A failed API call routes to the Error output rather than stopping the workflow outright, so you can branch on errors — for example, sending a Slack alert or retrying — without the entire run crashing.
Build with the Google Tasks node
Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Google Tasks OAuth2 credentials first.
Open BusyBotLast updated . Spotted something wrong? Tell us.