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

# Todoist

> What agents can do in Todoist at each access level, and how to connect, limit, and disconnect Todoist.

Connect Todoist so your agents can work in your Todoist account. You choose an access level for each account, and Squad refuses any agent action outside that level.

## Access levels

Each Todoist account has an access level: **Read-only**, **Read + write**, and **Full access**. Squad refuses any agent action outside that level. You can also narrow or block single agents under **Per-agent access**.

| Level                          | The connect window describes this level as                 | Actions agents can use |
| ------------------------------ | ---------------------------------------------------------- | ---------------------- |
| **Read-only**                  | "Read tasks and projects. Cannot create, edit, or delete." | 42 of 84               |
| **Read + write** (recommended) | "Read tasks and create new ones."                          | 74 of 84               |
| **Full access**                | "Read, create, edit, and delete tasks and projects."       | 84 of 84               |

**Read + write** is the recommended level. The connect window selects it for you, and you can choose another level.

The Todoist sign-in page asks you to approve full access to your account. This is expected. Squad does not narrow the sign-in. It checks every agent action against the level you chose, and it refuses actions outside that level.

## What agents can do at each level

Each level opens with a short summary in plain tasks, then lists every action it adds, grouped by what the action works on. You do not need to name actions. Ask in plain words, and the agent searches for the matching action.

<Tip>**Find an action.** Open a level and use your browser's find (Ctrl+F, or Cmd+F on a Mac) with a word from the task or part of a slug. Or ask your agent in plain words, for example "What can you do in my Todoist account?" The agent can search the Todoist actions for you.</Tip>

Each action shows its name, a one-line description where the Todoist action catalog has one, and its slug. The slug is the ID that agents use when they call the action.

<AccordionGroup>
  <Accordion title="Read-only">
    Agents can use 42 of the 84 Todoist actions at this level:

    * View and search projects
    * View and search tasks
    * View and search labels
    * View and search sections
    * View backups
    * View invitations
    * View templates
    * View users
    * View workspaces
    * View activities
    * View collaborators
    * View comments

    All 42 actions at this level:

    <AccordionGroup>
      <Accordion title="Activities (1)">
        | Action          | What it does                    | Slug                      |
        | --------------- | ------------------------------- | ------------------------- |
        | List activities | Get activity logs from Todoist. | `TODOIST_LIST_ACTIVITIES` |
      </Accordion>

      <Accordion title="Backups (2)">
        | Action              | What it does                                                        | Slug                          |
        | ------------------- | ------------------------------------------------------------------- | ----------------------------- |
        | Get backups         | List all available backup archives for the user.                    | `TODOIST_GET_BACKUPS`         |
        | Get special backups | List special backup archives for the authenticated user's projects. | `TODOIST_GET_SPECIAL_BACKUPS` |
      </Accordion>

      <Accordion title="Collaborators (1)">
        | Action                     | What it does                                                            | Slug                                 |
        | -------------------------- | ----------------------------------------------------------------------- | ------------------------------------ |
        | List project collaborators | Get all collaborators for a given project with cursor-based pagination. | `TODOIST_LIST_PROJECT_COLLABORATORS` |
      </Accordion>

      <Accordion title="Comments (2)">
        | Action           | What it does                                                                            | Slug                       |
        | ---------------- | --------------------------------------------------------------------------------------- | -------------------------- |
        | Get all comments | This tool retrieves all comments associated with a specific task or project in Todoist. | `TODOIST_GET_ALL_COMMENTS` |
        | Get comment v1   | Retrieve a single comment by ID using the v1 API.                                       | `TODOIST_GET_COMMENT_V1`   |
      </Accordion>

      <Accordion title="Filters (1)">
        | Action       | What it does                                 | Slug                   |
        | ------------ | -------------------------------------------- | ---------------------- |
        | List filters | List all filters for the authenticated user. | `TODOIST_LIST_FILTERS` |
      </Accordion>

      <Accordion title="Invitations (2)">
        | Action                             | What it does                                              | Slug                                         |
        | ---------------------------------- | --------------------------------------------------------- | -------------------------------------------- |
        | List pending workspace invitations | List pending invitation emails in a workspace.            | `TODOIST_LIST_PENDING_WORKSPACE_INVITATIONS` |
        | List workspace invitations         | List user emails with pending invitations to a workspace. | `TODOIST_LIST_WORKSPACE_INVITATIONS`         |
      </Accordion>

      <Accordion title="Labels (4)">
        | Action             | What it does                                                           | Slug                         |
        | ------------------ | ---------------------------------------------------------------------- | ---------------------------- |
        | Get personal label | Retrieve a personal label by its ID.                                   | `TODOIST_GET_PERSONAL_LABEL` |
        | List labels        | Get all user labels with pagination support.                           | `TODOIST_LIST_LABELS`        |
        | List shared labels | Retrieve shared label names from active tasks with pagination support. | `TODOIST_LIST_SHARED_LABELS` |
        | Search labels      | Search user labels by name with case-insensitive matching.             | `TODOIST_SEARCH_LABELS`      |
      </Accordion>

      <Accordion title="Plans (1)">
        | Action                     | What it does                                                 | Slug                                 |
        | -------------------------- | ------------------------------------------------------------ | ------------------------------------ |
        | Get workspace plan details | Retrieve details about a workspace's current plan and usage. | `TODOIST_GET_WORKSPACE_PLAN_DETAILS` |
      </Accordion>

      <Accordion title="Projects (8)">
        | Action                           | What it does                                                                   | Slug                                       |
        | -------------------------------- | ------------------------------------------------------------------------------ | ------------------------------------------ |
        | Get all projects                 | Get all projects from a user's Todoist account.                                | `TODOIST_GET_ALL_PROJECTS`                 |
        | Get project                      | Retrieve a specific project by its ID using Todoist API v1.                    | `TODOIST_GET_PROJECT`                      |
        | Get project full                 | Retrieve full project data including all sections, tasks, and collaborators.   | `TODOIST_GET_PROJECT_FULL`                 |
        | List archived projects           | Get all archived projects from Todoist.                                        | `TODOIST_LIST_ARCHIVED_PROJECTS`           |
        | List archived workspace projects | List all archived projects in a workspace.                                     | `TODOIST_LIST_ARCHIVED_WORKSPACE_PROJECTS` |
        | List workspace active projects   | List all active workspace projects.                                            | `TODOIST_LIST_WORKSPACE_ACTIVE_PROJECTS`   |
        | List workspace archived projects | Get archived projects in a workspace.                                          | `TODOIST_LIST_WORKSPACE_ARCHIVED_PROJECTS` |
        | Search projects                  | Search active user projects by name with support for wildcards and pagination. | `TODOIST_SEARCH_PROJECTS`                  |
      </Accordion>

      <Accordion title="Reports (1)">
        | Action                 | What it does                                                               | Slug                             |
        | ---------------------- | -------------------------------------------------------------------------- | -------------------------------- |
        | Get productivity stats | Retrieve comprehensive productivity statistics for the authenticated user. | `TODOIST_GET_PRODUCTIVITY_STATS` |
      </Accordion>

      <Accordion title="Roles and permissions (1)">
        | Action                  | What it does                                                                   | Slug                              |
        | ----------------------- | ------------------------------------------------------------------------------ | --------------------------------- |
        | Get project permissions | Retrieve all available roles and their associated actions in Todoist projects. | `TODOIST_GET_PROJECT_PERMISSIONS` |
      </Accordion>

      <Accordion title="Sections (4)">
        | Action                 | What it does                                                              | Slug                             |
        | ---------------------- | ------------------------------------------------------------------------- | -------------------------------- |
        | Get section v1         | Retrieve a specific section by its ID using Todoist v1 API.               | `TODOIST_GET_SECTION_V1`         |
        | List archived sections | Retrieve all archived sections for a specific project in Todoist.         | `TODOIST_LIST_ARCHIVED_SECTIONS` |
        | List sections          | Get all active sections for the user, with optional filtering by project. | `TODOIST_LIST_SECTIONS`          |
        | Search sections        | Search active sections by name, optionally filtered by project.           | `TODOIST_SEARCH_SECTIONS`        |
      </Accordion>

      <Accordion title="Tasks (7)">
        | Action                                 | What it does                                                                | Slug                                             |
        | -------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------ |
        | Filter tasks                           | Get all tasks matching the filter.                                          | `TODOIST_FILTER_TASKS`                           |
        | Get all tasks                          | Fetches all INCOMPLETE tasks from Todoist and returns their details.        | `TODOIST_GET_ALL_TASKS`                          |
        | Get completed tasks by completion date | Retrieve completed tasks within a specified completion date window.         | `TODOIST_GET_COMPLETED_TASKS_BY_COMPLETION_DATE` |
        | Get task                               | DEPRECATED: Use TODOIST\_GET\_TASK2 instead.                                | `TODOIST_GET_TASK`                               |
        | Get task2                              | Retrieve a single active (non-completed) task by ID using API v1.           | `TODOIST_GET_TASK2`                              |
        | List completed tasks                   | Retrieve all completed tasks with optional project filtering.               | `TODOIST_LIST_COMPLETED_TASKS`                   |
        | List completed tasks by due date       | Retrieve completed tasks within a specified due date range (up to 6 weeks). | `TODOIST_LIST_COMPLETED_TASKS_BY_DUE_DATE`       |
      </Accordion>

      <Accordion title="Templates (2)">
        | Action                  | What it does                                          | Slug                              |
        | ----------------------- | ----------------------------------------------------- | --------------------------------- |
        | Export template as file | Export a Todoist project as a CSV template file.      | `TODOIST_EXPORT_TEMPLATE_AS_FILE` |
        | Export template as URL  | Export a Todoist project as a shareable template URL. | `TODOIST_EXPORT_TEMPLATE_AS_URL`  |
      </Accordion>

      <Accordion title="Users (2)">
        | Action               | What it does                                                 | Slug                           |
        | -------------------- | ------------------------------------------------------------ | ------------------------------ |
        | Get user             | Retrieve information about the currently authenticated user. | `TODOIST_GET_USER`             |
        | List workspace users | List users in workspace(s).                                  | `TODOIST_LIST_WORKSPACE_USERS` |
      </Accordion>

      <Accordion title="Workspaces (2)">
        | Action                          | What it does                                                                | Slug                                      |
        | ------------------------------- | --------------------------------------------------------------------------- | ----------------------------------------- |
        | List all invitations workspaces | Return a list containing details of all pending invitations to a workspace. | `TODOIST_LIST_ALL_INVITATIONS_WORKSPACES` |
        | List joinable workspaces        | Get workspaces the user can join.                                           | `TODOIST_LIST_JOINABLE_WORKSPACES`        |
      </Accordion>

      <Accordion title="Other actions (1)">
        | Action          | What it does                                 | Slug                      |
        | --------------- | -------------------------------------------- | ------------------------- |
        | Get ID mappings | Translate IDs between Todoist API v1 and v2. | `TODOIST_GET_ID_MAPPINGS` |
      </Accordion>
    </AccordionGroup>
  </Accordion>

  <Accordion title="Read + write (recommended)">
    Agents can use 74 of the 84 Todoist actions at this level: everything in **Read-only**, plus:

    * Create and update tasks
    * Create, update, and archive projects
    * Create and update sections
    * Create templates
    * Create collaborators
    * Update comments
    * Create files
    * Create labels
    * Update settings
    * Create workspaces

    The 32 actions that this level adds to **Read-only**:

    <AccordionGroup>
      <Accordion title="Collaborators (1)">
        | Action                      | What it does                                         | Slug                                  |
        | --------------------------- | ---------------------------------------------------- | ------------------------------------- |
        | Invite project collaborator | Invite a collaborator to a Todoist project by email. | `TODOIST_INVITE_PROJECT_COLLABORATOR` |
      </Accordion>

      <Accordion title="Comments (2)">
        | Action            | What it does                                                    | Slug                        |
        | ----------------- | --------------------------------------------------------------- | --------------------------- |
        | Create comment v1 | Create a new comment on a project or task using Todoist API v1. | `TODOIST_CREATE_COMMENT_V1` |
        | Update comment2   | Update a comment by ID and return its content via v1 API.       | `TODOIST_UPDATE_COMMENT2`   |
      </Accordion>

      <Accordion title="Files (1)">
        | Action      | What it does              | Slug                  |
        | ----------- | ------------------------- | --------------------- |
        | Upload file | Upload a file to Todoist. | `TODOIST_UPLOAD_FILE` |
      </Accordion>

      <Accordion title="Labels (4)">
        | Action                  | What it does                                                | Slug                              |
        | ----------------------- | ----------------------------------------------------------- | --------------------------------- |
        | Create label            | DEPRECATED: Use TODOIST\_CREATE\_LABEL\_V1 instead.         | `TODOIST_CREATE_LABEL`            |
        | Create label v1         | Create a new personal label using API v1.                   | `TODOIST_CREATE_LABEL_V1`         |
        | Rename shared labels v1 | Rename a shared label across all active tasks using API v1. | `TODOIST_RENAME_SHARED_LABELS_V1` |
        | Update label v1 second  | Update an existing label using API v1.                      | `TODOIST_UPDATE_LABEL_V1_SECOND`  |
      </Accordion>

      <Accordion title="Projects (6)">
        | Action             | What it does                                                  | Slug                         |
        | ------------------ | ------------------------------------------------------------- | ---------------------------- |
        | Archive project2   | Archive a project using Todoist API v1.                       | `TODOIST_ARCHIVE_PROJECT2`   |
        | Create project     | DEPRECATED: Use TODOIST\_TODOIST\_CREATE\_PROJECT2 instead.   | `TODOIST_CREATE_PROJECT`     |
        | Create project2    | Create a new project in Todoist using the unified API v1.     | `TODOIST_CREATE_PROJECT2`    |
        | Unarchive project2 | Unarchive a previously archived Todoist project using API v1. | `TODOIST_UNARCHIVE_PROJECT2` |
        | Update project     | DEPRECATED: Use TODOIST\_TODOIST\_UPDATE\_PROJECT2 instead.   | `TODOIST_UPDATE_PROJECT`     |
        | Update project2    | Update a project's properties using Todoist API v1.           | `TODOIST_UPDATE_PROJECT2`    |
      </Accordion>

      <Accordion title="Sections (4)">
        | Action            | What it does                                                | Slug                        |
        | ----------------- | ----------------------------------------------------------- | --------------------------- |
        | Create section    | DEPRECATED: Use TODOIST\_CREATE\_SECTION\_V1 instead.       | `TODOIST_CREATE_SECTION`    |
        | Create section v1 | Create a new section within a project using API v1.         | `TODOIST_CREATE_SECTION_V1` |
        | Update section    | DEPRECATED: Use TODOIST\_TODOIST\_UPDATE\_SECTION2 instead. | `TODOIST_UPDATE_SECTION`    |
        | Update section2   | Update an existing section by its ID using Todoist v1 API.  | `TODOIST_UPDATE_SECTION2`   |
      </Accordion>

      <Accordion title="Settings (1)">
        | Action                      | What it does                                       | Slug                                  |
        | --------------------------- | -------------------------------------------------- | ------------------------------------- |
        | Update notification setting | Update notification settings for the current user. | `TODOIST_UPDATE_NOTIFICATION_SETTING` |
      </Accordion>

      <Accordion title="Tasks (9)">
        | Action             | What it does                                                                                             | Slug                         |
        | ------------------ | -------------------------------------------------------------------------------------------------------- | ---------------------------- |
        | Bulk create tasks  | Create many tasks in one request using Todoist's Sync batching.                                          | `TODOIST_BULK_CREATE_TASKS`  |
        | Close task v1      | Close (complete) a task in Todoist using API v1.                                                         | `TODOIST_CLOSE_TASK_V1`      |
        | Create task        | Create a new task in Todoist using the unified API v1.                                                   | `TODOIST_CREATE_TASK`        |
        | Move task          | Move a task to another project, section, or parent task while preserving task identity and metadata.     | `TODOIST_MOVE_TASK`          |
        | Move task rest API | Move a task to another project, section, or parent task using the REST API.                              | `TODOIST_MOVE_TASK_REST_API` |
        | Quick add task     | Add tasks using natural language parsing similar to the official Todoist clients.                        | `TODOIST_QUICK_ADD_TASK`     |
        | Reopen task2       | Reopen a completed task in Todoist using API v1.                                                         | `TODOIST_REOPEN_TASK2`       |
        | Reorder tasks      | Reorder tasks deterministically by updating child\_order in bulk via the Sync API item\_reorder command. | `TODOIST_REORDER_TASKS`      |
        | Update task        | Update an existing task's properties.                                                                    | `TODOIST_UPDATE_TASK`        |
      </Accordion>

      <Accordion title="Templates (2)">
        | Action                                 | What it does                                                                | Slug                                             |
        | -------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------ |
        | Import template into project by ID     | Import a template from Todoist's template gallery into an existing project. | `TODOIST_IMPORT_TEMPLATE_INTO_PROJECT_BY_ID`     |
        | Import template into project from file | Import a CSV template into an existing Todoist project from a file.         | `TODOIST_IMPORT_TEMPLATE_INTO_PROJECT_FROM_FILE` |
      </Accordion>

      <Accordion title="Workspaces (1)">
        | Action        | What it does                       | Slug                    |
        | ------------- | ---------------------------------- | ----------------------- |
        | Add workspace | Create a new workspace in Todoist. | `TODOIST_ADD_WORKSPACE` |
      </Accordion>

      <Accordion title="Other actions (1)">
        | Action | What it does                                                              | Slug           |
        | ------ | ------------------------------------------------------------------------- | -------------- |
        | Sync   | Sync data with Todoist server, supporting both read and write operations. | `TODOIST_SYNC` |
      </Accordion>
    </AccordionGroup>
  </Accordion>

  <Accordion title="Full access">
    Agents can use 84 of the 84 Todoist actions at this level: everything in **Read + write**, plus:

    * Delete comments
    * Delete files
    * Delete projects
    * Delete sections
    * Delete tasks

    The 10 actions that this level adds to **Read + write**:

    | Works on       | Action                 | What it does                                                             | Slug                             |
    | -------------- | ---------------------- | ------------------------------------------------------------------------ | -------------------------------- |
    | **Comments**   | Delete comment         | Delete a specific comment from Todoist by its ID.                        | `TODOIST_DELETE_COMMENT`         |
    | **Files**      | Delete upload          | Delete an uploaded file from Todoist.                                    | `TODOIST_DELETE_UPLOAD`          |
    | **Labels**     | Delete label v1        | Delete a personal label using API v1.                                    | `TODOIST_DELETE_LABEL_V1`        |
    |                | Remove shared label v1 | Remove a shared label from all active tasks using API v1.                | `TODOIST_REMOVE_SHARED_LABEL_V1` |
    | **Projects**   | Delete project2        | Delete a project and all of its sections and tasks using Todoist API v1. | `TODOIST_DELETE_PROJECT2`        |
    | **Sections**   | Delete section2        | Delete a section and all tasks within it.                                | `TODOIST_DELETE_SECTION2`        |
    | **Tasks**      | Close task             | DEPRECATED: Use TODOIST\_CLOSE\_TASK\_V1 instead.                        | `TODOIST_CLOSE_TASK`             |
    |                | Delete task            | Delete a specific task from Todoist.                                     | `TODOIST_DELETE_TASK`            |
    |                | Delete task v1         | DEPRECATED: Use TODOIST\_DELETE\_TASK instead.                           | `TODOIST_DELETE_TASK_V1`         |
    | **Workspaces** | Update workspace logo  | Upload an image as the workspace logo or delete the existing logo.       | `TODOIST_UPDATE_WORKSPACE_LOGO`  |
  </Accordion>
</AccordionGroup>

## Connect Todoist

Before you start:

* You need a Todoist account that you can sign in to.
* Your Squad subscription must be active. Squad does not connect apps while the subscription is not active.

<Steps>
  <Step title="Open Integrations">
    Open **Settings** > **Integrations**.
  </Step>

  <Step title="Add an integration">
    On the **Connected apps** tab, click **+ Add integration**.
  </Step>

  <Step title="Find Todoist">
    Find **Todoist** in the catalog and click it. You can type the name in **Search the catalog…**.
  </Step>

  <Step title="Choose an access level">
    Under **Default scope**, choose an access level. This level applies to every agent.
  </Step>

  <Step title="Click Connect Todoist">
    Click **Connect Todoist**. The Todoist sign-in page opens in a new tab.
  </Step>

  <Step title="Sign in to Todoist">
    Sign in to Todoist and approve the request.
  </Step>
</Steps>

Check that it works: Todoist shows under **YOUR CONNECTIONS**, with a row for the account and its access level.

## Change the access level

1. Under **YOUR CONNECTIONS**, find the Todoist account.
2. Open the account menu (⋯) and click **Manage scope**.
3. Under **Default scope**, choose the new level.
4. Click **Save access**.

The change does not need a new sign-in. Agents get the new level from their next call.

## Set access for one agent

Every agent uses the account's level unless you set something else for it. You can narrow one agent to a lower level, or block it.

1. Under **YOUR CONNECTIONS**, open the account menu (⋯) on the Todoist account.
2. Click **Manage scope**.
3. Under **Per-agent access**, find the agent.
4. Choose the **Default** option to follow the account's level, choose a lower level, or choose **No access**.
5. Click **Save access**.

An agent never gets more than the account's level, even if you choose a higher level for it. Changes apply from the agent's next call. An agent with **No access** does not see the account.

## Use more than one Todoist account

Click **+ Account** on the Todoist card to connect another account. Agents use the primary account unless they are asked to use a specific one.

* After you click **+ Account**, follow the connect steps above.
* Each account has its own access level.
* The first account you connect becomes the primary account. It shows **★ PRIMARY**.
* To change the primary account, open the account menu (⋯) and click **Make primary**.
* To tell accounts apart, open the account menu (⋯) and click **Rename**.

## Reconnect or disconnect

Reconnect when the connection has expired, or when you need to change what the account can reach on the Todoist side:

1. Open the account menu (⋯) and click **Reconnect**.
2. Click **Reauthorize on Todoist**.
3. Sign in to Todoist and approve the request.

Reconnect signs in to the same account again. It does not add a second connection.

Open the account menu (⋯) on the Todoist account and click **Disconnect**. Agents lose access to that account at once.

<Warning>**Disconnect** acts at once, with no confirmation step. If it was the primary account, another connected Todoist account becomes primary.</Warning>

## Costs

Todoist actions do not use Squad credits. Connected apps never use credits. For what does use credits, see [What Squad costs](/docs/costs).

## Troubleshooting

An agent reports that an action is not allowed on this account.

* Cause: the action is outside the account's access level, or outside the level you set for that agent.
* Fix: choose a higher level in **Manage scope**, or change the agent's row under **Per-agent access**.

An agent says it has no access to Todoist, or it does not see the account.

* Cause: the agent is set to **No access** under **Per-agent access**, or the account is not connected.
* Fix: open **Manage scope** and change the agent's row. If the account is missing, connect it again.

Connecting or saving fails with "Your subscription isn't active."

* Cause: your Squad subscription is not active.
* Fix: resubscribe. See [Manage your subscription](/docs/billing).

An agent says the Todoist connection has expired.

* Cause: the sign-in for that account is no longer valid.
* Fix: use **Reconnect** on the account.

## Common questions

<AccordionGroup>
  <Accordion title="Can I limit what agents can do in Todoist?">
    Each Todoist account has an access level: **Read-only**, **Read + write**, and **Full access**. Squad refuses any agent action outside that level. You can also narrow or block single agents under **Per-agent access**.
  </Accordion>

  <Accordion title="Can I connect more than one Todoist account?">
    Click **+ Account** on the Todoist card to connect another account. Agents use the primary account unless they are asked to use a specific one.
  </Accordion>

  <Accordion title="How do I disconnect Todoist?">
    Open the account menu (⋯) on the Todoist account and click **Disconnect**. Agents lose access to that account at once.
  </Accordion>
</AccordionGroup>

## Related pages

<CardGroup cols={2}>
  <Card title="Connect apps" icon="plug" href="/docs/integrations" />

  <Card title="Add an MCP server or an API key" icon="server" href="/docs/custom-integrations">
    Use this when an action you need is not in this app.
  </Card>
</CardGroup>
