# Create Subtask — Google Tasks

> Creates 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…

- Key: `google_tasks-create-subtask`
- Type: Action (Write)
- Version: 0.0.2
- App: Google Tasks (`google_tasks`) — https://pipedream.com/apps/google-tasks.md
- This page (HTML): https://pipedream.com/apps/google-tasks/actions/create-subtask
- Hints: open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/google_tasks/actions/create-subtask/create-subtask.mjs

## Description

Creates 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 documentation](https://developers.google.com/workspace/tasks/reference/rest/v1/tasks/insert)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `taskListId` | `string` | Yes | The ID of the task list. Options are loaded from the connected account. |
| `parent` | `string` | Yes | The ID of the parent task under which the subtask will be created (for example, MDQ5MjE4NzQ2OTM0NjYxNzA6MDow). You can obtain this ID using the List Tasks action. Options are loaded from the connected account. |
| `previous` | `string` | No | Optional. The ID of the sibling task after which the new subtask should be inserted (for example, MDQ5MjE4NzQ2OTM0NjYxNzA6MDox). You can obtain this ID using the List Tasks action. Options are loaded from the connected account. |
| `title` | `string` | Yes | The title of the subtask. |
| `notes` | `string` | No | The description of the task. |
| `due` | `string` | No | Due date of the task (as a RFC 3339 timestamp, for example 2026-07-26T00:00:00Z). Optional. The due date only records date information; the time portion of the timestamp is discarded when setting the due date. It isn't possible to read or write the time that a task is due via the API. |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
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 accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_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()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "google_tasks-create-subtask",
  arguments: {
    taskListId: "Task List",
    parent: "Parent Task",
  },
})
```

**TypeScript**

```ts
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-create-subtask",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    google_tasks: { authProvisionId: "apn_xxxxxxx" },
    taskListId: "Task List",
    parent: "Parent Task",
  },
})

console.log(result)
```

**cURL**

```bash
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-create-subtask",
    "configured_props": {
      "google_tasks": { "authProvisionId": "apn_xxxxxxx" },
      "taskListId": "Task List",
      "parent": "Parent Task"
    }
  }'
```

---

- App: https://pipedream.com/apps/google-tasks.md · All apps: https://pipedream.com/apps
