> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pinkfish.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# basecamp-tasks

> Basecamp Tasks & Scheduling

**Server path:** `/basecamp-tasks` | **Type:** Application | **PCID required:** Yes

## Tools

| Tool                                                                                            | Description                                                                                                                                                              |
| ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [`basecamp_tasks_complete_todo`](#basecamp_tasks_complete_todo)                                 | Mark a todo as complete                                                                                                                                                  |
| [`basecamp_tasks_create_card`](#basecamp_tasks_create_card)                                     | Create a card in a column                                                                                                                                                |
| [`basecamp_tasks_create_card_column`](#basecamp_tasks_create_card_column)                       | Create a column in a card table                                                                                                                                          |
| [`basecamp_tasks_create_card_step`](#basecamp_tasks_create_card_step)                           | Create a step on a card                                                                                                                                                  |
| [`basecamp_tasks_create_gauge_needle`](#basecamp_tasks_create_gauge_needle)                     | Create a gauge needle (progress update) for a project                                                                                                                    |
| [`basecamp_tasks_create_schedule_entry`](#basecamp_tasks_create_schedule_entry)                 | Create a new schedule entry                                                                                                                                              |
| [`basecamp_tasks_create_timesheet_entry`](#basecamp_tasks_create_timesheet_entry)               | Create a timesheet entry on a recording                                                                                                                                  |
| [`basecamp_tasks_create_todo`](#basecamp_tasks_create_todo)                                     | Create a new todo in a todolist                                                                                                                                          |
| [`basecamp_tasks_create_todolist`](#basecamp_tasks_create_todolist)                             | Create a new todolist in a todoset                                                                                                                                       |
| [`basecamp_tasks_create_todolist_group`](#basecamp_tasks_create_todolist_group)                 | Create a new group in a todolist                                                                                                                                         |
| [`basecamp_tasks_destroy_gauge_needle`](#basecamp_tasks_destroy_gauge_needle)                   | Destroy a gauge needle                                                                                                                                                   |
| [`basecamp_tasks_disable_card_column_on_hold`](#basecamp_tasks_disable_card_column_on_hold)     | Disable on-hold section in a column                                                                                                                                      |
| [`basecamp_tasks_enable_card_column_on_hold`](#basecamp_tasks_enable_card_column_on_hold)       | Enable on-hold section in a column                                                                                                                                       |
| [`basecamp_tasks_get_card`](#basecamp_tasks_get_card)                                           | Get a card by ID                                                                                                                                                         |
| [`basecamp_tasks_get_card_column`](#basecamp_tasks_get_card_column)                             | Get a card column by ID                                                                                                                                                  |
| [`basecamp_tasks_get_card_step`](#basecamp_tasks_get_card_step)                                 | Get a step by ID                                                                                                                                                         |
| [`basecamp_tasks_get_card_table`](#basecamp_tasks_get_card_table)                               | Get a card table by ID                                                                                                                                                   |
| [`basecamp_tasks_get_gauge_needle`](#basecamp_tasks_get_gauge_needle)                           | Get a gauge needle by ID                                                                                                                                                 |
| [`basecamp_tasks_get_hill_chart`](#basecamp_tasks_get_hill_chart)                               | Get the hill chart for a todoset                                                                                                                                         |
| [`basecamp_tasks_get_project_timesheet`](#basecamp_tasks_get_project_timesheet)                 | Get timesheet for a specific project                                                                                                                                     |
| [`basecamp_tasks_get_recording_timesheet`](#basecamp_tasks_get_recording_timesheet)             | Get timesheet for a specific recording                                                                                                                                   |
| [`basecamp_tasks_get_schedule`](#basecamp_tasks_get_schedule)                                   | Get a schedule                                                                                                                                                           |
| [`basecamp_tasks_get_schedule_entry`](#basecamp_tasks_get_schedule_entry)                       | Get a single schedule entry by id. Note: Recurring entries will redirect (302) to their recordable URL. Use GetScheduleEntryOccurrence for recurring entries instead.    |
| [`basecamp_tasks_get_schedule_entry_occurrence`](#basecamp_tasks_get_schedule_entry_occurrence) | Get a specific occurrence of a recurring schedule entry                                                                                                                  |
| [`basecamp_tasks_get_timesheet_entry`](#basecamp_tasks_get_timesheet_entry)                     | Get a single timesheet entry                                                                                                                                             |
| [`basecamp_tasks_get_timesheet_report`](#basecamp_tasks_get_timesheet_report)                   | Get account-wide timesheet report                                                                                                                                        |
| [`basecamp_tasks_get_todo`](#basecamp_tasks_get_todo)                                           | Get a single todo by id                                                                                                                                                  |
| [`basecamp_tasks_get_todolist_or_group`](#basecamp_tasks_get_todolist_or_group)                 | Get a single todolist or todolist group by id The endpoint is polymorphic - the same URI returns either a Todolist or TodolistGroup                                      |
| [`basecamp_tasks_get_todoset`](#basecamp_tasks_get_todoset)                                     | Get a todoset (container for todolists in a project)                                                                                                                     |
| [`basecamp_tasks_list_cards`](#basecamp_tasks_list_cards)                                       | List cards in a column  **Pagination**: Uses Link header (RFC5988). Follow the `next` rel URL to fetch additional pages. X-Total-Count header provides total count.      |
| [`basecamp_tasks_list_gauge_needles`](#basecamp_tasks_list_gauge_needles)                       | List gauge needles for a project, ordered newest first.                                                                                                                  |
| [`basecamp_tasks_list_gauges`](#basecamp_tasks_list_gauges)                                     | List gauges across all projects the authenticated user has access to. Gauges are sorted by risk level (red, yellow, green), then alphabetically.                         |
| [`basecamp_tasks_list_schedule_entries`](#basecamp_tasks_list_schedule_entries)                 | List entries on a schedule  **Pagination**: Uses Link header (RFC5988). Follow the `next` rel URL to fetch additional pages. X-Total-Count header provides total count.  |
| [`basecamp_tasks_list_todolist_groups`](#basecamp_tasks_list_todolist_groups)                   | List groups in a todolist  **Pagination**: Uses Link header (RFC5988). Follow the `next` rel URL to fetch additional pages. X-Total-Count header provides total count.   |
| [`basecamp_tasks_list_todolists`](#basecamp_tasks_list_todolists)                               | List todolists in a todoset  **Pagination**: Uses Link header (RFC5988). Follow the `next` rel URL to fetch additional pages. X-Total-Count header provides total count. |
| [`basecamp_tasks_list_todos`](#basecamp_tasks_list_todos)                                       | List todos in a todolist  **Pagination**: Uses Link header (RFC5988). Follow the `next` rel URL to fetch additional pages. X-Total-Count header provides total count.    |
| [`basecamp_tasks_move_card`](#basecamp_tasks_move_card)                                         | Move a card to a different column                                                                                                                                        |
| [`basecamp_tasks_move_card_column`](#basecamp_tasks_move_card_column)                           | Move a column within a card table                                                                                                                                        |
| [`basecamp_tasks_reposition_card_step`](#basecamp_tasks_reposition_card_step)                   | Reposition a step within a card                                                                                                                                          |
| [`basecamp_tasks_reposition_todo`](#basecamp_tasks_reposition_todo)                             | Reposition a todo within its todolist                                                                                                                                    |
| [`basecamp_tasks_reposition_todolist_group`](#basecamp_tasks_reposition_todolist_group)         | Reposition a todolist group                                                                                                                                              |
| [`basecamp_tasks_set_card_column_color`](#basecamp_tasks_set_card_column_color)                 | Set the color of a column                                                                                                                                                |
| [`basecamp_tasks_set_card_step_completion`](#basecamp_tasks_set_card_step_completion)           | Set card step completion status (PUT with completion: "on" to complete, "" to uncomplete)                                                                                |
| [`basecamp_tasks_subscribe_to_card_column`](#basecamp_tasks_subscribe_to_card_column)           | Subscribe to a card column (watch for changes)                                                                                                                           |
| [`basecamp_tasks_toggle_gauge`](#basecamp_tasks_toggle_gauge)                                   | Enable or disable the gauge for a project. Only project admins can toggle gauges.                                                                                        |
| [`basecamp_tasks_trash_todo`](#basecamp_tasks_trash_todo)                                       | Trash a todo (returns 204 No Content)                                                                                                                                    |
| [`basecamp_tasks_uncomplete_todo`](#basecamp_tasks_uncomplete_todo)                             | Mark a todo as incomplete                                                                                                                                                |
| [`basecamp_tasks_unsubscribe_from_card_column`](#basecamp_tasks_unsubscribe_from_card_column)   | Unsubscribe from a card column (stop watching for changes)                                                                                                               |
| [`basecamp_tasks_update_card`](#basecamp_tasks_update_card)                                     | Update an existing card                                                                                                                                                  |
| [`basecamp_tasks_update_card_column`](#basecamp_tasks_update_card_column)                       | Update an existing column                                                                                                                                                |
| [`basecamp_tasks_update_card_step`](#basecamp_tasks_update_card_step)                           | Update an existing step                                                                                                                                                  |
| [`basecamp_tasks_update_gauge_needle`](#basecamp_tasks_update_gauge_needle)                     | Update a gauge needle's description. Position and color are immutable.                                                                                                   |
| [`basecamp_tasks_update_hill_chart_settings`](#basecamp_tasks_update_hill_chart_settings)       | Track or untrack todolists on a hill chart                                                                                                                               |
| [`basecamp_tasks_update_schedule_entry`](#basecamp_tasks_update_schedule_entry)                 | Update an existing schedule entry                                                                                                                                        |
| [`basecamp_tasks_update_schedule_settings`](#basecamp_tasks_update_schedule_settings)           | Update schedule settings                                                                                                                                                 |
| [`basecamp_tasks_update_timesheet_entry`](#basecamp_tasks_update_timesheet_entry)               | Update a timesheet entry                                                                                                                                                 |
| [`basecamp_tasks_update_todo`](#basecamp_tasks_update_todo)                                     | Update an existing todo                                                                                                                                                  |
| [`basecamp_tasks_update_todolist_or_group`](#basecamp_tasks_update_todolist_or_group)           | Update an existing todolist or todolist group The endpoint is polymorphic - updates either a Todolist or TodolistGroup                                                   |

***

## basecamp\_tasks\_complete\_todo

Mark a todo as complete

**Parameters:**

| Parameter | Type    | Required | Default | Description |
| --------- | ------- | -------- | ------- | ----------- |
| `todoId`  | integer | Yes      | —       | Todo Id     |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "todoId": {
        "type": "integer",
        "description": "Todo Id"
      }
    },
    "required": [
      "PCID",
      "todoId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_create\_card

Create a card in a column

**Parameters:**

| Parameter  | Type    | Required | Default | Description       |
| ---------- | ------- | -------- | ------- | ----------------- |
| `columnId` | integer | Yes      | —       | Column Id         |
| `content`  | string  | No       | —       | The content value |
| `due_on`   | string  | No       | —       | Due On            |
| `notify`   | boolean | No       | —       | The notify value  |
| `title`    | string  | Yes      | —       | The title value   |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "columnId": {
        "type": "integer",
        "description": "Column Id"
      },
      "content": {
        "type": "string",
        "description": "The content value"
      },
      "due_on": {
        "type": "string",
        "description": "Due On"
      },
      "notify": {
        "type": "boolean",
        "description": "The notify value"
      },
      "title": {
        "type": "string",
        "description": "The title value"
      }
    },
    "required": [
      "PCID",
      "columnId",
      "title"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_create\_card\_column

Create a column in a card table

**Parameters:**

| Parameter     | Type    | Required | Default | Description           |
| ------------- | ------- | -------- | ------- | --------------------- |
| `cardTableId` | integer | Yes      | —       | Card Table Id         |
| `description` | string  | No       | —       | The description value |
| `title`       | string  | Yes      | —       | The title value       |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "cardTableId": {
        "type": "integer",
        "description": "Card Table Id"
      },
      "description": {
        "type": "string",
        "description": "The description value"
      },
      "title": {
        "type": "string",
        "description": "The title value"
      }
    },
    "required": [
      "PCID",
      "cardTableId",
      "title"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_create\_card\_step

Create a step on a card

**Parameters:**

| Parameter      | Type       | Required | Default | Description     |
| -------------- | ---------- | -------- | ------- | --------------- |
| `cardId`       | integer    | Yes      | —       | Card Id         |
| `assignee_ids` | integer\[] | No       | —       | Assignee Ids    |
| `due_on`       | string     | No       | —       | Due On          |
| `title`        | string     | Yes      | —       | The title value |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "cardId": {
        "type": "integer",
        "description": "Card Id"
      },
      "assignee_ids": {
        "type": "array",
        "items": {
          "type": "integer",
          "format": "int64"
        },
        "description": "Assignee Ids"
      },
      "due_on": {
        "type": "string",
        "description": "Due On"
      },
      "title": {
        "type": "string",
        "description": "The title value"
      }
    },
    "required": [
      "PCID",
      "cardId",
      "title"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_create\_gauge\_needle

Create a gauge needle (progress update) for a project

**Parameters:**

| Parameter       | Type       | Required | Default | Description                                                            |
| --------------- | ---------- | -------- | ------- | ---------------------------------------------------------------------- |
| `projectId`     | integer    | Yes      | —       | Project Id                                                             |
| `gauge_needle`  | object     | Yes      | —       | Gauge Needle                                                           |
| `notify`        | string     | No       | —       | Who to notify: "everyone", "working\_on", "custom", or omit for nobody |
| `subscriptions` | integer\[] | No       | —       | Array of people IDs to notify (only used when notify is "custom")      |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "projectId": {
        "type": "integer",
        "description": "Project Id"
      },
      "gauge_needle": {
        "type": "object",
        "description": "Gauge Needle",
        "properties": {
          "position": {
            "type": "integer",
            "description": "Position of the needle (0-100)"
          },
          "color": {
            "type": "string",
            "description": "Status color: green (default), yellow, or red"
          },
          "description": {
            "type": "string",
            "description": "Rich text (HTML) description of the progress update"
          }
        },
        "required": [
          "position"
        ]
      },
      "notify": {
        "type": "string",
        "description": "Who to notify: \"everyone\", \"working_on\", \"custom\", or omit for nobody"
      },
      "subscriptions": {
        "type": "array",
        "items": {
          "type": "integer",
          "format": "int64"
        },
        "description": "Array of people IDs to notify (only used when notify is \"custom\")"
      }
    },
    "required": [
      "PCID",
      "projectId",
      "gauge_needle"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_create\_schedule\_entry

Create a new schedule entry

**Parameters:**

| Parameter         | Type       | Required | Default | Description             |
| ----------------- | ---------- | -------- | ------- | ----------------------- |
| `scheduleId`      | integer    | Yes      | —       | Schedule Id             |
| `all_day`         | boolean    | No       | —       | All Day                 |
| `description`     | string     | No       | —       | The description value   |
| `ends_at`         | string     | Yes      | —       | Ends At                 |
| `notify`          | boolean    | No       | —       | The notify value        |
| `participant_ids` | integer\[] | No       | —       | Participant Ids         |
| `starts_at`       | string     | Yes      | —       | Starts At               |
| `subscriptions`   | integer\[] | No       | —       | The subscriptions value |
| `summary`         | string     | Yes      | —       | The summary value       |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "scheduleId": {
        "type": "integer",
        "description": "Schedule Id"
      },
      "all_day": {
        "type": "boolean",
        "description": "All Day"
      },
      "description": {
        "type": "string",
        "description": "The description value"
      },
      "ends_at": {
        "type": "string",
        "description": "Ends At"
      },
      "notify": {
        "type": "boolean",
        "description": "The notify value"
      },
      "participant_ids": {
        "type": "array",
        "items": {
          "type": "integer",
          "format": "int64"
        },
        "description": "Participant Ids"
      },
      "starts_at": {
        "type": "string",
        "description": "Starts At"
      },
      "subscriptions": {
        "type": "array",
        "items": {
          "type": "integer",
          "format": "int64"
        },
        "description": "The subscriptions value"
      },
      "summary": {
        "type": "string",
        "description": "The summary value"
      }
    },
    "required": [
      "PCID",
      "scheduleId",
      "ends_at",
      "starts_at",
      "summary"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_create\_timesheet\_entry

Create a timesheet entry on a recording

**Parameters:**

| Parameter     | Type    | Required | Default | Description           |
| ------------- | ------- | -------- | ------- | --------------------- |
| `recordingId` | integer | Yes      | —       | Recording Id          |
| `date`        | string  | Yes      | —       | The date value        |
| `description` | string  | No       | —       | The description value |
| `hours`       | string  | Yes      | —       | The hours value       |
| `person_id`   | integer | No       | —       | Person Id             |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "recordingId": {
        "type": "integer",
        "description": "Recording Id"
      },
      "date": {
        "type": "string",
        "description": "The date value"
      },
      "description": {
        "type": "string",
        "description": "The description value"
      },
      "hours": {
        "type": "string",
        "description": "The hours value"
      },
      "person_id": {
        "type": "integer",
        "description": "Person Id"
      }
    },
    "required": [
      "PCID",
      "recordingId",
      "date",
      "hours"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_create\_todo

Create a new todo in a todolist

**Parameters:**

| Parameter                   | Type       | Required | Default | Description               |
| --------------------------- | ---------- | -------- | ------- | ------------------------- |
| `todolistId`                | integer    | Yes      | —       | Todolist Id               |
| `assignee_ids`              | integer\[] | No       | —       | Assignee Ids              |
| `completion_subscriber_ids` | integer\[] | No       | —       | Completion Subscriber Ids |
| `content`                   | string     | Yes      | —       | The content value         |
| `description`               | string     | No       | —       | The description value     |
| `due_on`                    | string     | No       | —       | Due On                    |
| `notify`                    | boolean    | No       | —       | The notify value          |
| `starts_on`                 | string     | No       | —       | Starts On                 |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "todolistId": {
        "type": "integer",
        "description": "Todolist Id"
      },
      "assignee_ids": {
        "type": "array",
        "items": {
          "type": "integer",
          "format": "int64"
        },
        "description": "Assignee Ids"
      },
      "completion_subscriber_ids": {
        "type": "array",
        "items": {
          "type": "integer",
          "format": "int64"
        },
        "description": "Completion Subscriber Ids"
      },
      "content": {
        "type": "string",
        "description": "The content value"
      },
      "description": {
        "type": "string",
        "description": "The description value"
      },
      "due_on": {
        "type": "string",
        "description": "Due On"
      },
      "notify": {
        "type": "boolean",
        "description": "The notify value"
      },
      "starts_on": {
        "type": "string",
        "description": "Starts On"
      }
    },
    "required": [
      "PCID",
      "todolistId",
      "content"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_create\_todolist

Create a new todolist in a todoset

**Parameters:**

| Parameter     | Type    | Required | Default | Description           |
| ------------- | ------- | -------- | ------- | --------------------- |
| `todosetId`   | integer | Yes      | —       | Todoset Id            |
| `description` | string  | No       | —       | The description value |
| `name`        | string  | Yes      | —       | The name value        |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "todosetId": {
        "type": "integer",
        "description": "Todoset Id"
      },
      "description": {
        "type": "string",
        "description": "The description value"
      },
      "name": {
        "type": "string",
        "description": "The name value"
      }
    },
    "required": [
      "PCID",
      "todosetId",
      "name"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_create\_todolist\_group

Create a new group in a todolist

**Parameters:**

| Parameter    | Type    | Required | Default | Description    |
| ------------ | ------- | -------- | ------- | -------------- |
| `todolistId` | integer | Yes      | —       | Todolist Id    |
| `name`       | string  | Yes      | —       | The name value |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "todolistId": {
        "type": "integer",
        "description": "Todolist Id"
      },
      "name": {
        "type": "string",
        "description": "The name value"
      }
    },
    "required": [
      "PCID",
      "todolistId",
      "name"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_destroy\_gauge\_needle

Destroy a gauge needle

**Parameters:**

| Parameter  | Type    | Required | Default | Description |
| ---------- | ------- | -------- | ------- | ----------- |
| `needleId` | integer | Yes      | —       | Needle Id   |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "needleId": {
        "type": "integer",
        "description": "Needle Id"
      }
    },
    "required": [
      "PCID",
      "needleId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_disable\_card\_column\_on\_hold

Disable on-hold section in a column

**Parameters:**

| Parameter  | Type    | Required | Default | Description |
| ---------- | ------- | -------- | ------- | ----------- |
| `bucketId` | integer | Yes      | —       | Bucket Id   |
| `columnId` | integer | Yes      | —       | Column Id   |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "bucketId": {
        "type": "integer",
        "description": "Bucket Id"
      },
      "columnId": {
        "type": "integer",
        "description": "Column Id"
      }
    },
    "required": [
      "PCID",
      "bucketId",
      "columnId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_enable\_card\_column\_on\_hold

Enable on-hold section in a column

**Parameters:**

| Parameter  | Type    | Required | Default | Description |
| ---------- | ------- | -------- | ------- | ----------- |
| `bucketId` | integer | Yes      | —       | Bucket Id   |
| `columnId` | integer | Yes      | —       | Column Id   |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "bucketId": {
        "type": "integer",
        "description": "Bucket Id"
      },
      "columnId": {
        "type": "integer",
        "description": "Column Id"
      }
    },
    "required": [
      "PCID",
      "bucketId",
      "columnId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_get\_card

Get a card by ID

**Parameters:**

| Parameter | Type    | Required | Default | Description |
| --------- | ------- | -------- | ------- | ----------- |
| `cardId`  | integer | Yes      | —       | Card Id     |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "cardId": {
        "type": "integer",
        "description": "Card Id"
      }
    },
    "required": [
      "PCID",
      "cardId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_get\_card\_column

Get a card column by ID

**Parameters:**

| Parameter  | Type    | Required | Default | Description |
| ---------- | ------- | -------- | ------- | ----------- |
| `columnId` | integer | Yes      | —       | Column Id   |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "columnId": {
        "type": "integer",
        "description": "Column Id"
      }
    },
    "required": [
      "PCID",
      "columnId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_get\_card\_step

Get a step by ID

**Parameters:**

| Parameter | Type    | Required | Default | Description |
| --------- | ------- | -------- | ------- | ----------- |
| `stepId`  | integer | Yes      | —       | Step Id     |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "stepId": {
        "type": "integer",
        "description": "Step Id"
      }
    },
    "required": [
      "PCID",
      "stepId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_get\_card\_table

Get a card table by ID

**Parameters:**

| Parameter     | Type    | Required | Default | Description   |
| ------------- | ------- | -------- | ------- | ------------- |
| `cardTableId` | integer | Yes      | —       | Card Table Id |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "cardTableId": {
        "type": "integer",
        "description": "Card Table Id"
      }
    },
    "required": [
      "PCID",
      "cardTableId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_get\_gauge\_needle

Get a gauge needle by ID

**Parameters:**

| Parameter  | Type    | Required | Default | Description |
| ---------- | ------- | -------- | ------- | ----------- |
| `needleId` | integer | Yes      | —       | Needle Id   |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "needleId": {
        "type": "integer",
        "description": "Needle Id"
      }
    },
    "required": [
      "PCID",
      "needleId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_get\_hill\_chart

Get the hill chart for a todoset

**Parameters:**

| Parameter   | Type    | Required | Default | Description |
| ----------- | ------- | -------- | ------- | ----------- |
| `todosetId` | integer | Yes      | —       | Todoset Id  |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "todosetId": {
        "type": "integer",
        "description": "Todoset Id"
      }
    },
    "required": [
      "PCID",
      "todosetId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_get\_project\_timesheet

Get timesheet for a specific project

**Parameters:**

| Parameter   | Type    | Required | Default | Description    |
| ----------- | ------- | -------- | ------- | -------------- |
| `projectId` | integer | Yes      | —       | Project Id     |
| `from`      | string  | No       | —       | The from value |
| `to`        | string  | No       | —       | The to value   |
| `person_id` | integer | No       | —       | Person Id      |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "projectId": {
        "type": "integer",
        "description": "Project Id"
      },
      "from": {
        "type": "string",
        "description": "The from value"
      },
      "to": {
        "type": "string",
        "description": "The to value"
      },
      "person_id": {
        "type": "integer",
        "description": "Person Id"
      }
    },
    "required": [
      "PCID",
      "projectId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_get\_recording\_timesheet

Get timesheet for a specific recording

**Parameters:**

| Parameter     | Type    | Required | Default | Description    |
| ------------- | ------- | -------- | ------- | -------------- |
| `recordingId` | integer | Yes      | —       | Recording Id   |
| `from`        | string  | No       | —       | The from value |
| `to`          | string  | No       | —       | The to value   |
| `person_id`   | integer | No       | —       | Person Id      |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "recordingId": {
        "type": "integer",
        "description": "Recording Id"
      },
      "from": {
        "type": "string",
        "description": "The from value"
      },
      "to": {
        "type": "string",
        "description": "The to value"
      },
      "person_id": {
        "type": "integer",
        "description": "Person Id"
      }
    },
    "required": [
      "PCID",
      "recordingId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_get\_schedule

Get a schedule

**Parameters:**

| Parameter    | Type    | Required | Default | Description |
| ------------ | ------- | -------- | ------- | ----------- |
| `scheduleId` | integer | Yes      | —       | Schedule Id |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "scheduleId": {
        "type": "integer",
        "description": "Schedule Id"
      }
    },
    "required": [
      "PCID",
      "scheduleId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_get\_schedule\_entry

Get a single schedule entry by id. Note: Recurring entries will redirect (302) to their recordable URL. Use GetScheduleEntryOccurrence for recurring entries instead.

**Parameters:**

| Parameter | Type    | Required | Default | Description |
| --------- | ------- | -------- | ------- | ----------- |
| `entryId` | integer | Yes      | —       | Entry Id    |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "entryId": {
        "type": "integer",
        "description": "Entry Id"
      }
    },
    "required": [
      "PCID",
      "entryId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_get\_schedule\_entry\_occurrence

Get a specific occurrence of a recurring schedule entry

**Parameters:**

| Parameter | Type    | Required | Default | Description    |
| --------- | ------- | -------- | ------- | -------------- |
| `entryId` | integer | Yes      | —       | Entry Id       |
| `date`    | string  | Yes      | —       | The date value |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "entryId": {
        "type": "integer",
        "description": "Entry Id"
      },
      "date": {
        "type": "string",
        "description": "The date value"
      }
    },
    "required": [
      "PCID",
      "entryId",
      "date"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_get\_timesheet\_entry

Get a single timesheet entry

**Parameters:**

| Parameter | Type    | Required | Default | Description |
| --------- | ------- | -------- | ------- | ----------- |
| `entryId` | integer | Yes      | —       | Entry Id    |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "entryId": {
        "type": "integer",
        "description": "Entry Id"
      }
    },
    "required": [
      "PCID",
      "entryId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_get\_timesheet\_report

Get account-wide timesheet report

**Parameters:**

| Parameter   | Type    | Required | Default | Description    |
| ----------- | ------- | -------- | ------- | -------------- |
| `from`      | string  | No       | —       | The from value |
| `to`        | string  | No       | —       | The to value   |
| `person_id` | integer | No       | —       | Person Id      |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "from": {
        "type": "string",
        "description": "The from value"
      },
      "to": {
        "type": "string",
        "description": "The to value"
      },
      "person_id": {
        "type": "integer",
        "description": "Person Id"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_get\_todo

Get a single todo by id

**Parameters:**

| Parameter | Type    | Required | Default | Description |
| --------- | ------- | -------- | ------- | ----------- |
| `todoId`  | integer | Yes      | —       | Todo Id     |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "todoId": {
        "type": "integer",
        "description": "Todo Id"
      }
    },
    "required": [
      "PCID",
      "todoId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_get\_todolist\_or\_group

Get a single todolist or todolist group by id The endpoint is polymorphic - the same URI returns either a Todolist or TodolistGroup

**Parameters:**

| Parameter | Type    | Required | Default | Description  |
| --------- | ------- | -------- | ------- | ------------ |
| `id`      | integer | Yes      | —       | The id value |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "id": {
        "type": "integer",
        "description": "The id value"
      }
    },
    "required": [
      "PCID",
      "id"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_get\_todoset

Get a todoset (container for todolists in a project)

**Parameters:**

| Parameter   | Type    | Required | Default | Description |
| ----------- | ------- | -------- | ------- | ----------- |
| `todosetId` | integer | Yes      | —       | Todoset Id  |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "todosetId": {
        "type": "integer",
        "description": "Todoset Id"
      }
    },
    "required": [
      "PCID",
      "todosetId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_list\_cards

List cards in a column  **Pagination**: Uses Link header (RFC5988). Follow the `next` rel URL to fetch additional pages. X-Total-Count header provides total count.

**Parameters:**

| Parameter  | Type    | Required | Default | Description |
| ---------- | ------- | -------- | ------- | ----------- |
| `columnId` | integer | Yes      | —       | Column Id   |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "columnId": {
        "type": "integer",
        "description": "Column Id"
      }
    },
    "required": [
      "PCID",
      "columnId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_list\_gauge\_needles

List gauge needles for a project, ordered newest first.

**Parameters:**

| Parameter   | Type    | Required | Default | Description |
| ----------- | ------- | -------- | ------- | ----------- |
| `projectId` | integer | Yes      | —       | Project Id  |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "projectId": {
        "type": "integer",
        "description": "Project Id"
      }
    },
    "required": [
      "PCID",
      "projectId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_list\_gauges

List gauges across all projects the authenticated user has access to. Gauges are sorted by risk level (red, yellow, green), then alphabetically.

**Parameters:**

| Parameter    | Type   | Required | Default | Description                                                                                                               |
| ------------ | ------ | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------- |
| `bucket_ids` | string | No       | —       | Comma-separated list of project IDs. When provided, results are returned in the order specified instead of by risk level. |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "bucket_ids": {
        "type": "string",
        "description": "Comma-separated list of project IDs. When provided, results are returned in the order specified instead of by risk level."
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_list\_schedule\_entries

List entries on a schedule  **Pagination**: Uses Link header (RFC5988). Follow the `next` rel URL to fetch additional pages. X-Total-Count header provides total count.

**Parameters:**

| Parameter    | Type    | Required | Default | Description               |
| ------------ | ------- | -------- | ------- | ------------------------- |
| `scheduleId` | integer | Yes      | —       | Schedule Id               |
| `status`     | string  | No       | —       | active\|archived\|trashed |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "scheduleId": {
        "type": "integer",
        "description": "Schedule Id"
      },
      "status": {
        "type": "string",
        "description": "active|archived|trashed"
      }
    },
    "required": [
      "PCID",
      "scheduleId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_list\_todolist\_groups

List groups in a todolist  **Pagination**: Uses Link header (RFC5988). Follow the `next` rel URL to fetch additional pages. X-Total-Count header provides total count.

**Parameters:**

| Parameter    | Type    | Required | Default | Description |
| ------------ | ------- | -------- | ------- | ----------- |
| `todolistId` | integer | Yes      | —       | Todolist Id |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "todolistId": {
        "type": "integer",
        "description": "Todolist Id"
      }
    },
    "required": [
      "PCID",
      "todolistId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_list\_todolists

List todolists in a todoset  **Pagination**: Uses Link header (RFC5988). Follow the `next` rel URL to fetch additional pages. X-Total-Count header provides total count.

**Parameters:**

| Parameter   | Type    | Required | Default | Description               |
| ----------- | ------- | -------- | ------- | ------------------------- |
| `todosetId` | integer | Yes      | —       | Todoset Id                |
| `status`    | string  | No       | —       | active\|archived\|trashed |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "todosetId": {
        "type": "integer",
        "description": "Todoset Id"
      },
      "status": {
        "type": "string",
        "description": "active|archived|trashed"
      }
    },
    "required": [
      "PCID",
      "todosetId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_list\_todos

List todos in a todolist  **Pagination**: Uses Link header (RFC5988). Follow the `next` rel URL to fetch additional pages. X-Total-Count header provides total count.

**Parameters:**

| Parameter    | Type    | Required | Default | Description               |
| ------------ | ------- | -------- | ------- | ------------------------- |
| `todolistId` | integer | Yes      | —       | Todolist Id               |
| `status`     | string  | No       | —       | active\|archived\|trashed |
| `completed`  | boolean | No       | —       | The completed value       |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "todolistId": {
        "type": "integer",
        "description": "Todolist Id"
      },
      "status": {
        "type": "string",
        "description": "active|archived|trashed"
      },
      "completed": {
        "type": "boolean",
        "description": "The completed value"
      }
    },
    "required": [
      "PCID",
      "todolistId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_move\_card

Move a card to a different column

**Parameters:**

| Parameter   | Type    | Required | Default | Description                                                            |
| ----------- | ------- | -------- | ------- | ---------------------------------------------------------------------- |
| `cardId`    | integer | Yes      | —       | Card Id                                                                |
| `column_id` | integer | Yes      | —       | Column Id                                                              |
| `position`  | integer | No       | —       | 1-indexed position within the destination column. Defaults to 1 (top). |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "cardId": {
        "type": "integer",
        "description": "Card Id"
      },
      "column_id": {
        "type": "integer",
        "description": "Column Id"
      },
      "position": {
        "type": "integer",
        "description": "1-indexed position within the destination column. Defaults to 1 (top)."
      }
    },
    "required": [
      "PCID",
      "cardId",
      "column_id"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_move\_card\_column

Move a column within a card table

**Parameters:**

| Parameter     | Type    | Required | Default | Description        |
| ------------- | ------- | -------- | ------- | ------------------ |
| `cardTableId` | integer | Yes      | —       | Card Table Id      |
| `position`    | integer | No       | —       | The position value |
| `source_id`   | integer | Yes      | —       | Source Id          |
| `target_id`   | integer | Yes      | —       | Target Id          |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "cardTableId": {
        "type": "integer",
        "description": "Card Table Id"
      },
      "position": {
        "type": "integer",
        "description": "The position value"
      },
      "source_id": {
        "type": "integer",
        "description": "Source Id"
      },
      "target_id": {
        "type": "integer",
        "description": "Target Id"
      }
    },
    "required": [
      "PCID",
      "cardTableId",
      "source_id",
      "target_id"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_reposition\_card\_step

Reposition a step within a card

**Parameters:**

| Parameter   | Type    | Required | Default | Description        |
| ----------- | ------- | -------- | ------- | ------------------ |
| `cardId`    | integer | Yes      | —       | Card Id            |
| `position`  | integer | Yes      | —       | 0-indexed position |
| `source_id` | integer | Yes      | —       | Source Id          |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "cardId": {
        "type": "integer",
        "description": "Card Id"
      },
      "position": {
        "type": "integer",
        "description": "0-indexed position"
      },
      "source_id": {
        "type": "integer",
        "description": "Source Id"
      }
    },
    "required": [
      "PCID",
      "cardId",
      "position",
      "source_id"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_reposition\_todo

Reposition a todo within its todolist

**Parameters:**

| Parameter   | Type    | Required | Default | Description                                                 |
| ----------- | ------- | -------- | ------- | ----------------------------------------------------------- |
| `todoId`    | integer | Yes      | —       | Todo Id                                                     |
| `parent_id` | integer | No       | —       | Optional todolist ID to move the todo to a different parent |
| `position`  | integer | Yes      | —       | The position value                                          |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "todoId": {
        "type": "integer",
        "description": "Todo Id"
      },
      "parent_id": {
        "type": "integer",
        "description": "Optional todolist ID to move the todo to a different parent"
      },
      "position": {
        "type": "integer",
        "description": "The position value"
      }
    },
    "required": [
      "PCID",
      "todoId",
      "position"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_reposition\_todolist\_group

Reposition a todolist group

**Parameters:**

| Parameter  | Type    | Required | Default | Description        |
| ---------- | ------- | -------- | ------- | ------------------ |
| `groupId`  | integer | Yes      | —       | Group Id           |
| `position` | integer | Yes      | —       | The position value |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "groupId": {
        "type": "integer",
        "description": "Group Id"
      },
      "position": {
        "type": "integer",
        "description": "The position value"
      }
    },
    "required": [
      "PCID",
      "groupId",
      "position"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_set\_card\_column\_color

Set the color of a column

**Parameters:**

| Parameter  | Type    | Required | Default | Description                                                                            |
| ---------- | ------- | -------- | ------- | -------------------------------------------------------------------------------------- |
| `bucketId` | integer | Yes      | —       | Bucket Id                                                                              |
| `columnId` | integer | Yes      | —       | Column Id                                                                              |
| `color`    | string  | Yes      | —       | Valid colors: white, red, orange, yellow, green, blue, aqua, purple, gray, pink, brown |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "bucketId": {
        "type": "integer",
        "description": "Bucket Id"
      },
      "columnId": {
        "type": "integer",
        "description": "Column Id"
      },
      "color": {
        "type": "string",
        "description": "Valid colors: white, red, orange, yellow, green, blue, aqua, purple, gray, pink, brown"
      }
    },
    "required": [
      "PCID",
      "bucketId",
      "columnId",
      "color"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_set\_card\_step\_completion

Set card step completion status (PUT with completion: "on" to complete, "" to uncomplete)

**Parameters:**

| Parameter    | Type    | Required | Default | Description                                                |
| ------------ | ------- | -------- | ------- | ---------------------------------------------------------- |
| `stepId`     | integer | Yes      | —       | Step Id                                                    |
| `completion` | string  | Yes      | —       | Set to "on" to complete the step, "" (empty) to uncomplete |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "stepId": {
        "type": "integer",
        "description": "Step Id"
      },
      "completion": {
        "type": "string",
        "description": "Set to \"on\" to complete the step, \"\" (empty) to uncomplete"
      }
    },
    "required": [
      "PCID",
      "stepId",
      "completion"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_subscribe\_to\_card\_column

Subscribe to a card column (watch for changes)

**Parameters:**

| Parameter  | Type    | Required | Default | Description |
| ---------- | ------- | -------- | ------- | ----------- |
| `columnId` | integer | Yes      | —       | Column Id   |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "columnId": {
        "type": "integer",
        "description": "Column Id"
      }
    },
    "required": [
      "PCID",
      "columnId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_toggle\_gauge

Enable or disable the gauge for a project. Only project admins can toggle gauges.

**Parameters:**

| Parameter   | Type    | Required | Default | Description     |
| ----------- | ------- | -------- | ------- | --------------- |
| `projectId` | integer | Yes      | —       | Project Id      |
| `gauge`     | object  | Yes      | —       | The gauge value |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "projectId": {
        "type": "integer",
        "description": "Project Id"
      },
      "gauge": {
        "type": "object",
        "description": "The gauge value",
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "The enabled value"
          }
        },
        "required": [
          "enabled"
        ]
      }
    },
    "required": [
      "PCID",
      "projectId",
      "gauge"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_trash\_todo

Trash a todo (returns 204 No Content)

**Parameters:**

| Parameter | Type    | Required | Default | Description |
| --------- | ------- | -------- | ------- | ----------- |
| `todoId`  | integer | Yes      | —       | Todo Id     |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "todoId": {
        "type": "integer",
        "description": "Todo Id"
      }
    },
    "required": [
      "PCID",
      "todoId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_uncomplete\_todo

Mark a todo as incomplete

**Parameters:**

| Parameter | Type    | Required | Default | Description |
| --------- | ------- | -------- | ------- | ----------- |
| `todoId`  | integer | Yes      | —       | Todo Id     |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "todoId": {
        "type": "integer",
        "description": "Todo Id"
      }
    },
    "required": [
      "PCID",
      "todoId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_unsubscribe\_from\_card\_column

Unsubscribe from a card column (stop watching for changes)

**Parameters:**

| Parameter  | Type    | Required | Default | Description |
| ---------- | ------- | -------- | ------- | ----------- |
| `columnId` | integer | Yes      | —       | Column Id   |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "columnId": {
        "type": "integer",
        "description": "Column Id"
      }
    },
    "required": [
      "PCID",
      "columnId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_update\_card

Update an existing card

**Parameters:**

| Parameter      | Type       | Required | Default | Description       |
| -------------- | ---------- | -------- | ------- | ----------------- |
| `cardId`       | integer    | Yes      | —       | Card Id           |
| `assignee_ids` | integer\[] | No       | —       | Assignee Ids      |
| `content`      | string     | No       | —       | The content value |
| `due_on`       | string     | No       | —       | Due On            |
| `title`        | string     | No       | —       | The title value   |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "cardId": {
        "type": "integer",
        "description": "Card Id"
      },
      "assignee_ids": {
        "type": "array",
        "items": {
          "type": "integer",
          "format": "int64"
        },
        "description": "Assignee Ids"
      },
      "content": {
        "type": "string",
        "description": "The content value"
      },
      "due_on": {
        "type": "string",
        "description": "Due On"
      },
      "title": {
        "type": "string",
        "description": "The title value"
      }
    },
    "required": [
      "PCID",
      "cardId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_update\_card\_column

Update an existing column

**Parameters:**

| Parameter     | Type    | Required | Default | Description           |
| ------------- | ------- | -------- | ------- | --------------------- |
| `columnId`    | integer | Yes      | —       | Column Id             |
| `description` | string  | No       | —       | The description value |
| `title`       | string  | No       | —       | The title value       |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "columnId": {
        "type": "integer",
        "description": "Column Id"
      },
      "description": {
        "type": "string",
        "description": "The description value"
      },
      "title": {
        "type": "string",
        "description": "The title value"
      }
    },
    "required": [
      "PCID",
      "columnId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_update\_card\_step

Update an existing step

**Parameters:**

| Parameter      | Type       | Required | Default | Description     |
| -------------- | ---------- | -------- | ------- | --------------- |
| `stepId`       | integer    | Yes      | —       | Step Id         |
| `assignee_ids` | integer\[] | No       | —       | Assignee Ids    |
| `due_on`       | string     | No       | —       | Due On          |
| `title`        | string     | No       | —       | The title value |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "stepId": {
        "type": "integer",
        "description": "Step Id"
      },
      "assignee_ids": {
        "type": "array",
        "items": {
          "type": "integer",
          "format": "int64"
        },
        "description": "Assignee Ids"
      },
      "due_on": {
        "type": "string",
        "description": "Due On"
      },
      "title": {
        "type": "string",
        "description": "The title value"
      }
    },
    "required": [
      "PCID",
      "stepId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_update\_gauge\_needle

Update a gauge needle's description. Position and color are immutable.

**Parameters:**

| Parameter      | Type    | Required | Default | Description  |
| -------------- | ------- | -------- | ------- | ------------ |
| `needleId`     | integer | Yes      | —       | Needle Id    |
| `gauge_needle` | object  | No       | —       | Gauge Needle |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "needleId": {
        "type": "integer",
        "description": "Needle Id"
      },
      "gauge_needle": {
        "type": "object",
        "description": "Gauge Needle",
        "properties": {
          "description": {
            "type": "string",
            "description": "Rich text (HTML) description"
          }
        }
      }
    },
    "required": [
      "PCID",
      "needleId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_update\_hill\_chart\_settings

Track or untrack todolists on a hill chart

**Parameters:**

| Parameter   | Type       | Required | Default | Description         |
| ----------- | ---------- | -------- | ------- | ------------------- |
| `todosetId` | integer    | Yes      | —       | Todoset Id          |
| `tracked`   | integer\[] | No       | —       | The tracked value   |
| `untracked` | integer\[] | No       | —       | The untracked value |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "todosetId": {
        "type": "integer",
        "description": "Todoset Id"
      },
      "tracked": {
        "type": "array",
        "items": {
          "type": "integer",
          "format": "int64"
        },
        "description": "The tracked value"
      },
      "untracked": {
        "type": "array",
        "items": {
          "type": "integer",
          "format": "int64"
        },
        "description": "The untracked value"
      }
    },
    "required": [
      "PCID",
      "todosetId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_update\_schedule\_entry

Update an existing schedule entry

**Parameters:**

| Parameter         | Type       | Required | Default | Description           |
| ----------------- | ---------- | -------- | ------- | --------------------- |
| `entryId`         | integer    | Yes      | —       | Entry Id              |
| `all_day`         | boolean    | No       | —       | All Day               |
| `description`     | string     | No       | —       | The description value |
| `ends_at`         | string     | No       | —       | Ends At               |
| `notify`          | boolean    | No       | —       | The notify value      |
| `participant_ids` | integer\[] | No       | —       | Participant Ids       |
| `starts_at`       | string     | No       | —       | Starts At             |
| `summary`         | string     | No       | —       | The summary value     |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "entryId": {
        "type": "integer",
        "description": "Entry Id"
      },
      "all_day": {
        "type": "boolean",
        "description": "All Day"
      },
      "description": {
        "type": "string",
        "description": "The description value"
      },
      "ends_at": {
        "type": "string",
        "description": "Ends At"
      },
      "notify": {
        "type": "boolean",
        "description": "The notify value"
      },
      "participant_ids": {
        "type": "array",
        "items": {
          "type": "integer",
          "format": "int64"
        },
        "description": "Participant Ids"
      },
      "starts_at": {
        "type": "string",
        "description": "Starts At"
      },
      "summary": {
        "type": "string",
        "description": "The summary value"
      }
    },
    "required": [
      "PCID",
      "entryId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_update\_schedule\_settings

Update schedule settings

**Parameters:**

| Parameter                 | Type    | Required | Default | Description             |
| ------------------------- | ------- | -------- | ------- | ----------------------- |
| `scheduleId`              | integer | Yes      | —       | Schedule Id             |
| `include_due_assignments` | boolean | Yes      | —       | Include Due Assignments |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "scheduleId": {
        "type": "integer",
        "description": "Schedule Id"
      },
      "include_due_assignments": {
        "type": "boolean",
        "description": "Include Due Assignments"
      }
    },
    "required": [
      "PCID",
      "scheduleId",
      "include_due_assignments"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_update\_timesheet\_entry

Update a timesheet entry

**Parameters:**

| Parameter     | Type    | Required | Default | Description           |
| ------------- | ------- | -------- | ------- | --------------------- |
| `entryId`     | integer | Yes      | —       | Entry Id              |
| `date`        | string  | No       | —       | The date value        |
| `description` | string  | No       | —       | The description value |
| `hours`       | string  | No       | —       | The hours value       |
| `person_id`   | integer | No       | —       | Person Id             |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "entryId": {
        "type": "integer",
        "description": "Entry Id"
      },
      "date": {
        "type": "string",
        "description": "The date value"
      },
      "description": {
        "type": "string",
        "description": "The description value"
      },
      "hours": {
        "type": "string",
        "description": "The hours value"
      },
      "person_id": {
        "type": "integer",
        "description": "Person Id"
      }
    },
    "required": [
      "PCID",
      "entryId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_update\_todo

Update an existing todo

**Parameters:**

| Parameter                   | Type       | Required | Default | Description               |
| --------------------------- | ---------- | -------- | ------- | ------------------------- |
| `todoId`                    | integer    | Yes      | —       | Todo Id                   |
| `assignee_ids`              | integer\[] | No       | —       | Assignee Ids              |
| `completion_subscriber_ids` | integer\[] | No       | —       | Completion Subscriber Ids |
| `content`                   | string     | No       | —       | The content value         |
| `description`               | string     | No       | —       | The description value     |
| `due_on`                    | string     | No       | —       | Due On                    |
| `notify`                    | boolean    | No       | —       | The notify value          |
| `starts_on`                 | string     | No       | —       | Starts On                 |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "todoId": {
        "type": "integer",
        "description": "Todo Id"
      },
      "assignee_ids": {
        "type": "array",
        "items": {
          "type": "integer",
          "format": "int64"
        },
        "description": "Assignee Ids"
      },
      "completion_subscriber_ids": {
        "type": "array",
        "items": {
          "type": "integer",
          "format": "int64"
        },
        "description": "Completion Subscriber Ids"
      },
      "content": {
        "type": "string",
        "description": "The content value"
      },
      "description": {
        "type": "string",
        "description": "The description value"
      },
      "due_on": {
        "type": "string",
        "description": "Due On"
      },
      "notify": {
        "type": "boolean",
        "description": "The notify value"
      },
      "starts_on": {
        "type": "string",
        "description": "Starts On"
      }
    },
    "required": [
      "PCID",
      "todoId"
    ]
  }
  ```
</Expandable>

***

## basecamp\_tasks\_update\_todolist\_or\_group

Update an existing todolist or todolist group The endpoint is polymorphic - updates either a Todolist or TodolistGroup

**Parameters:**

| Parameter     | Type    | Required | Default | Description                                         |
| ------------- | ------- | -------- | ------- | --------------------------------------------------- |
| `id`          | integer | Yes      | —       | The id value                                        |
| `description` | string  | No       | —       | Description (Todolist only, ignored for groups)     |
| `name`        | string  | No       | —       | Name (required for both Todolist and TodolistGroup) |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "id": {
        "type": "integer",
        "description": "The id value"
      },
      "description": {
        "type": "string",
        "description": "Description (Todolist only, ignored for groups)"
      },
      "name": {
        "type": "string",
        "description": "Name (required for both Todolist and TodolistGroup)"
      }
    },
    "required": [
      "PCID",
      "id"
    ]
  }
  ```
</Expandable>
