Reference · Tools

Google Tasks

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

Action Productivity v1

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

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires Google Tasks OAuth2 credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Tasktask

Operations

Task (task)

OperationValueDescription
CreatecreateAdd a task to a task list.
DeletedeleteDelete a task.
GetgetRetrieve a task.
Get ManygetAllRetrieve many tasks from a task list.
UpdateupdateUpdate a task.

Parameters

Task: Create

ParameterTypeRequiredDefaultDescription
Task List ID (taskListId)stringYesThe ID of the task list to add the task to. Supports expressions.
Title (title)stringYesThe title of the task. Supports expressions.
Status (status)optionsNoCurrent status of the task.
Options: "" (none — leave the status unset), needsAction, completed
Notes (notes)stringNoAdditional notes for the task. Supports expressions.
Due Date (dueDate)stringNoDue date of the task as an RFC 3339 timestamp (e.g. 2026-03-15T00:00:00.000Z). Supports expressions.
Completion Date (completed)stringNoCompletion date of the task as an RFC 3339 timestamp. Omit if task is not completed. Supports expressions.
Deleted (deleted)booleanNofalseWhether the task has been marked as deleted.
Parent Task IDstringNoParent task identifier. Omit to create a top-level task. Supports expressions.
Previous Sibling Task ID (previous)stringNoPrevious sibling task identifier. Omit to create the task at the first position among its siblings. Supports expressions.

Task: Delete

ParameterTypeRequiredDefaultDescription
Task List ID (taskListId)stringYesThe ID of the task list containing the task to delete. Supports expressions.
Task ID (taskId)stringYesThe ID of the task to delete. Supports expressions.

Task: Get

ParameterTypeRequiredDefaultDescription
Task List ID (taskListId)stringYesThe ID of the task list containing the task to retrieve. Supports expressions.
Task ID (taskId)stringYesThe ID of the task to retrieve. Supports expressions.

Task: Get Many

ParameterTypeRequiredDefaultDescription
Task List ID (taskListId)stringYesThe ID of the task list to retrieve tasks from. Supports expressions.
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo20Maximum number of results to return. Accepts 1–100. (shown when Return All is false)
Completed MinstringNoLower bound for task completion date (RFC 3339 timestamp) to filter by. Supports expressions.
Completed MaxstringNoUpper bound for task completion date (RFC 3339 timestamp) to filter by. Supports expressions.
Due MinstringNoLower bound for task due date (RFC 3339 timestamp) to filter by. Supports expressions.
Due MaxstringNoUpper bound for task due date (RFC 3339 timestamp) to filter by. Supports expressions.
Show CompletedbooleanNotrueWhether to include completed tasks in results. Show Hidden must also be true to show tasks completed in first-party clients.
Show DeletedbooleanNofalseWhether to include deleted tasks in results.
Show HiddenbooleanNofalseWhether to include hidden tasks in results.
Updated MinstringNoLower bound for task last modification time (RFC 3339 timestamp) to filter by. Supports expressions.

Task: Update

ParameterTypeRequiredDefaultDescription
Task List ID (taskListId)stringYesThe ID of the task list containing the task to update. Supports expressions.
Task ID (taskId)stringYesThe ID of the task to update. Supports expressions.
Title (updateTitle)stringNoNew title for the task. Leave blank to keep existing. Supports expressions.
Status (updateStatus)optionsNoNew status for the task.
Options: "" (no change — keep the current status), needsAction, completed
Notes (updateNotes)stringNoNew notes for the task. Leave blank to keep existing. Supports expressions.
Due Date (updateDueDate)stringNoNew due date as an RFC 3339 timestamp. Leave blank to keep existing. Supports expressions.
Completion Date (updateCompleted)stringNoNew completion date as an RFC 3339 timestamp. Omit if not completed. Supports expressions.
Deleted (updateDeleted)booleanNofalseWhether to mark the task as deleted.
Previous Sibling Task ID (updatePrevious)stringNoNew previous sibling task identifier. Supports expressions.

All Operations

ParameterTypeRequiredDefaultDescription
AuthenticationoptionsNooAuth2Authentication method to use.
Options: oAuth2 (recommended), serviceAccount
Google AccountcredentialNoConnect or select your Google account. (shown when Authentication is oAuth2)
Service Account EmailstringYesThe email address of the Google service account. (shown when Authentication is serviceAccount)
Private KeystringYesThe 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 ConcurrencynumberNo5Maximum 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.

OperationWhat lands on the item
createThe created task as Google Tasks returns it, including the fields you set — title, status, notes, due date, completion date and the deleted flag.
deletesuccess: true. No task data is returned.
getThe requested task.
getAllOne item per task (see the fan-out note above).
updateThe 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

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes 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 BusyBot

Last updated . Spotted something wrong? Tell us.