# Todoist

Todoist is a task management tool allowing users to create to-do lists, set deadlines, and collaborate on projects with reminders and cross-platform syncing

- **Category:** task management
- **Auth:** OAUTH2
- **Composio Managed App Available?** Yes
- **Tools:** 84
- **Triggers:** 1
- **Slug:** `TODOIST`
- **Version:** 20260316_00

## Tools

### Add Workspace

**Slug:** `TODOIST_ADD_WORKSPACE`

Tool to create a new workspace in Todoist. Use when you need a separate workspace to organize projects. Generates UUID and temp_id automatically.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `icon` | string | No | Icon for the workspace (optional). |
| `name` | string | Yes | Name of the new workspace. |
| `uuid` | string | No | UUID for this command for idempotency. If omitted, a new UUID is generated. |
| `color` | integer | No | Color ID for the workspace (optional). |
| `temp_id` | string | No | Temporary identifier to map the command to the created resource. If omitted, a new UUID is generated. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Archive Project (API v1)

**Slug:** `TODOIST_ARCHIVE_PROJECT2`

Tool to archive a project using Todoist API v1. For personal projects, archives it for the initiating user. For workspace projects, archives it for all workspace users.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | String ID of the project to archive. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Bulk Create Tasks

**Slug:** `TODOIST_BULK_CREATE_TASKS`

Create many tasks in one request using Todoist's Sync batching. Use when scaffolding projects or creating multiple tasks at once to reduce round trips.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tasks` | array | Yes | Array of task specifications to create. Each task must have at minimum a 'content' field. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Close Task (Deprecated)

**Slug:** `TODOIST_CLOSE_TASK`

DEPRECATED: Use TODOIST_CLOSE_TASK_V1 instead. This tool marks an existing task as completed in Todoist. It requires the `task_id` of the task to be closed. Closing an already-completed task returns an error; check task state first if idempotent behavior is needed.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_id` | string | Yes | The ID of the task to close (alphanumeric format from unified API v1). Verify the ID belongs to the intended task before calling, as completing the wrong task cannot be undone easily; use TODOIST_GET_ALL_TASKS or TODOIST_GET_TASK to confirm identity. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Close Task (API v1)

**Slug:** `TODOIST_CLOSE_TASK_V1`

Tool to close (complete) a task in Todoist using API v1. Use when you need to mark a task as complete using the v1 endpoint.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_id` | string | Yes | String ID of the task to close. Regular tasks are marked complete and moved to history along with their subtasks. Tasks with recurring due dates are scheduled to their next occurrence. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Comment (API v1)

**Slug:** `TODOIST_CREATE_COMMENT_V1`

Tool to create a new comment on a project or task using Todoist API v1. Use when you need to add a note to a specific task or project. IMPORTANT: You must provide EXACTLY ONE of task_id or project_id - these parameters are mutually exclusive. - To comment on a task, provide task_id (and omit project_id) - To comment on a project, provide project_id (and omit task_id) - Providing both task_id AND project_id will cause an error.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `content` | string | Yes | The content of the comment. Must be between 1 and 15000 characters. |
| `task_id` | string | No | The ID of the task to attach the comment to. IMPORTANT: Provide EITHER task_id OR project_id, but NOT BOTH. These parameters are mutually exclusive. |
| `attachment` | object | No | Attachment metadata for comments in API v1. |
| `project_id` | string | No | The ID of the project to attach the comment to. IMPORTANT: Provide EITHER project_id OR task_id, but NOT BOTH. These parameters are mutually exclusive. |
| `uids_to_notify` | array | No | Optional list of user IDs to notify about this comment. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Label (Deprecated)

**Slug:** `TODOIST_CREATE_LABEL`

DEPRECATED: Use TODOIST_CREATE_LABEL_V1 instead. Creates a new label.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the label. Must be a non-empty string. |
| `color` | integer ("30" | "31" | "32" | "33" | "34" | "35" | "36" | "37" | "38" | "39" | "40" | "41" | "42" | "43" | "44" | "45" | "46" | "47" | "48" | "49") | No | Color of the label. See https://developer.todoist.com/guides/#colors for available colors. Only supported integer codes from that reference are valid; arbitrary integers cause validation errors. |
| `order` | integer | No | The order of the label in the list. |
| `is_favorite` | boolean | No | Whether the label is a favorite. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Label (API v1)

**Slug:** `TODOIST_CREATE_LABEL_V1`

Tool to create a new personal label using API v1. Use when you need to add a new label to organize tasks.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the new label. Must be between 1 and 128 characters. |
| `color` | string | No | Label color. Can be a color name (e.g., 'blue', 'red') or a color code (integer). Defaults to 'charcoal' if not specified. |
| `order` | integer | No | Position of the new label in the label list. Used by clients to sort labels. |
| `is_favorite` | boolean | No | Whether the label is marked as a favorite. Defaults to false if not specified. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Project (Deprecated)

**Slug:** `TODOIST_CREATE_PROJECT`

DEPRECATED: Use TODOIST_TODOIST_CREATE_PROJECT2 instead. Creates a new project in Todoist. Project names are not unique; use the returned project_id for subsequent operations to avoid ambiguous matches.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the project. Must be non-empty; empty values cause validation failures. |
| `color` | string ("berry_red" | "red" | "orange" | "yellow" | "olive_green" | "lime_green" | "green" | "mint_green" | "teal" | "sky_blue" | "light_blue" | "blue" | "grape" | "violet" | "lavender" | "magenta" | "salmon" | "charcoal" | "grey" | "taupe") | No | Enum for project colors. Names are based on Todoist's standard palette. |
| `favorite` | boolean | No | Whether the project should be marked as a favorite. |
| `parent_id` | string | No | ID of the parent project to create a sub-project. If not set, it's a top-level project. Must reference an existing project ID; an incorrect value buries the project deep in the hierarchy. |
| `view_style` | string ("list" | "board") | No | Enum for project view styles. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Project (API v1)

**Slug:** `TODOIST_CREATE_PROJECT2`

Tool to create a new project in Todoist using the unified API v1. Use when you need to create a new project with specific parameters like name, color, or parent project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The project name. This is the only required field. |
| `color` | string | No | Project color. Can be either a color name (e.g., 'berry_red', 'blue') or a numeric color code. Default is 'charcoal'. |
| `parent_id` | string | No | Parent project ID. If provided, creates this project as a sub-project. Can be either a string or integer ID. |
| `view_style` | string | No | View style of the project. Can be 'list' or 'board'. |
| `description` | string | No | Description of the project. Optional field. |
| `is_favorite` | boolean | No | Whether the project is a favorite for the user. Default is false. |
| `workspace_id` | integer | No | Workspace ID. If provided, creates a workspace project instead of a personal project. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Section (Deprecated)

**Slug:** `TODOIST_CREATE_SECTION`

DEPRECATED: Use TODOIST_CREATE_SECTION_V1 instead. Tool to create a new section within a specific project. Use when you need to group tasks under a new heading in a project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the new section. This will be the section heading in the project. |
| `order` | integer | No | Position of the new section in the project. Lower values appear first. If not specified, the section will be added to the end. |
| `project_id` | string | Yes | ID of the project to add the section to. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Section (API v1)

**Slug:** `TODOIST_CREATE_SECTION_V1`

Tool to create a new section within a project using API v1. Use when you need to organize tasks under a new heading in a project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the new section. This will be the section heading in the project. |
| `order` | integer | No | Position of the new section in the project. Lower values appear first. If not specified, the section will be added to the end. |
| `project_id` | string | Yes | ID of the project to add the section to. Must be a new-format alphanumeric string ID. Legacy numeric project IDs are not supported by the v1 API. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create task

**Slug:** `TODOIST_CREATE_TASK`

Create a new task in Todoist using the unified API v1. This action allows users to create tasks with various parameters including content, due dates, priority, and more. The task can be created in a specific project, section, or as a subtask of another task. Bulk creation may trigger HTTP 429; honor Retry-After response headers.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `order` | integer | No | Non-zero integer value used to sort tasks under the same parent. |
| `labels` | array | No | The task's labels (list of names for personal/shared labels). Labels must already exist in Todoist; referencing non-existent labels may fail silently. |
| `content` | string | Yes | Task content/title. Can contain markdown-formatted text and hyperlinks. Do NOT include due dates or times in this field - use due_string instead. |
| `due_date` | string | No | Specific date in YYYY-MM-DD format relative to user's timezone. Use this for exact dates without time. For natural language dates, use due_string instead. Only one due_* field can be used at a time (except due_lang). Cannot express recurrence; one-off tasks only. Use due_string (e.g., 'every Friday') for recurring schedules. |
| `due_lang` | string | No | 2-letter ISO 639-1 language code for parsing due_string. Required when due_string is in a language other than English. Supported codes: da (Danish), de (German), en (English), es (Spanish), fi (Finnish), fr (French), it (Italian), ja (Japanese), ko (Korean), nb (Norwegian), nl (Dutch), pl (Polish), pt (Portuguese), ru (Russian), sv (Swedish), tw (Traditional Chinese), zh (Chinese). |
| `duration` | integer | No | Task duration amount as a positive integer. Must be used together with duration_unit. Use this field for task duration instead of embedding 'for X minutes' in due_string. Example: for a 15-minute task, set duration=15 and duration_unit='minute'. |
| `priority` | integer | No | Task priority from 1 (normal) to 4 (urgent). |
| `parent_id` | string | No | Parent task ID for creating subtasks. Use IDs from TODOIST_GET_ALL_TASKS or TODOIST_GET_ACTIVE_TASK. |
| `due_string` | string | No | Human-defined due date in arbitrary format. Accepts natural language expressions like 'tomorrow', 'next Monday at 3pm', 'in 2 hours', 'every Friday'. Also accepts formatted dates like 'Jan 21, 2026' or ISO dates like '2026-01-21'. Value is interpreted using local time. IMPORTANT: If the due string is in a language other than English (e.g., 'esta semana' in Portuguese, 'mañana' in Spanish, 'demain' in French), you MUST also set the due_lang field with the appropriate 2-letter language code (e.g., 'pt' for Portuguese, 'es' for Spanish, 'fr' for French, 'de' for German), otherwise the API will reject it with 'Invalid date format'. Do NOT include duration phrases like 'for X minutes' or 'for X days' in this field - use the separate duration and duration_unit fields instead. If duration is included, it will be automatically extracted and applied to the duration fields. Only one due_* field can be used at a time (except due_lang). |
| `project_id` | string | No | Project ID where the task will be created. Use IDs from TODOIST_GET_ALL_PROJECTS or TODOIST_CREATE_PROJECT. If not set, task is added to the user's Inbox. Project names are not unique; always use numeric IDs. |
| `section_id` | string | No | Section ID to put task into. Use IDs from TODOIST_GET_ALL_SECTIONS. |
| `assignee_id` | string | No | The responsible user ID for shared tasks (numeric format). |
| `description` | string | No | Additional notes or details about the task. Can contain markdown-formatted text and hyperlinks. IMPORTANT: Do NOT include due dates, times, or scheduling information here - use the due_string field for natural language dates (e.g., 'tomorrow at 2pm') or due_date/due_datetime for specific dates. |
| `due_datetime` | string | No | Specific date and time in RFC3339 format in UTC. Use this for exact date and time. Only one due_* field can be used at a time (except due_lang). Cannot express recurrence; one-off tasks only. Use due_string for recurring schedules. |
| `duration_unit` | string ("minute" | "day") | No | Units for task duration in Todoist. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Comment

**Slug:** `TODOIST_DELETE_COMMENT`

Tool to delete a specific comment from Todoist by its ID. Use when you need to permanently remove a comment.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `comment_id` | string | Yes | The ID of the comment to delete. Todoist supports alphanumeric comment IDs (e.g., '6fvWm92qwCcwhq7W'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Label (V1)

**Slug:** `TODOIST_DELETE_LABEL_V1`

Tool to delete a personal label using API v1. Use when you need to permanently remove a label by its ID. All instances of the label will be removed from tasks.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `label_id` | string | Yes | The ID of the personal label to delete. All instances of the label will be removed from tasks. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Project (API v1)

**Slug:** `TODOIST_DELETE_PROJECT2`

Tool to delete a project and all of its sections and tasks using Todoist API v1. Use when you need to permanently remove a project by its ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | The ID of the project to delete. Can be numeric or alphanumeric format. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Section (v1)

**Slug:** `TODOIST_DELETE_SECTION2`

Tool to delete a section and all tasks within it. Use when you need to permanently remove a section by its ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `section_id` | string | Yes | ID of the section to delete. This will delete the section and all tasks within it. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Task

**Slug:** `TODOIST_DELETE_TASK`

Tool to delete a specific task from Todoist. Permanently removes the task and all its subtasks with no recycle bin or undo option. Confirm with the user before executing, especially for bulk deletions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_id` | string | Yes | The ID of the task to delete. Todoist supports both numeric IDs (e.g., '2995104339') and alphanumeric IDs (e.g., '6X4Vw2Hfmg73Q2XR'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Task (API v1)

**Slug:** `TODOIST_DELETE_TASK_V1`

DEPRECATED: Use TODOIST_DELETE_TASK instead. Tool to delete a specific task from Todoist using API v1. Use when you need to permanently remove a task by its ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_id` | string | Yes | The ID of the task to delete. Todoist supports both numeric IDs (e.g., '2995104339') and alphanumeric IDs (e.g., '6fvWm74vJ773g5p4'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Upload

**Slug:** `TODOIST_DELETE_UPLOAD`

Tool to delete an uploaded file from Todoist. Use when you need to remove a file that was previously uploaded.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `file_url` | string | Yes | The URL of the file to delete. This should be the full URL of the file as returned when it was uploaded (e.g., 'https://files.todoist.com/...'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Export Template As File

**Slug:** `TODOIST_EXPORT_TEMPLATE_AS_FILE`

Tool to export a Todoist project as a CSV template file. Use when you need to download a project template as a file for backup or sharing.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | The ID of the project to export as a template CSV file (alphanumeric V2 format, not numeric V1 IDs). Use TODOIST_GET_ALL_PROJECTS to get valid project IDs. |
| `use_relative_dates` | boolean | No | Whether to use relative dates in the template (e.g., 'tomorrow' instead of specific dates). Defaults to true. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Export Template As URL

**Slug:** `TODOIST_EXPORT_TEMPLATE_AS_URL`

Tool to export a Todoist project as a shareable template URL. Use when you need to share a project structure or create copies from a template.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | The ID of the project to export as a template (alphanumeric V2 format, not numeric V1 IDs). Use TODOIST_GET_ALL_PROJECTS to get valid project IDs. |
| `use_relative_dates` | boolean | No | Whether to use relative dates in the template (e.g., 'tomorrow' instead of specific dates). Defaults to true. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Filter Tasks

**Slug:** `TODOIST_FILTER_TASKS`

Tool to get all tasks matching the filter. Use when you need to retrieve tasks based on specific filter criteria. This is a paginated endpoint using cursor-based pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `lang` | string | No | IETF language tag defining what language filter is written in, if differs from default English. |
| `limit` | integer | No | The number of objects to return in a page. Default is 50. |
| `query` | string | Yes | Filter tasks using any supported filter syntax. IMPORTANT: Filter terms must be valid Todoist keywords or reference ACTUAL EXISTING entities in the user's account. Multiple filters using comma operator (,) are NOT supported. Valid filter types: (1) Predefined keywords: 'today', 'tomorrow', 'yesterday', 'overdue', 'no date', 'no due date', 'recurring', 'subtask', 'all'. (2) Priority: 'p1' (urgent), 'p2', 'p3', 'p4' (normal), 'no priority'. (3) Projects: '#ProjectName' or '##ProjectName' (includes subprojects) - project must exist in user's account. (4) Labels: '@LabelName' or 'no labels' - label must exist in user's account. (5) Relative dates: '7 days' (due in next 7 days), '-7 days' (dated in past 7 days), 'next 5 days'. (6) Date filters: 'due before: YYYY-MM-DD', 'due after: YYYY-MM-DD', 'date before:', 'date after:'. (7) Created/deadline: 'created after: -14 days', 'deadline: YYYY-MM-DD', 'deadline before:', 'no deadline'. (8) Search: 'search: keyword' to find tasks containing specific text. Multiple searches can be combined: 'search: meeting \| search: call'. Logical operators: '&' (AND), '\|' (OR), '!' (NOT). |
| `cursor` | string | No | Cursor for pagination. Provide the next_cursor value from previous response to get next page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get All Comments

**Slug:** `TODOIST_GET_ALL_COMMENTS`

This tool retrieves all comments associated with a specific task or project in Todoist. You must provide exactly one of task_id or project_id (they are mutually exclusive - do not provide both). Returns a JSON array of comment objects with details such as id, posted_at, content, and attachment information.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_id` | string | No | The ID of the task for which to retrieve comments. Mutually exclusive with project_id - provide only one, not both. |
| `project_id` | string | No | The ID of the project for which to retrieve comments. Mutually exclusive with task_id - provide only one, not both. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get all projects

**Slug:** `TODOIST_GET_ALL_PROJECTS`

Get all projects from a user's Todoist account. Retrieves all active (non-archived) projects; use TODOIST_LIST_ARCHIVED_WORKSPACE_PROJECTS for archived ones. Response nests the list under data.projects, with fields including project_id, name, color, parent project, sharing status, and is_inbox_project flag. Always reference projects by project_id — names are non-unique and may be localized. Detect the Inbox via is_inbox_project, not by name. Results are a point-in-time snapshot; re-call after structural changes before relying on cached project_ids. In large accounts, paginate until no next-page token remains to avoid missing projects. Check existing projects before creating new ones to prevent duplicates.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get All Tasks

**Slug:** `TODOIST_GET_ALL_TASKS`

Fetches all INCOMPLETE tasks from Todoist and returns their details. Supports cursor-based pagination. IMPORTANT LIMITATIONS: - This endpoint only returns active (incomplete) tasks - Cannot retrieve completed tasks - use a different endpoint for that - Filter queries using 'completed', '!completed', or 'completed after' will fail - Project/label references must use ACTUAL EXISTING names from the user's account - Arbitrary text in filters causes 400 errors - use 'search: keyword' for text search Common use cases: - Get all tasks: no filter - Get today's tasks: filter="today" - Get overdue tasks: filter="overdue" - Get tasks from specific project: filter="#ProjectName" (project must exist) - Get high priority tasks: filter="p1" - Search task content: filter="search: keyword" - Paginate results: use limit and cursor parameters

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ids` | array | No | List of task IDs to retrieve (alphanumeric string IDs). |
| `lang` | string | No | Language code for parsing date/times in queries. |
| `limit` | integer | No | The number of tasks to return per page. Default is 50. |
| `cursor` | string | No | Cursor for pagination. Provide the next_cursor value from previous response to get next page. |
| `filter` | string | No | Filter tasks using Todoist's filter syntax. IMPORTANT: This endpoint only returns INCOMPLETE tasks. CRITICAL: Filter terms must be valid Todoist keywords or reference ACTUAL EXISTING entities in the user's account. Arbitrary text like 'runner \| tokens' will fail with 400 error. Valid filter types: (1) Predefined keywords: 'today', 'tomorrow', 'yesterday', 'overdue', 'no date', 'no due date', 'recurring', 'subtask'. (2) Priority: 'p1' (urgent), 'p2', 'p3', 'p4' (normal), 'no priority'. (3) Projects: '#ProjectName' or '##ProjectName' (includes subprojects) - project must exist in user's account. (4) Labels: '@LabelName' or 'no labels' - label must exist in user's account. (5) Relative dates: '7 days' (due in next 7 days), '-7 days' (dated in past 7 days), 'next 5 days'. (6) Date filters: 'due before: YYYY-MM-DD', 'due after: YYYY-MM-DD', 'date before:', 'date after:'. (7) Created/deadline: 'created after: -14 days', 'deadline: YYYY-MM-DD', 'deadline before:', 'no deadline'. (8) Search: 'search: keyword' to find tasks containing specific text. Multiple searches can be combined: 'search: meeting \| search: call'. Logical operators: '&' (AND), '\|' (OR), '!' (NOT). DO NOT USE: 'completed', '!completed', 'completed after' - these cause 400 errors on this endpoint (use TODOIST_GET_COMPLETED_TASKS_BY_COMPLETION_DATE instead). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Backups

**Slug:** `TODOIST_GET_BACKUPS`

Tool to list all available backup archives for the user. Returns archive metadata only — not live task or project data; do not use as a proxy for active data availability. May return an empty list if no backups exist or backups are not enabled. For completed task history, use /sync/v9/completed/get_all instead.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Comment (V1)

**Slug:** `TODOIST_GET_COMMENT_V1`

Tool to retrieve a single comment by ID using the v1 API. Use when you need to fetch details of a specific comment.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `comment_id` | string | Yes | String ID of the comment to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Completed Tasks By Completion Date

**Slug:** `TODOIST_GET_COMPLETED_TASKS_BY_COMPLETION_DATE`

Tool to retrieve completed tasks within a specified completion date window. Use when you need to fetch historical completed tasks for reporting, audits, or weekly summaries. The API restricts the completion-date range to approximately 3 months between since and until parameters.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of tasks to return per page. Optional parameter. API default is 50. |
| `since` | string | Yes | Start date for filtering completed tasks in RFC3339 format (e.g., '2024-01-01T00:00:00Z'). Must be before 'until'. Maximum range between 'since' and 'until' is 3 months (~92 days). |
| `until` | string | Yes | End date for filtering completed tasks in RFC3339 format (e.g., '2024-01-31T23:59:59Z'). Must be after 'since'. Maximum range between 'since' and 'until' is 3 months (~92 days). |
| `cursor` | string | No | Pagination cursor from previous response to fetch next page of results. Optional parameter. |
| `parent_id` | string | No | Parent task ID in v2 alphanumeric format (e.g., '6fr9mHQJG3HV7gC4') to filter completed subtasks. Use IDs from TODOIST_GET_ALL_TASKS. Numeric v1 IDs are deprecated. |
| `project_id` | string | No | Project ID in v2 alphanumeric format (e.g., '6fm7pCWp5Q3hhwHW'). Use IDs from TODOIST_GET_ALL_PROJECTS. Numeric v1 IDs are deprecated. |
| `section_id` | string | No | Section ID in v2 alphanumeric format (e.g., '6fm7pCWp5Q3hhwHW'). Use IDs from TODOIST_GET_ALL_SECTIONS. Numeric v1 IDs are deprecated. |
| `filter_lang` | string | No | Language code for parsing filter_query. Optional parameter. |
| `filter_query` | string | No | Filter query string using Todoist's filter syntax to further refine results. Optional parameter. |
| `workspace_id` | string | No | Workspace ID in v2 alphanumeric format (e.g., '6XvwwRvRfmCjM5PW'). Use IDs from TODOIST_GET_ALL_PROJECTS or similar actions. Numeric v1 IDs are deprecated. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get ID Mappings

**Slug:** `TODOIST_GET_ID_MAPPINGS`

Tool to translate IDs between Todoist API v1 and v2. Use when you need to convert IDs between API versions for sections, tasks, comments, reminders, location_reminders, or projects.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `obj_ids` | string | Yes | A comma-separated list of IDs to translate. When V1 IDs are provided, the function returns corresponding V2 IDs if they exist, and vice versa. Example: '6fmCXMqW3X96q47W,6fp4f67Gvc2qvjW4' |
| `obj_name` | string ("sections" | "tasks" | "comments" | "reminders" | "location_reminders" | "projects") | Yes | The type of object to map. Must be one of: sections, tasks, comments, reminders, location_reminders, projects. IDs are not unique across object types. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Personal Label

**Slug:** `TODOIST_GET_PERSONAL_LABEL`

Tool to retrieve a personal label by its ID. Use when you need to fetch details about a specific personal label.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `label_id` | string | Yes | The ID of the personal label to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Productivity Stats

**Slug:** `TODOIST_GET_PRODUCTIVITY_STATS`

Tool to retrieve comprehensive productivity statistics for the authenticated user. Use when you need detailed completion data, karma scores, streaks, or goal tracking information for productivity reports and analysis.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Project (API v1)

**Slug:** `TODOIST_GET_PROJECT`

Tool to retrieve a specific project by its ID using Todoist API v1. Use when you have a project ID and need its metadata before display or update. Verify project_id matches the intended project before destructive operations — similar project names can cause mistakes; use TODOIST_GET_ALL_PROJECTS to resolve ambiguous names to IDs first.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | The ID of the project to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Full Project Data

**Slug:** `TODOIST_GET_PROJECT_FULL`

Tool to retrieve full project data including all sections, tasks, and collaborators. Use when you need comprehensive project information beyond basic metadata.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | The ID of the project to retrieve (v2 format string ID required). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Project Permissions

**Slug:** `TODOIST_GET_PROJECT_PERMISSIONS`

Tool to retrieve all available roles and their associated actions in Todoist projects. Use when you need to understand what permissions different roles have in projects.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Section (v1 API)

**Slug:** `TODOIST_GET_SECTION_V1`

Tool to retrieve a specific section by its ID using Todoist v1 API. Use when you need section metadata from the v1 endpoint.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `public_key` | string | No | Optional public key parameter for the request |
| `section_id` | string | Yes | String ID of the section |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Special Backups

**Slug:** `TODOIST_GET_SPECIAL_BACKUPS`

Tool to list special backup archives for the authenticated user's projects. Returns an empty list if no backups exist — callers must not assume archives are present. Read-only: confirms archive visibility only, not live task or project data access.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Task (Deprecated)

**Slug:** `TODOIST_GET_TASK`

DEPRECATED: Use TODOIST_GET_TASK2 instead. Tool to retrieve a specific task by its ID. Use when you need to fetch all details of an existing task before processing or display. Comments and attachments with additional context require separate API calls. Rate limit: ~50 req/min; honor Retry-After on HTTP 429.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_id` | string | Yes | The ID of the task to retrieve. Source from a recent TODOIST_GET_ALL_TASKS call to avoid stale IDs. Use this tool to confirm task identity before destructive operations (delete, close). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Task (API v1)

**Slug:** `TODOIST_GET_TASK2`

Tool to retrieve a single active (non-completed) task by ID using API v1. Use when you need to fetch task details from the v1 endpoint.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_id` | string | Yes | String ID of the task to retrieve. |
| `public_key` | string | No | Optional public key for accessing shared tasks. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get User

**Slug:** `TODOIST_GET_USER`

Tool to retrieve information about the currently authenticated user. Use when you need user details like email, name, preferences, karma, or subscription status.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Workspace Plan Details

**Slug:** `TODOIST_GET_WORKSPACE_PLAN_DETAILS`

Tool to retrieve details about a workspace's current plan and usage. Use when you need information about subscription status, member count, project limits, pricing, or trial status for a specific workspace.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `workspace_id` | integer | Yes | ID of the workspace to retrieve plan details for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Import Template Into Project By ID

**Slug:** `TODOIST_IMPORT_TEMPLATE_INTO_PROJECT_BY_ID`

Tool to import a template from Todoist's template gallery into an existing project. Use when you need to add structured tasks and sections from a pre-made template to an existing project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `locale` | string | No | Language locale for the template content. Defaults to 'en'. |
| `project_id` | string | Yes | The ID of the existing project to import the template into (can be string or integer format). Use TODOIST_GET_ALL_PROJECTS to get valid project IDs. |
| `template_id` | string | Yes | The template identifier from Todoist's template gallery (e.g., 'project-tracker', 'gtd-weekly-review', 'meal-planning'). These IDs can be found by browsing todoist.com/templates. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Import Template Into Project From File

**Slug:** `TODOIST_IMPORT_TEMPLATE_INTO_PROJECT_FROM_FILE`

Tool to import a CSV template into an existing Todoist project from a file. Use when you need to bulk-create tasks, sections, and notes from a template file.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `file` | object | Yes | The template file to upload and import. TYPE values must be lowercase: 'task', 'section', or 'note'. |
| `project_id` | string | Yes | The ID of the project to import the template into. Can be either an alphanumeric V2 format (e.g., '6fvWmP68Wchcr6RJ') or numeric V1 format. Use TODOIST_GET_ALL_PROJECTS to get valid project IDs. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Invite Project Collaborator

**Slug:** `TODOIST_INVITE_PROJECT_COLLABORATOR`

Tool to invite a collaborator to a Todoist project by email. Use when the user asks to share, invite someone to, or add a collaborator to a project. For workspace or team projects, you can optionally specify a role. If the role is omitted, the workspace default role is used. For invite-only workspace projects, the caller may need admin or owner permissions; otherwise the API may return a forbidden error.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `role` | string | No | Role to assign to the collaborator in workspace/team projects. Only used for workspace projects. If omitted, the workspace default role will be applied. For personal projects, this parameter is ignored. |
| `email` | string | Yes | Email address of the person to invite as a collaborator. |
| `project_id` | string | Yes | ID of the project to share. Use TODOIST_GET_ALL_PROJECTS or TODOIST_GET_PROJECT to retrieve valid project IDs. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Activities

**Slug:** `TODOIST_LIST_ACTIVITIES`

Tool to get activity logs from Todoist. Returns a paginated list of activity events for the user. Events can be filtered by object type (project, item, note), event type, and other criteria. Uses cursor-based pagination for efficient navigation through results.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of activity logs to return per page. |
| `cursor` | string | No | Pagination cursor for fetching the next page of results. Use the value returned in the next_cursor field from a previous response. |
| `date_to` | string | No | Filter activities to only those that occurred before this date (exclusive upper bound). Must be in ISO 8601 format (e.g. '2026-02-01T00:00:00Z'). When specified, overrides the default pagination behavior and allows custom date ranges. |
| `date_from` | string | No | Filter activities to only those that occurred on or after this date. Must be in ISO 8601 format (e.g. '2026-01-01T00:00:00Z'). When specified, overrides the default pagination behavior and allows custom date ranges. |
| `object_id` | string | No | The ID of the specific object to get activities for. Must be used together with object_type. For example, to get activities for a specific task, set object_type=item and object_id=<task_id>. |
| `event_type` | string | No | Filter by a simple event type (e.g., "added", "deleted", "completed"). Returns events of this type across ALL object types that support it. For more precise filtering by both object type and event type, use object_event_types instead. |
| `object_type` | string ("project" | "item" | "note") | No | The type of object to filter activities by. Must be one of "project", "item" (task), or "note" (comment). When specified with object_id, returns activities for that specific object. |
| `initiator_id` | string | No | Filter activities to only those initiated by the specified user ID(s). Accepts either a single user ID or a list of user IDs. Useful for shared projects to see who made which changes. |
| `workspace_id` | string | No | Filter activities to only those belonging to the specified workspace(s). Accepts either a single workspace ID or a list of workspace IDs. |
| `annotate_notes` | boolean | No | When true, includes additional information about comments in the extra_data field, such as the content of the comment. |
| `parent_item_id` | string | No | Filter activities to only those belonging to the specified task. Returns activities for the task itself and all its comments. |
| `annotate_parents` | boolean | No | When true, includes additional information about parent objects in the extra_data field, such as the name of the parent project or task. |
| `ensure_last_state` | boolean | No | Deprecated - This parameter has no implementation and will be removed in a future version. |
| `initiator_id_null` | string | No | Filter by whether the activity has an initiator. When true, returns only activities with no initiator (your own activities). When false, returns only activities initiated by collaborators. |
| `parent_project_id` | string | No | Filter activities to only those belonging to the specified project. Returns activities for the project itself and all its tasks and comments. |
| `object_event_types` | string | No | Advanced filtering for specific object type and event type combinations. Format: ["object_type:event_type"]. Examples: ["item:deleted"] for deleted tasks, ["item:"] for all task events, [":deleted"] for all delete events across all types, ["item:deleted", "note:added"] for multiple filters. Valid event types: "added", "deleted", "updated", "completed", "uncompleted", "archived", "unarchived", "shared", "left", "reordered", "moved". This is the recommended way to filter events. |
| `include_child_objects` | boolean | No | When true and object_id is specified, also include activities for all child objects. For example, when filtering by a project, also include activities for all its tasks and comments. |
| `include_parent_object` | boolean | No | When true and object_id is specified, also include activities for the parent object. For example, when filtering by a specific task, also include activities for its parent project. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List All Workspace Invitations

**Slug:** `TODOIST_LIST_ALL_INVITATIONS_WORKSPACES`

Tool to return a list containing details of all pending invitations to a workspace. Use when you need to view all pending workspace invitations. This list is not paginated, and all workspace members can access it.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `workspace_id` | integer | Yes | ID of the workspace to list invitations for. This parameter is required. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Archived Projects

**Slug:** `TODOIST_LIST_ARCHIVED_PROJECTS`

Tool to get all archived projects from Todoist. Use when you need to retrieve archived projects with pagination support.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | The number of projects to return in a single page. Defaults to 50 if not specified. |
| `cursor` | string | No | Pagination cursor for fetching the next page of results. Use the 'next_cursor' from the previous response. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Archived Sections

**Slug:** `TODOIST_LIST_ARCHIVED_SECTIONS`

Tool to retrieve all archived sections for a specific project in Todoist. Use when you need to access sections that have been archived in a project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | The ID of the project to get archived sections from. This must be a v1 project ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Archived Workspace Projects

**Slug:** `TODOIST_LIST_ARCHIVED_WORKSPACE_PROJECTS`

Tool to list all archived projects in a workspace. Archived projects are excluded from TODOIST_GET_ALL_PROJECTS; combine both tools when a complete project list is needed. Use when you need to retrieve archived workspace projects with optional filters or pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Limit the number of returned projects. |
| `since` | string | No | Return archived projects updated after this datetime (ISO 8601). |
| `until` | string | No | Return archived projects updated before this datetime (ISO 8601). |
| `offset` | integer | No | Offset for pagination. |
| `project_ids` | array | No | List of project IDs to filter the results. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Completed Tasks

**Slug:** `TODOIST_LIST_COMPLETED_TASKS`

Tool to retrieve all completed tasks with optional project filtering. Use when you need to fetch completed tasks without date range restrictions. Note: This action uses an undocumented Todoist API endpoint (/api/v1/tasks/completed). The endpoint is not officially documented but is confirmed to work based on runtime testing. The response schemas are based on actual API responses.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of tasks to return per page. Optional parameter. |
| `cursor` | string | No | Pagination cursor from previous response to fetch next page of results. Optional parameter. |
| `project_id` | string | No | Filter completed tasks by project ID. Optional parameter. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Completed Tasks By Due Date

**Slug:** `TODOIST_LIST_COMPLETED_TASKS_BY_DUE_DATE`

Tool to retrieve completed tasks within a specified due date range (up to 6 weeks). Use when you need to fetch completed tasks filtered by their original due dates rather than completion dates.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of tasks to return per page. Optional parameter. API default is 50. |
| `since` | string | Yes | Start date for filtering completed tasks by due date in YYYY-MM-DD format. Must be before 'until'. Maximum range between 'since' and 'until' is 6 weeks (42 days). |
| `until` | string | Yes | End date for filtering completed tasks by due date in YYYY-MM-DD format. Must be after 'since'. Maximum range between 'since' and 'until' is 6 weeks (42 days). |
| `cursor` | string | No | Pagination cursor from previous response to fetch next page of results. Optional parameter. |
| `parent_id` | string | No | Filter tasks by parent task ID to get completed subtasks of a specific parent. Optional parameter. |
| `project_id` | string | No | Filter tasks by project ID to get completed tasks within a specific project. Optional parameter. |
| `section_id` | string | No | Filter tasks by section ID to get completed tasks within a specific section. Optional parameter. |
| `filter_lang` | string | No | Language code for parsing filter_query. Optional parameter. |
| `filter_query` | string | No | Filter query string using Todoist's filter syntax to further refine results. Supports many Todoist filters like priority (p1-p4), labels (@labelname), and search queries. Optional parameter. |
| `workspace_id` | string | No | Filter tasks by workspace ID to get all completed tasks from projects the user has joined in that workspace. Optional parameter. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Filters

**Slug:** `TODOIST_LIST_FILTERS`

Tool to list all filters for the authenticated user. Use when you need to retrieve the current set of custom filters.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sync_token` | string | No | Token for incremental sync. Use '*' for full sync. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Joinable Workspaces

**Slug:** `TODOIST_LIST_JOINABLE_WORKSPACES`

Tool to get workspaces the user can join. Use when you need to discover available workspaces that the authenticated user can join.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Labels

**Slug:** `TODOIST_LIST_LABELS`

Tool to get all user labels with pagination support. Use when you need to retrieve labels from the user's Todoist account.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | The number of objects to return in a page. Default is 50. |
| `cursor` | string | No | Cursor for pagination. Use the next_cursor value from the previous response to get the next page of results. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Pending Workspace Invitations

**Slug:** `TODOIST_LIST_PENDING_WORKSPACE_INVITATIONS`

Tool to list pending invitation emails in a workspace. Use when you need to check which email invites are still pending acceptance in a workspace.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `workspace_id` | string | Yes | ID of the workspace to list pending invitations for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Project Collaborators

**Slug:** `TODOIST_LIST_PROJECT_COLLABORATORS`

Tool to get all collaborators for a given project with cursor-based pagination. Use when you need to retrieve the list of people who have access to a specific project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | The number of objects to return in a page. Default is 50 if not specified. |
| `cursor` | string | No | Pagination cursor to fetch the next page of results. Obtained from previous response's next_cursor field. |
| `project_id` | string | Yes | String ID of the project |
| `public_key` | string | No | Public key for accessing public projects |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Sections

**Slug:** `TODOIST_LIST_SECTIONS`

Tool to get all active sections for the user, with optional filtering by project. Supports cursor-based pagination to handle large result sets.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | The number of objects to return in a page. Default is 50. |
| `cursor` | string | No | Pagination cursor for fetching the next page of results. Use the next_cursor value from a previous response. |
| `project_id` | string | No | String ID of the project to get sections from. If omitted or null, get sections from all projects. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Shared Labels

**Slug:** `TODOIST_LIST_SHARED_LABELS`

Tool to retrieve shared label names from active tasks with pagination support. Use when you need to list labels across the workspace with optional filtering of personal labels.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | The number of label names to return in a single page. Defaults to 50 if not specified. |
| `cursor` | string | No | Pagination cursor from a previous response. Use to fetch the next page of results. |
| `omit_personal` | boolean | No | If true, excludes personal labels from the results and returns only shared workspace labels. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Workspace Active Projects

**Slug:** `TODOIST_LIST_WORKSPACE_ACTIVE_PROJECTS`

Tool to list all active workspace projects. Returns active projects that are visible to the user, including those not yet joined. For guest users, only joined workspace projects are returned.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of projects to return per request. Defaults to 100 if not specified. |
| `cursor` | string | No | Pagination cursor for fetching the next page of results. |
| `workspace_id` | integer | Yes | ID of the workspace to list active projects for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Workspace Archived Projects

**Slug:** `TODOIST_LIST_WORKSPACE_ARCHIVED_PROJECTS`

Tool to get archived projects in a workspace. Use when you need to retrieve a list of archived projects for a specific workspace with optional pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of projects to return per page. Defaults to 100 if not specified. Optional query parameter. |
| `cursor` | string | No | Cursor for pagination to fetch the next page of results. Optional query parameter. |
| `workspace_id` | integer | Yes | The workspace ID to retrieve archived projects from. Required path parameter. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Workspace Invitations

**Slug:** `TODOIST_LIST_WORKSPACE_INVITATIONS`

Tool to list user emails with pending invitations to a workspace. Use when you need to check which email invites are still pending. The list is not paginated and accessible by all workspace members.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `workspace_id` | integer | Yes | ID of the workspace to list pending invitations for. All workspace members can access this list. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Workspace Users

**Slug:** `TODOIST_LIST_WORKSPACE_USERS`

Tool to list users in workspace(s). Use when you need to retrieve workspace members. Returns users from a specific workspace if workspace_id is provided, otherwise returns users from all workspaces the authenticated user is part of. Not accessible by guests.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of workspace users to return per request. Default is 100. |
| `cursor` | string | No | Pagination cursor for retrieving the next set of results. Use the next_cursor value from a previous response. |
| `workspace_id` | string | No | ID of the workspace to list users for. If not provided, returns users from all workspaces the authenticated user is part of. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Move Task

**Slug:** `TODOIST_MOVE_TASK`

Tool to move a task to another project, section, or parent task while preserving task identity and metadata. Use when you need to relocate a task without recreating it.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_id` | string | Yes | The ID of the task to move. |
| `parent_id` | string | No | Parent task ID to move the task under (re-parent as subtask). Mutually exclusive with project_id and section_id - only one can be provided. |
| `project_id` | string | No | Project ID to move the task to. Mutually exclusive with section_id and parent_id - only one can be provided. |
| `section_id` | string | No | Section ID to move the task to. Mutually exclusive with project_id and parent_id - only one can be provided. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Move Task (REST API)

**Slug:** `TODOIST_MOVE_TASK_REST_API`

Tool to move a task to another project, section, or parent task using the REST API. Use when you need to relocate a task while preserving its identity and metadata.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_id` | string | Yes | ID of the task to move. Must be in Todoist API v1 format (base32-encoded alphanumeric string). |
| `parent_id` | string | No | ID of the parent task to move the task under. Must be in Todoist API v1 format (base32-encoded alphanumeric string). At least one of project_id, section_id, or parent_id is required. |
| `project_id` | string | No | ID of the project to move the task to. Must be in Todoist API v1 format (base32-encoded alphanumeric string). At least one of project_id, section_id, or parent_id is required. |
| `section_id` | string | No | ID of the section to move the task to. Must be in Todoist API v1 format (base32-encoded alphanumeric string). At least one of project_id, section_id, or parent_id is required. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Quick Add Task

**Slug:** `TODOIST_QUICK_ADD_TASK`

Tool to add tasks using natural language parsing similar to the official Todoist clients. Use when you want to create a task quickly with natural language that includes dates, projects, labels, priority, and other task attributes in a single text string.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `meta` | boolean | No | When enabled, returns additional metadata about the parsing. Defaults to False. |
| `note` | string | No | Additional note or description for the task. This is separate from the task text. |
| `text` | string | Yes | Natural language task text that will be parsed. Can include: due date in free form text (e.g., 'tomorrow', 'next Monday at 3pm'), project name starting with '#' (e.g., '#ProjectName'), label starting with '@' (e.g., '@urgent'), assignee starting with '+' (e.g., '+john@example.com'), priority (e.g., 'p1', 'p2', 'p3', 'p4'), deadline between '{}' (e.g., '{in 3 days}'), or description starting from '//' until the end of the text (e.g., '// additional notes'). Example: 'Buy milk tomorrow at 5pm #Shopping @groceries p1' |
| `reminder` | string | No | Reminder date in free form text. Examples: 'in 30 minutes', 'tomorrow at 9am', '1 hour before'. |
| `auto_reminder` | boolean | No | When enabled, a default reminder will be added to the task if it has a due date with time set. Defaults to False. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Remove Shared Label (API v1)

**Slug:** `TODOIST_REMOVE_SHARED_LABEL_V1`

Tool to remove a shared label from all active tasks using API v1. Use when you need to remove a shared label created by a collaborator from your account.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the shared label to remove from all active tasks. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Rename Shared Labels (API v1)

**Slug:** `TODOIST_RENAME_SHARED_LABELS_V1`

Tool to rename a shared label across all active tasks using API v1. Use when you need to change the name of a shared label.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The current name of the shared label to rename. |
| `new_name` | string | Yes | The new name for the shared label. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Reopen Task (API v1)

**Slug:** `TODOIST_REOPEN_TASK2`

Tool to reopen a completed task in Todoist using API v1. Use when you need to restore a previously completed task. Any ancestor tasks or sections will also be marked as uncomplete and restored from history.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_id` | string | Yes | The ID of the task to reopen. Todoist supports both numeric IDs (e.g., '2995104339') and alphanumeric IDs (e.g., '6fmCXPVrjPvHggWW'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Reorder Tasks

**Slug:** `TODOIST_REORDER_TASKS`

Reorder tasks deterministically by updating child_order in bulk via the Sync API item_reorder command. Use when you need to set specific ordering for tasks.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `items` | array | Yes | Array of task IDs with their new child_order positions. Each task will be assigned the specified order among its siblings. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search Labels

**Slug:** `TODOIST_SEARCH_LABELS`

Tool to search user labels by name with case-insensitive matching. Use when you need to find specific labels by name pattern.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | The number of objects to return in a page. Defaults to 50 if not specified. |
| `query` | string | Yes | Search query to match label names. Matching is case-insensitive. Queries are matched literally unless `*` (wildcard) is included. Use `\*` for literal asterisk and `\\` for literal backslash. |
| `cursor` | string | No | Cursor for pagination. Use the next_cursor value from a previous response to fetch the next page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search Projects

**Slug:** `TODOIST_SEARCH_PROJECTS`

Search active user projects by name with support for wildcards and pagination. Use when you need to find projects matching a specific name pattern.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | The number of projects to return per page. If not specified, defaults to 50. Maximum value may be limited by the API. |
| `query` | string | Yes | Search query to match project names. Matching is case-insensitive. Queries are matched literally unless `*` (wildcard) is included. Use `\*` for literal asterisk and `\\` for literal backslash. Example: '*' matches all projects, 'Work*' matches projects starting with 'Work'. |
| `cursor` | string | No | Pagination cursor for fetching the next page of results. Provide the 'next_cursor' value from a previous response to get the next page. Leave empty for the first page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search Sections

**Slug:** `TODOIST_SEARCH_SECTIONS`

Tool to search active sections by name, optionally filtered by project. Use when you need to find sections matching a specific name pattern across all projects or within a specific project. Supports pagination for large result sets.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | The number of objects to return in a page. Default is 50. |
| `query` | string | Yes | Search query to match section names. Matching is case-insensitive. Queries are matched literally unless `*` (wildcard) is included. Use `\*` for literal asterisk and `\\` for literal backslash. |
| `cursor` | string | No | Cursor for pagination. Use the next_cursor value from a previous response to fetch the next page. |
| `project_id` | string | No | String ID of the project to search sections from. If omitted or null, search sections from all projects. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Todoist Sync

**Slug:** `TODOIST_SYNC`

Tool to sync data with Todoist server, supporting both read and write operations. This is the central endpoint used by Todoist apps for all data synchronization. Use this action to: - Read multiple resource types in a single request (projects, tasks, labels, etc.) - Perform batch write operations (create/update/delete up to 100 resources at once) - Implement efficient incremental sync using sync tokens - Execute complex multi-step operations in a single atomic request For read-only operations, pass sync_token and resource_types. For write operations, include commands array with the operations to execute. Commands support batching up to 100 operations per request.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `commands` | array | No | Array of write commands to execute. Supports batching up to 100 commands. Each command modifies resources (add/update/delete). Commands are executed sequentially. Use temp_id in commands to reference newly created resources within the same batch. Common command types: item_add, item_update, item_delete, item_complete, item_uncomplete, item_move, project_add, project_update, project_delete, section_add, label_add, filter_add, reminder_add. |
| `sync_token` | string | Yes | Synchronization token marking the point in time of the last sync. Use '*' for full sync (retrieves all active data). For incremental sync, use the sync_token returned from the previous sync response. This enables efficient delta updates. |
| `resource_types` | array | No | Array of resource types to retrieve. Use ['all'] to fetch all resources. Specific types: 'projects', 'items', 'sections', 'labels', 'filters', 'reminders', 'notes', 'collaborators', 'user', 'live_notifications', 'user_settings', etc. Only returned resources will be included in the response. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Unarchive Project (API v1)

**Slug:** `TODOIST_UNARCHIVE_PROJECT2`

Tool to unarchive a previously archived Todoist project using API v1. Use when you need to reactivate an archived project, making it visible again for the initiating user (personal projects) or all workspace users (workspace projects).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | The ID of the project to unarchive. Must be a valid project ID string. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Comment (v1)

**Slug:** `TODOIST_UPDATE_COMMENT2`

Tool to update a comment by ID and return its content via v1 API. Use when you need to modify an existing comment's text using the v1 API endpoint.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `content` | string | Yes | New content for the comment. If null or an empty string, no update is performed. |
| `comment_id` | string | Yes | String ID of the comment to update. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Label (API v1)

**Slug:** `TODOIST_UPDATE_LABEL_V1_SECOND`

Tool to update an existing label using API v1. Use when you need to modify a label's name, color, order, or favorite status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Updated label name. Must be between 1 and 128 characters if provided. Passing null or omitting this field will leave it unchanged. |
| `color` | string | No | Label color. Can be a color name (e.g., 'blue', 'red') or a color code (integer). Passing null or omitting this field will leave it unchanged. |
| `order` | integer | No | Position of the label in the label list. Used by clients to sort labels. Passing null or omitting this field will leave it unchanged. |
| `label_id` | string | Yes | The ID of the label to update. |
| `is_favorite` | boolean | No | Whether the label is marked as a favorite. Passing null or omitting this field will leave it unchanged. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Notification Setting

**Slug:** `TODOIST_UPDATE_NOTIFICATION_SETTING`

Tool to update notification settings for the current user. Use when you need to enable or disable notifications for specific event types and channels.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `token` | string | No | Optional token parameter for push notifications. |
| `service` | string ("email" | "push") | Yes | The communication channel for this notification. Must be either 'email' or 'push'. |
| `dont_notify` | boolean | Yes | Whether to disable notifications for this type and service. Set to true to turn off notifications, false to enable them. |
| `notification_type` | string ("note_added" | "item_assigned" | "item_completed" | "item_uncompleted" | "karma_level" | "share_invitation_sent" | "share_invitation_accepted" | "share_invitation_rejected" | "share_invitation_blocked_by_project_limit" | "user_left_project" | "user_removed_from_project" | "teams_workspace_upgraded" | "teams_workspace_canceled" | "teams_workspace_payment_failed" | "pro_trial_started" | "pro_trial_ended" | "workspace_invitation_created" | "workspace_invitation_accepted" | "workspace_invitation_rejected" | "project_archived" | "project_moved" | "removed_from_workspace" | "workspace_deleted" | "message" | "workspace_user_joined_by_domain" | "price_increase_new_pro_users" | "price_increase_new_team" | "price_increase_new_team_trial" | "price_increase_android" | "workspace_team_cohort_tagged") | Yes | The type of notification being configured. Must be one of the predefined notification types. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Project (Deprecated)

**Slug:** `TODOIST_UPDATE_PROJECT`

DEPRECATED: Use TODOIST_TODOIST_UPDATE_PROJECT2 instead. Tool to update a project's properties including name, color, favorite status, and view style. Use when you need to modify project settings after reviewing its current configuration.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | New name for the project. At least one of name, color, is_favorite, or view_style must be provided. |
| `color` | string ("berry_red" | "red" | "orange" | "yellow" | "olive_green" | "lime_green" | "green" | "mint_green" | "teal" | "sky_blue" | "light_blue" | "blue" | "grape" | "violet" | "lavender" | "magenta" | "salmon" | "charcoal" | "grey" | "taupe") | No | Enum for project colors. Names are based on Todoist's standard palette. |
| `project_id` | string | Yes | The ID of the project to update. |
| `view_style` | string ("list" | "board") | No | Enum for project view styles. |
| `is_favorite` | boolean | No | Whether the project should be marked as a favorite. At least one of name, color, is_favorite, or view_style must be provided. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Project (API v1)

**Slug:** `TODOIST_UPDATE_PROJECT2`

Tool to update a project's properties using Todoist API v1. Use when you need to modify project settings like name, description, favorite status, color, or view style.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Updated project name. Passing null or omitting this field will leave it unchanged. |
| `color` | string | No | Updated project color. Passing null or omitting this field will leave it unchanged. |
| `project_id` | string | Yes | String ID of the project to update (v1 format). |
| `view_style` | string | No | Updated project view style (e.g., 'list' or 'board'). Passing null or omitting this field will leave it unchanged. |
| `description` | string | No | Updated project description. Passing null or omitting this field will leave it unchanged. |
| `is_favorite` | boolean | No | Whether the project is marked as a favorite. Passing null or omitting this field will leave it unchanged. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Section (Deprecated)

**Slug:** `TODOIST_UPDATE_SECTION`

DEPRECATED: Use TODOIST_TODOIST_UPDATE_SECTION2 instead. Tool to update a specific section's name. Use when you need to rename a section after confirming its ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | New name for the section. |
| `section_id` | string | Yes | The ID of the section to update. This should be a numeric string from the 'id' field of section objects. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Section (v1)

**Slug:** `TODOIST_UPDATE_SECTION2`

Tool to update an existing section by its ID using Todoist v1 API. Use when you need to rename a section.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Updated section name. Passing null or omitting this field will leave it unchanged. |
| `section_id` | string | Yes | String ID of the section to update |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Task

**Slug:** `TODOIST_UPDATE_TASK`

Tool to update an existing task's properties. Cannot change a task's project; to move a task, use TODOIST_CREATE_TASK then TODOIST_DELETE_TASK. Use when you need to modify a task's details after confirming its ID and new values.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `labels` | array | No | List of label names to assign to the task. Replaces the entire existing labels list — omit a label only if intentionally removing it. Labels must already exist in Todoist; non-existent names fail silently. |
| `content` | string | No | New content for the task. |
| `task_id` | string | Yes | The ID of the task to update. |
| `due_date` | string | No | Due date in YYYY-MM-DD format. |
| `due_lang` | string | No | Language code for parsing `due_string`, e.g., 'en'. |
| `duration` | integer | No | Positive integer for task duration amount (how long the task takes). Must be used together with duration_unit. This is separate from due date - use due_string/due_date/due_datetime for when the task is due. |
| `priority` | integer | No | Task priority from 1 (normal) to 4 (urgent). |
| `due_string` | string | No | Human-readable due date string for natural language date parsing. Examples: 'tomorrow', 'next Monday', 'Jan 15 at 3pm', 'in 2 days'. Duration syntax like 'for X minutes' is automatically extracted and converted to the duration/duration_unit fields. Provide exactly one of due_string, due_date, or due_datetime per call — supplying multiple may cause silent failures. To clear an existing due date, pass 'no date'. |
| `assignee_id` | string | No | User ID to assign the task to. |
| `description` | string | No | New description for the task. |
| `due_datetime` | string | No | Due date and time in RFC3339 format. |
| `deadline_date` | string | No | Deadline date in YYYY-MM-DD format (premium feature). |
| `duration_unit` | string ("minute" | "day") | No | Units for task duration in Todoist. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Workspace Logo

**Slug:** `TODOIST_UPDATE_WORKSPACE_LOGO`

Tool to upload an image as the workspace logo or delete the existing logo. Use when you need to set or remove a workspace's branding image.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `file` | object | No | Image file to upload as workspace logo. Required when delete is false or not provided. Supported formats: PNG, JPEG, JPG. |
| `delete` | boolean | No | If set to true, removes the workspace logo completely. When true, the file parameter is not required. |
| `workspace_id` | integer | Yes | The ID of the workspace to update the logo for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upload File

**Slug:** `TODOIST_UPLOAD_FILE`

Tool to upload a file to Todoist. Use when you need to attach files to tasks or projects. The uploaded file can be later attached to comments or tasks using the returned file_url.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `file` | object | Yes | File to upload to Todoist. |
| `project_id` | string | No | The ID of the project to associate the uploaded file with. If not provided, the file will be uploaded without project association. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |


## Triggers

### New Task Created

**Slug:** `TODOIST_NEW_TASK_CREATED`

**Type:** poll

Trigger when a new task is added to Todoist.

#### Configuration

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `interval` | number | No | Periodic Interval to Check for Updates & Send a Trigger in Minutes |
| `project_id` | string | No | (Optional) Filter new tasks by project ID. |

#### Payload

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `event_type` | string | No | Type of event |
| `task` | object | Yes | The Todoist task object |
