Setu Recipes: reusable workflows across every app.Browse templates

Integrations / Google Tasks

Google Tasks

Read and manage your Google Tasks lists and to-dos.

6 actions OAuth 2 2 read3 write1 destructive Calls tasks.googleapis.com

Connect

TypeScript
const conn = await setu.connections.initiate({ userId: "user_1", toolkit: "googletasks" });
console.log(conn.connectUrl); // show this to your user
await conn.waitUntilActive();

Permissions requested

ScopeWhy it is requested
https://www.googleapis.com/auth/userinfo.emailSee which Google account you connected
https://www.googleapis.com/auth/tasksSee, create, edit and delete your Google Tasks
https://www.googleapis.com/auth/tasks.readonlySee your Google Tasks lists and tasks

Actions

Create taskwritegoogletasks.create_taskCreate a task in a task list, with an optional note and due date (only the date part of the due time is kept).

Needs scope: https://www.googleapis.com/auth/tasks

InputTypeDescription
tasklist_idstringRequiredTask list ID from list_task_lists (or @default)
titlestringRequiredTask title
notesstringOptionalLonger notes
duestringOptionalDue date as RFC 3339, e.g. 2026-10-20T00:00:00.000Z
TypeScript
await setu.execute({
  userId: "user_1",
  action: "googletasks.create_task",
  input: {
    "tasklist_id": "<tasklist_id>",
    "title": "<title>"
  },
});
Create task listwritegoogletasks.create_task_listCreate a new Google Tasks list with a title.

Needs scope: https://www.googleapis.com/auth/tasks

InputTypeDescription
titlestringRequiredList title
TypeScript
await setu.execute({
  userId: "user_1",
  action: "googletasks.create_task_list",
  input: {
    "title": "<title>"
  },
});
Delete taskdestructivegoogletasks.delete_taskPermanently delete a task from a task list.

Needs scope: https://www.googleapis.com/auth/tasks

InputTypeDescription
tasklist_idstringRequiredTask list ID
task_idstringRequiredTask ID
TypeScript
await setu.execute({
  userId: "user_1",
  action: "googletasks.delete_task",
  input: {
    "tasklist_id": "<tasklist_id>",
    "task_id": "<task_id>"
  },
  confirm: true,
});
List task listsreadgoogletasks.list_task_listsList the user's Google Tasks lists with their IDs and titles.

Needs scope: https://www.googleapis.com/auth/tasks.readonly

No input.

TypeScript
await setu.execute({
  userId: "user_1",
  action: "googletasks.list_task_lists",
  input: {},
});
List tasksreadgoogletasks.list_tasksList the tasks in one task list, optionally hiding completed ones or limiting by due date.

Needs scope: https://www.googleapis.com/auth/tasks.readonly

InputTypeDescription
tasklist_idstringRequiredTask list ID from list_task_lists (or @default)
show_completedbooleanOptionalInclude completed tasks (default true)
due_minstringOptionalOnly tasks due on or after this RFC 3339 time
due_maxstringOptionalOnly tasks due before this RFC 3339 time
max_resultsintegerOptionalTasks to return, up to 100 (default 20)
TypeScript
await setu.execute({
  userId: "user_1",
  action: "googletasks.list_tasks",
  input: {
    "tasklist_id": "<tasklist_id>"
  },
});
Update taskwritegoogletasks.update_taskChange a task's title, notes, due date or status (set status to completed to tick it off). Only the fields you pass change.

Needs scope: https://www.googleapis.com/auth/tasks

InputTypeDescription
tasklist_idstringRequiredTask list ID
task_idstringRequiredTask ID
titlestringOptionalNew title
notesstringOptionalNew notes
duestringOptionalNew due date, RFC 3339
statusstringOptionalTask status
TypeScript
await setu.execute({
  userId: "user_1",
  action: "googletasks.update_task",
  input: {
    "tasklist_id": "<tasklist_id>",
    "task_id": "<task_id>"
  },
});