CONNECT APP
Build with Google Tasks
Productivity
- OAuth
MCP
Give your agent Google Tasks tools
Every Google Tasks action is exposed as an MCP tool on Pipedream's remote server. Point a client at it with your end user's ID and Connect resolves that user's Google Tasks account for each tool call — you store no tokens.
// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "google_tasks",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// e.g. run Complete Task:
const result = await mcp.callTool({
name: "google_tasks-complete-task",
arguments: {
taskListId: "Task List",
taskId: "Task",
},
})# access_token: mint a short-lived token with the Connect SDK — see the MCP guide
headers = {
"Authorization": f"Bearer {access_token}",
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", # any stable ID for this user in your system
"x-pd-app-slug": "google_tasks",
}
async with streamablehttp_client("https://remote.mcp.pipedream.net/v3", headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
# e.g. run Complete Task:
result = await session.call_tool("google_tasks-complete-task", {
"taskListId": "Task List",
"taskId": "Task",
})API PROXY
Call the Google Tasks API directly
For an endpoint with no pre-built tool, the Connect proxy forwards your request to the Google Tasks API with the connected user's credentials attached. You store no tokens and write no refresh logic.
const resp = await pd.proxy.get({
externalUserId: "{external_user_id}", // any stable ID for this user in your system
accountId: "apn_xxxxxxx",
url: "https://www.googleapis.com/tasks/v1/users/@me/lists",
})
// Any allowed Google Tasks endpoint works here. Pipedream attaches the
// connected account's credentials to the outgoing request.# The path segment is the target URL, URL-safe base64 encoded:
# https://www.googleapis.com/tasks/v1/users/@me/lists
curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vdGFza3MvdjEvdXNlcnMvQG1lL2xpc3Rz?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
-H "Authorization: Bearer {access_token}" \
-H "x-pd-environment: production"SDK
Run Google Tasks actions from your backend
Connect a user's Google Tasks account once, then run Complete Task on their behalf from your own code — TypeScript, Python, or plain HTTP.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "google_tasks-complete-task",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
google_tasks: { authProvisionId: "apn_xxxxxxx" },
taskListId: "Task List",
taskId: "Task",
},
})from pipedream import Pipedream
pd = Pipedream(
client_id="{oauth_client_id}",
client_secret="{oauth_client_secret}",
project_id="{project_id}",
project_environment="production",
)
result = pd.actions.run(
id="google_tasks-complete-task",
external_user_id="{external_user_id}", # any stable ID for this user in your system
configured_props={
"google_tasks": {"authProvisionId": "apn_xxxxxxx"},
"taskListId": "Task List",
"taskId": "Task",
},
)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "google_tasks-complete-task",
"configured_props": {
"google_tasks": { "authProvisionId": "apn_xxxxxxx" },
"taskListId": "Task List",
"taskId": "Task"
}
}'TOOLS
Google Tasks actions
On-demand operations your product or agent can configure and run on behalf of a connected user.
-
Complete Task
actionMarks an existing task as completed by setting its status tocompleted. Use this action when you want to complete a task without changing its title, notes, due date, or other properties. To modify those fields, use the Update Task action instead. See the documentationWritev0.0.2 -
Create Subtask
actionCreates a new subtask under an existing parent task. Use this action when you want to organize related work into a task hierarchy while keeping the parent task unchanged. To create a top-level task instead, use the Create Task action. See the documentationWritev0.0.2 -
Create Task
actionCreates a new task and adds it to the authenticated user's task lists. See the docs hereWritev0.0.5 -
Create Task List
actionCreates a new task list and adds it to the authenticated user's task lists. See the docs hereWritev0.0.4 -
Delete Task
actionDeletes the authenticated user's specified task. See the docs hereWritev0.0.4 -
Delete Task List
actionDeletes the authenticated user's specified task list. See the docs hereWritev0.0.4 -
List Task Lists
actionLists the authenticated user's task lists. See the docs hereRead-onlyv0.0.4 -
List Tasks
actionReturns all tasks in the specified task list. See the docs hereRead-onlyv0.0.4 -
Move Task
actionMoves an existing task to a different position, parent task, or task list. Use this action to reorganize your task hierarchy or reorder tasks without modifying the task's title, notes, due date, or completion status. To update those properties, use the Update Task action instead. See the documentationWritev0.0.2 -
Search Tasks
actionSearches tasks across all task lists using a keyword, due date, or both - at least one of Keyword or Due Date must be provided. Keyword matches against both the task title and notes. Completed and deleted tasks are excluded unless Show Completed / Show Deleted are set. Use this action to find tasks that match specific criteria without modifying them. To create, update, complete, or move tasks, use the Create Task, Update Task, Complete Task, or Move Task actions. See the documentationRead-onlyv0.0.2 -
Update Task
actionUpdates the authenticated user's specified task. See the docs hereWritev0.0.5 -
Update Task List
actionUpdates the authenticated user's specified task list. See the docs hereWritev0.0.4
EVENTS
Google Tasks triggers
Event sources your backend can deploy for users and receive through a webhook.
MULTI-APP
Use Google Tasks with other popular apps
Most products don't stop at one integration. Pair Google Tasks with the other apps your users rely on, and ship use cases that span both.
- App slug
- google_tasks
- Authentication
- OAuth
- Categories
- Productivity
- Actions
- 12
- Triggers
- 2
- API proxy
- Available
OAuth scopes
These are the scopes Pipedream's managed Google Tasks OAuth client requests when one of your users connects an account. Supply your own OAuth client to request a different set.
- https://www.googleapis.com/auth/tasks
- profile