Google Tasks
Proxy for the Google Tasks API v1 through the managed gateway. Task lists
and tasks are fundamentally user-scoped — every list belongs to a single
Google account — so this connector only supports idp_passthrough. There
is no personal-access-token model for Google APIs, so user_secret (a
static pasted credential) doesn't fit: a raw OAuth access token expires in
about an hour with no way to refresh it once it's just a copied string.
idp_passthrough avoids that entirely — the AS resolves and refreshes the
user's own Google token on every call.
Setup
base_url— defaults tohttps://tasks.googleapis.com; no reason to change it.upstream_auth.type— fixed toidp_passthrough, the only option this connector declares.
Registering the Google IdP
If a google IdentityProvider is already registered on this instance
(true wherever identos.google-gmail, -chat or -directory is in use, or
-drive, -calendar, -docs, -sheets or -slides is installed with
idp_passthrough rather than google_sa), nothing else is needed — installing this connector just adds
https://www.googleapis.com/auth/tasks to the scopes users are asked to
grant, via the normal step-up consent flow if they've already connected
Google for another connector.
Otherwise, register one once: Google Cloud Console → create an OAuth 2.0
Client ID (Web application), add the AS's /oauth2/callback URL as an
Authorized redirect URI, then POST /admin/api/identity-providers with
idpId: "google", issuer: "https://accounts.google.com" and that client
ID and secret. The google.json preset matches on that idpId, and the
server fills in the endpoints from Google's OIDC discovery document.
Scope model
| Scope | Used for | |
|---|---|---|
| PBAC scopes (internal) | tasks:lists:read, tasks:lists:write, tasks:tasks:read, tasks:tasks:write | Route authorization |
| Upstream OAuth scope | https://www.googleapis.com/auth/tasks | Full read/write access to the user's task lists and tasks — Google Tasks has no finer-grained scope split between lists and tasks, so both PBAC scope pairs map to the same upstream grant. A tasks.readonly variant exists upstream but isn't offered here since list_task_lists/get_task alone wouldn't cover most agent use cases without also being able to check items off. |
Routes
list_task_lists, create_task_list, list_tasks, get_task,
create_task (supports parent/previous for subtasks and ordering),
update_task (status transitions between needsAction/completed),
delete_task, clear_completed_tasks.
Manifest reference
- ID:
identos.google-tasks - Version:
1.0.0 - Resource type:
urn:connector:identos:google-tasks
Supported auth modes
| Type | Details |
|---|---|
idp_passthrough | requires IdP google |
Setup fields
| ID | Label | Default | Secret? | Notes |
|---|---|---|---|---|
base_url | API base URL | https://tasks.googleapis.com | no | — |
Scopes
| Scope |
|---|
tasks:lists:read |
tasks:lists:write |
tasks:tasks:read |
tasks:tasks:write |
Routes
| Method | Pattern | Scope | Resource template |
|---|---|---|---|
GET | /tasks/v1/users/@me/lists | tasks:lists:read | — |
POST | /tasks/v1/users/@me/lists | tasks:lists:write | — |
GET | /tasks/v1/lists/{tasklist}/tasks | tasks:tasks:read | google-tasks://list/{{tasklist}} |
GET | /tasks/v1/lists/{tasklist}/tasks/{task} | tasks:tasks:read | google-tasks://list/{{tasklist}}/task/{{task}} |
POST | /tasks/v1/lists/{tasklist}/tasks | tasks:tasks:write | google-tasks://list/{{tasklist}} |
PATCH | /tasks/v1/lists/{tasklist}/tasks/{task} | tasks:tasks:write | google-tasks://list/{{tasklist}}/task/{{task}} |
DELETE | /tasks/v1/lists/{tasklist}/tasks/{task} | tasks:tasks:write | google-tasks://list/{{tasklist}}/task/{{task}} |
POST | /tasks/v1/lists/{tasklist}/clear | tasks:tasks:write | google-tasks://list/{{tasklist}} |
MCP tools
| Name | Scope | Description |
|---|---|---|
list_task_lists | tasks:lists:read | List the authenticated user's task lists. |
create_task_list | tasks:lists:write | Create a new task list for the authenticated user. |
list_tasks | tasks:tasks:read | List the tasks in a given task list. |
get_task | tasks:tasks:read | Get a single task by ID. |
create_task | tasks:tasks:write | Create a new task in the given task list. Pass parent to create it as a subtask, or previous to place it after a specific sibling. |
update_task | tasks:tasks:write | Update fields on an existing task — mark complete/incomplete, change title/notes/due date. |
delete_task | tasks:tasks:write | Permanently delete a task. Irreversible. |
clear_completed_tasks | tasks:tasks:write | Clear all completed tasks from a task list. They're hidden from the default list view; irreversible via this API. |
Send feedback about this page