Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to Google Tasks

Scalekit connector
Open markdown

The Google Tasks connector lets your AI agent act in each user's Google Tasks account. Each user signs in to Google Tasks once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 12 tools.

Tools
12
What they doRead · write · destructive
4 · 6 · 24 read6 write2 destructive
Users sign in with
OAuth app
Your own Google app

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Create the Google Tasks connection

    In AgentKit > Connections, create a Google Tasks connection and copy its redirect URI. The name you give it is the connection_name your code passes. See Configure connections.

  4. Register a Google OAuth app

    Google Tasks connections use your own OAuth app. Register one with Google and add the redirect URI you copied.

    Then enter the app's Client ID and Client Secret on the Google Tasks connection.

    Console steps with screenshots

    Register your Scalekit environment with the Google Tasks connector so Scalekit handles the OAuth flow and token lifecycle for you. The connection name you create will be used to identify and invoke the connection programmatically. Then complete the configuration in your application as follows:

    1. Set up auth redirects

      • In Scalekit dashboard, go to AgentKit > Connections > Create Connection. Find Google Tasks and click Create. Click Use your own credentials and copy the redirect URI. It looks like https://<SCALEKIT_ENVIRONMENT_URL>/sso/v1/oauth/<CONNECTION_ID>/callback.

      • Navigate to Google Cloud Console → APIs & Services → Credentials.

        Google Cloud Console Credentials page listing API keys, OAuth 2.0 client IDs, and service accounts

      • Click + Create Credentials, then OAuth client ID.

        Create credentials menu showing API key, OAuth client ID, and Service account options

      • Choose Web application from the Application type menu and give the client a name, for example Agent Auth.

        Application type dropdown with Web application, Android, Chrome Extension, iOS, TVs, and Desktop app options

      • Under Authorized redirect URIs, click + Add URI, paste the redirect URI you copied from Scalekit, and click Create.

        Create OAuth client ID form with Web application type and Authorized redirect URIs section

    2. Enable the Google Tasks API

      • In Google Cloud Console, go to APIs & Services → Library. Search for “Google Tasks API” and click Enable.

        Google Tasks API product page showing the Enable button and API Enabled status

    3. Get client credentials

      • Open the OAuth client you created in step 1. Google shows the Client ID under Additional information, and lets you generate a Client secret from the same page.

        OAuth client detail page showing Client ID and Authorized redirect URIs

    4. Add credentials in Scalekit

      • In Scalekit dashboard, go to AgentKit > Connections and open the connection you created.
      • Copy the Connection name shown on that connection and use that exact value in your code as connection_name or connectionName.
      • Enter your credentials:
      • Click Save.
  5. Authorize a user and make your first call

    quickstart.mts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    import { createInterface } from 'node:readline/promises'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENVIRONMENT_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'googletasks'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Google Tasks:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'googletasks_list_tasklists',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user signs in once. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • googletasks_get_taskGet a single task by ID from a task list in a connected Google Tasks account.Read-only

    Get Task

    Get a single task by ID from a task list in a connected Google Tasks account. Returns the task's full details including title, notes, status, due date, completion date, and position. Use get_task to look up one task. Use list_tasks to browse all tasks in a list.

    Inputs

    task_idstringrequired
    Identifier of the task to retrieve
    tasklist_idstringrequired
    Identifier of the task list the task belongs to

    Also accepts schema_version and tool_version to pin a version.

  • googletasks_get_tasklistGet the details of a single task list by ID from a connected Google Tasks account.Read-only

    Get Task List

    Get the details of a single task list by ID from a connected Google Tasks account. Returns the list's id, title, etag, and last-updated time. Use get_tasklist to look up one list. Use list_tasklists to browse all lists and find the ID.

    Inputs

    tasklist_idstringrequired
    Identifier of the task list to retrieve

    Also accepts schema_version and tool_version to pin a version.

  • googletasks_list_tasklistsList all of the authenticated user's task lists in a connected Google Tasks account.Read-only

    List Task Lists

    List all of the authenticated user's task lists in a connected Google Tasks account. Returns each list's id, title, and last-updated time, with pagination via a page token. Use list_tasklists to browse or find a task list ID before working with its tasks. Use get_tasklist to fetch a single list's details.

    Inputs

    max_resultsinteger
    Maximum number of task lists to return on one page (max 1000)default 1000
    page_tokenstring
    Token identifying the result page to return, from a previous response's next_page_token

    Also accepts schema_version and tool_version to pin a version.

  • googletasks_list_tasksList tasks in a task list from a connected Google Tasks account, with filters for completion, due date, and visibility of hidden/deleted items.Read-only

    List Tasks

    List tasks in a task list from a connected Google Tasks account, with filters for completion, due date, and visibility of hidden/deleted items. Returns an array of tasks (id, title, status, notes, due date, position) with pagination via a page token. Use list_tasks to browse a list's tasks. Use get_task to fetch a single task by ID.

    Inputs

    tasklist_idstringrequired
    Identifier of the task list to list tasks from
    completed_maxstring
    Upper bound (RFC 3339 timestamp) for a task's completion date, to filter tasks completed before this time
    completed_minstring
    Lower bound (RFC 3339 timestamp) for a task's completion date, to filter tasks completed after this time
    due_maxstring
    Upper bound (RFC 3339 timestamp) for a task's due date, to filter by due date
    due_minstring
    Lower bound (RFC 3339 timestamp) for a task's due date, to filter by due date
    max_resultsinteger
    Maximum number of tasks to return on one page (max 100)default 20
    page_tokenstring
    Token identifying the result page to return, from a previous response's next_page_token
    show_assignedboolean
    Whether tasks assigned to the current user (from Docs, Chat Spaces) are returned in the resultdefault false
    show_completedboolean
    Whether completed tasks are returned in the result. show_hidden must also be true to show tasks completed in first-party clients such as the web UIdefault true
    show_deletedboolean
    Whether deleted tasks are returned in the resultdefault false
    show_hiddenboolean
    Whether hidden tasks are returned in the resultdefault false
    updated_minstring
    Lower bound (RFC 3339 timestamp) for a task's last modification time, to filter by last modification time

    Also accepts schema_version and tool_version to pin a version.

  • googletasks_clear_completed_tasksClear all completed tasks from a task list in a connected Google Tasks account.Write

    Clear Completed Tasks

    Clear all completed tasks from a task list in a connected Google Tasks account. The affected tasks are marked hidden and no longer returned by default when listing tasks. Use clear_completed_tasks to tidy up a list after finishing items. Use list_tasks with show_completed and show_hidden set to true to review cleared tasks first.

    • Idempotent

    Inputs

    tasklist_idstringrequired
    Identifier of the task list to clear completed tasks from

    Also accepts schema_version and tool_version to pin a version.

  • googletasks_create_taskCreate a new task in a task list of a connected Google Tasks account, optionally as a subtask of another task or positioned after a sibling.Write

    Create Task

    Create a new task in a task list of a connected Google Tasks account, optionally as a subtask of another task or positioned after a sibling. Returns the created task with its assigned id and position. Use create_task to add a to-do item. Use move_task afterward to reposition or nest it.

    Inputs

    tasklist_idstringrequired
    Identifier of the task list to create the task in
    titlestringrequired
    Title of the task. Maximum length allowed: 1024 characters
    duestring
    Scheduled date for the task (RFC 3339 timestamp). Only the date portion is recorded; time is discarded
    notesstring
    Notes describing the task. Maximum length allowed: 8192 characters
    parent_task_idstring
    Parent task identifier. If set, the new task is created as a subtask under this task. Omit to create it at the top level
    previous_task_idstring
    Identifier of the sibling task that should immediately precede the new task. Omit to create it at the first position among its siblings
    statusstring
    Status of the taskone of needsActioncompleted

    Also accepts schema_version and tool_version to pin a version.

  • googletasks_create_tasklistCreate a new task list for the authenticated user in a connected Google Tasks account.Write

    Create Task List

    Create a new task list for the authenticated user in a connected Google Tasks account. Returns the created list's id, title, etag, and last-updated time. Use create_tasklist to start a new list before adding tasks to it with create_task.

    Inputs

    titlestringrequired
    Title of the new task list. Maximum length allowed: 1024 characters.

    Also accepts schema_version and tool_version to pin a version.

  • googletasks_move_taskMove a task to another position in a connected Google Tasks account: reorder it among siblings, nest it under a new parent, move it to the top level, or move it to a different task list.Write

    Move Task

    Move a task to another position in a connected Google Tasks account: reorder it among siblings, nest it under a new parent, move it to the top level, or move it to a different task list. Returns the moved task with its updated position and parent. Use move_task to reorganize tasks. Use update_task instead to change task content like title or notes.

    Inputs

    task_idstringrequired
    Identifier of the task to move
    tasklist_idstringrequired
    Identifier of the task list the task currently belongs to
    destination_tasklist_idstring
    Destination task list identifier. If set, the task is moved from tasklist_id to this list. Otherwise the task is moved within its current list. Recurrent tasks cannot currently be moved between lists
    parent_task_idstring
    New parent task identifier. If the task is moved to the top level, omit this parameter. The parent task must exist in the task list and cannot be hidden
    previous_task_idstring
    New previous sibling task identifier. If the task is moved to the first position among its siblings, omit this parameter. The sibling must exist in the task list and cannot be hidden

    Also accepts schema_version and tool_version to pin a version.