Todoist Automation via Rube MCP
Automate Todoist operations including task creation and management, project organization, section management, filtering, and bulk task workflows through Composio's Todoist toolkit.
Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active Todoist connection via
RUBE_MANAGE_CONNECTIONS with toolkit todoist
- Always call
RUBE_SEARCH_TOOLS first to get current tool schemas
Setup
Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
- Verify Rube MCP is available by confirming
RUBE_SEARCH_TOOLS responds
- Call
RUBE_MANAGE_CONNECTIONS with toolkit todoist
- If connection is not ACTIVE, follow the returned auth link to complete Todoist OAuth
- Confirm connection status shows ACTIVE before running any workflows
Core Workflows
1. Create and Manage Tasks
When to use: User wants to create, update, complete, reopen, or delete tasks
Tool sequence:
TODOIST_GET_ALL_PROJECTS - List projects to find the target project ID [Prerequisite]
TODOIST_GET_ALL_SECTIONS - List sections within a project for task placement [Optional]
TODOIST_CREATE_TASK - Create a single task with content, due date, priority, labels [Required]
TODOIST_BULK_CREATE_TASKS - Create multiple tasks in one request [Alternative]
TODOIST_UPDATE_TASK - Modify task properties (content, due date, priority, labels) [Optional]
TODOIST_CLOSE_TASK - Mark a task as completed [Optional]
TODOIST_REOPEN_TASK - Restore a previously completed task [Optional]
TODOIST_DELETE_TASK - Permanently remove a task [Optional]
Key parameters for CREATE_TASK:
content: Task title (supports markdown and hyperlinks)
description: Additional notes (do NOT put due dates here)
project_id: Alphanumeric project ID; omit to add to Inbox
section_id: Alphanumeric section ID for placement within a project
parent_id: Task ID for creating subtasks
priority: 1 (normal) to 4 (urgent) -- note: Todoist UI shows p1=urgent, API p4=urgent
due_string: Natural language date like "tomorrow at 3pm", "every Friday at 9am"
due_date: Specific date YYYY-MM-DD format
due_datetime: Specific date+time in RFC3339 YYYY-MM-DDTHH:mm:ssZ
labels: Array of label name strings
duration + duration_unit: Task duration (e.g., 30 + "minute")
Pitfalls:
- Only one
due_* field can be used at a time (except due_lang which can accompany any)
- Do NOT embed due dates in
content or description -- use due_string field
- Do NOT embed duration phrases like "for 30 minutes" in
due_string -- use duration + duration_unit
priority in API: 1=normal, 4=urgent (opposite of Todoist UI display where p1=urgent)
- Task IDs can be numeric or alphanumeric; use the format returned by the API
CLOSE_TASK marks complete; DELETE_TASK permanently removes -- they are different operations
2. Manage Projects
When to use: User wants to list, create, update, or inspect projects
Tool sequence:
TODOIST_GET_ALL_PROJECTS - List all projects with metadata [Required]
TODOIST_GET_PROJECT - Get details for a specific project by ID [Optional]
TODOIST_CREATE_PROJECT - Create a new project with name, color, view style [Optional]
TODOIST_UPDATE_PROJECT - Modify project properties [Optional]
Key parameters:
name: Project name (required for creation)
color: Todoist palette color (e.g., "blue", "red", "green", "charcoal")
view_style: "list" or "board" layout
parent_id: Parent project ID for creating sub-projects
is_favorite / favorite: Boolean to mark as favorite
project_id: Required for update and get operations
Pitfalls:
- Projects with similar names can lead to selecting the wrong project_id; always verify
CREATE_PROJECT uses favorite while UPDATE_PROJECT uses is_favorite -- different field names
- Use the project
id returned by API, not the v2_id, for downstream operations
- Alphanumeric/URL-style project IDs may cause HTTP 400 in some tools; use numeric ID if available
3. Manage Sections
When to use: User wants to organize tasks within projects using sections
Tool sequence:
TODOIST_GET_ALL_PROJECTS - Find the target project ID [Prerequisite]
TODOIST_GET_ALL_SECTIONS - List existing sections to avoid duplicates [Prerequisite]
TODOIST_CREATE_SECTION - Create a new section in a project [Required]
TODOIST_UPDATE_SECTION - Rename an existing section [Optional]
TODOIST_DELETE_SECTION - Permanently remove a section [Optional]
Key parameters:
project_id: Required -- the project to create the section in
name: Section name (required for creation)
order: Integer position within the project (lower values appear first)
section_id: Required for update and delete operations
Pitfalls:
CREATE_SECTION requires project_id and name -- omitting project_id causes a 400 error
- HTTP 400 "project_id is invalid" can occur if alphanumeric ID is used; prefer numeric ID
- Deleting a section may move or regroup its tasks in non-obvious ways
- Response may include both
id and v2_id; store and reuse the correct identifier consistently
- Always check existing sections first to avoid creating duplicates
4. Search and Filter Tasks
When to use: User wants to find tasks by criteria, view today's tasks, or get completed task history
Tool sequence:
TODOIST_GET_ALL_TASKS - Fetch incomplete tasks with optional filter query [Required]
TODOIST_GET_TASK - Get full details of a specific task by ID [Optional]
TODOIST_GET_COMPLETED_TASKS_BY_COMPLETION_DATE - Retrieve completed tasks within a date range [Optional]
TODOIST_LIST_FILTERS - List user's custom saved filters [Optional]
Key parameters for GET_ALL_TASKS:
filter: Todoist filter syntax string
- Keywords:
today, tomorrow, overdue, no date, recurring, subtask
- Priority:
p1 (urgent), p2, p3, p4 (normal)
- Projects:
#ProjectName (must exist in account)
- Labels:
@LabelName (must exist in account)
- Date ranges:
7 days, -7 days, due before: YYYY-MM-DD, due after: YYYY-MM-DD
- Search:
search: keyword for content text search
- Operators:
& (AND), | (OR), ! (NOT)
ids: List of specific task IDs to retrieve
Key parameters for GET_COMPLETED_TASKS_BY_COMPLETION_DATE:
since: Start date in RFC3339 format (e.g., 2024-01-01T00:00:00Z)
until: End date in RFC3339 format
project_id, section_id, parent_id: Optional filters
cursor: Pagination cursor from previous response
limit: Max results per page (default 50)
Pitfalls:
GET_ALL_TASKS returns ONLY incomplete tasks; use GET_COMPLETED_TASKS_BY_COMPLETION_DATE for completed ones
- Filter terms must reference ACTUAL EXISTING entities; arbitrary text causes HTTP 400 errors
- Do NOT use
completed, !completed, or completed after in GET_ALL_TASKS filter -- causes 400 error
GET_COMPLETED_TASKS_BY_COMPLETION_DATE limits date range to approximately 3 months between since and until
- Search uses
search: keyword syntax within the filter, not a separate parameter
5. Bulk Task Creation
When to use: User wants to scaffold a project with multiple tasks at once
Tool sequence:
TODOIST_GET_ALL_PROJECTS - Find target project ID [Prerequisite]
TODOIST_GET_ALL_SECTIONS - Find section IDs for task placement [Optional]
TODOIST_BULK_CREATE_TASKS - Create multiple tasks in a single request [Required]
Key parameters:
tasks: Array of task objects, each requiring at minimum content
- Each task object supports:
content, description, project_id, section_id, parent_id, priority, labels, due (object with string, date, or datetime), duration, order
Pitfalls:
- Each task in the array must have at least the
content field
- The
due field in bulk create is an object with nested fields (string, date, datetime, lang) -- different structure from CREATE_TASK's flat fields
- All tasks can target different projects/sections within the same batch
Common Patterns
ID Resolution
Always resolve human-readable names to IDs before operations:
- Project name -> Project ID:
TODOIST_GET_ALL_PROJECTS, match by name field
- Section name -> Section ID:
TODOIST_GET_ALL_SECTIONS with project_id
- Task content -> Task ID:
TODOIST_GET_ALL_TASKS with filter or search: keyword
Pagination
TODOIST_GET_ALL_TASKS: Returns all matching incomplete tasks (no pagination needed)
TODOIST_GET_COMPLETED_TASKS_BY_COMPLETION_DATE: Uses cursor-based pagination; follow cursor from response until no more results
TODOIST_GET_ALL_PROJECTS and TODOIST_GET_ALL_SECTIONS: Return all results (no pagination)
Due Date Handling
- Natural language: Use
due_string (e.g., "tomorrow at 3pm", "every Monday")
- Specific date: Use
due_date in YYYY-MM-DD format
- Specific datetime: Use
due_datetime in RFC3339 format (YYYY-MM-DDTHH:mm:ssZ)
- Only use ONE due field at a time (except
due_lang which can accompany any)
- Recurring tasks: Use natural language in
due_string (e.g., "every Friday at 9am")
Known Pitfalls
ID Formats
- Task IDs can be numeric (
"2995104339") or alphanumeric ("6X4Vw2Hfmg73Q2XR")
- Project IDs similarly vary; prefer the format returned by the API
- Some tools accept only numeric IDs; if 400 error occurs, try fetching the numeric
id via GET_PROJECT
- Response objects may contain both
id and v2_id; use id for API operations
Priority Inversion
- API priority: 1 = normal, 4 = urgent
- Todoist UI display: p1 = urgent, p4 = normal
- This is inverted; always clarify with the user which convention they mean
Filter Syntax
- Filter terms must reference real entities in the user's account
#NonExistentProject or @NonExistentLabel will cause HTTP 400
- Use
search: keyword for text search, not bare keywords
- Combine with
& (AND), | (OR), ! (NOT)
completed filters do NOT work on GET_ALL_TASKS endpoint
Rate Limits
- Todoist API has rate limits; batch operations should use
BULK_CREATE_TASKS where possible
- Space out rapid sequential requests to avoid throttling
Quick Reference
| Task |
Tool Slug |
Key Params |
| List all projects |
TODOIST_GET_ALL_PROJECTS |
(none) |
| Get project |
TODOIST_GET_PROJECT |
project_id |
| Create project |
TODOIST_CREATE_PROJECT |
name, color, view_style |
| Update project |
TODOIST_UPDATE_PROJECT |
project_id, name, color |
| List sections |
TODOIST_GET_ALL_SECTIONS |
project_id |
| Create section |
TODOIST_CREATE_SECTION |
project_id, name, order |
| Update section |
TODOIST_UPDATE_SECTION |
section_id, name |
| Delete section |
TODOIST_DELETE_SECTION |
section_id |
| Get all tasks |
TODOIST_GET_ALL_TASKS |
filter, ids |
| Get task |
TODOIST_GET_TASK |
task_id |
| Create task |
TODOIST_CREATE_TASK |
content, project_id, due_string, priority |
| Bulk create tasks |
TODOIST_BULK_CREATE_TASKS |
tasks (array) |
| Update task |
TODOIST_UPDATE_TASK |
task_id, content, due_string |
| Complete task |
TODOIST_CLOSE_TASK |
task_id |
| Reopen task |
TODOIST_REOPEN_TASK |
task_id |
| Delete task |
TODOIST_DELETE_TASK |
task_id |
| Completed tasks |
TODOIST_GET_COMPLETED_TASKS_BY_COMPLETION_DATE |
since, until |
| List filters |
TODOIST_LIST_FILTERS |
sync_token |
When to Use
This skill is applicable to execute the workflow or actions described in the overview.
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
1---2name: todoist-automation3description: Automate Todoist task management, projects, sections, filtering, and bulk operations via Rube MCP (Composio). Always search tools first for current schemas.4---5
6# Todoist Automation via Rube MCP
7
8Automate Todoist operations including task creation and management, project organization, section management, filtering, and bulk task workflows through Composio's Todoist toolkit.
9
10## Prerequisites
11
12- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
13- Active Todoist connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `todoist`
14- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas
15
16## Setup
17
18**Get Rube MCP**: Add `https://rube.app/mcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
19
201. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds
212. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `todoist`
223. If connection is not ACTIVE, follow the returned auth link to complete Todoist OAuth
234. Confirm connection status shows ACTIVE before running any workflows
24
25## Core Workflows
26
27### 1. Create and Manage Tasks
28
29**When to use**: User wants to create, update, complete, reopen, or delete tasks
30
31**Tool sequence**:
321. `TODOIST_GET_ALL_PROJECTS` - List projects to find the target project ID [Prerequisite]
332. `TODOIST_GET_ALL_SECTIONS` - List sections within a project for task placement [Optional]
343. `TODOIST_CREATE_TASK` - Create a single task with content, due date, priority, labels [Required]
354. `TODOIST_BULK_CREATE_TASKS` - Create multiple tasks in one request [Alternative]
365. `TODOIST_UPDATE_TASK` - Modify task properties (content, due date, priority, labels) [Optional]
376. `TODOIST_CLOSE_TASK` - Mark a task as completed [Optional]
387. `TODOIST_REOPEN_TASK` - Restore a previously completed task [Optional]
398. `TODOIST_DELETE_TASK` - Permanently remove a task [Optional]
40
41**Key parameters for CREATE_TASK**:
42- `content`: Task title (supports markdown and hyperlinks)
43- `description`: Additional notes (do NOT put due dates here)
44- `project_id`: Alphanumeric project ID; omit to add to Inbox
45- `section_id`: Alphanumeric section ID for placement within a project
46- `parent_id`: Task ID for creating subtasks
47- `priority`: 1 (normal) to 4 (urgent) -- note: Todoist UI shows p1=urgent, API p4=urgent
48- `due_string`: Natural language date like `"tomorrow at 3pm"`, `"every Friday at 9am"`
49- `due_date`: Specific date `YYYY-MM-DD` format
50- `due_datetime`: Specific date+time in RFC3339 `YYYY-MM-DDTHH:mm:ssZ`
51- `labels`: Array of label name strings
52- `duration` + `duration_unit`: Task duration (e.g., `30` + `"minute"`)
53
54**Pitfalls**:
55- Only one `due_*` field can be used at a time (except `due_lang` which can accompany any)
56- Do NOT embed due dates in `content` or `description` -- use `due_string` field
57- Do NOT embed duration phrases like "for 30 minutes" in `due_string` -- use `duration` + `duration_unit`
58- `priority` in API: 1=normal, 4=urgent (opposite of Todoist UI display where p1=urgent)
59- Task IDs can be numeric or alphanumeric; use the format returned by the API
60- `CLOSE_TASK` marks complete; `DELETE_TASK` permanently removes -- they are different operations
61
62### 2. Manage Projects
63
64**When to use**: User wants to list, create, update, or inspect projects
65
66**Tool sequence**:
671. `TODOIST_GET_ALL_PROJECTS` - List all projects with metadata [Required]
682. `TODOIST_GET_PROJECT` - Get details for a specific project by ID [Optional]
693. `TODOIST_CREATE_PROJECT` - Create a new project with name, color, view style [Optional]
704. `TODOIST_UPDATE_PROJECT` - Modify project properties [Optional]
71
72**Key parameters**:
73- `name`: Project name (required for creation)
74- `color`: Todoist palette color (e.g., `"blue"`, `"red"`, `"green"`, `"charcoal"`)
75- `view_style`: `"list"` or `"board"` layout
76- `parent_id`: Parent project ID for creating sub-projects
77- `is_favorite` / `favorite`: Boolean to mark as favorite
78- `project_id`: Required for update and get operations
79
80**Pitfalls**:
81- Projects with similar names can lead to selecting the wrong project_id; always verify
82- `CREATE_PROJECT` uses `favorite` while `UPDATE_PROJECT` uses `is_favorite` -- different field names
83- Use the project `id` returned by API, not the `v2_id`, for downstream operations
84- Alphanumeric/URL-style project IDs may cause HTTP 400 in some tools; use numeric ID if available
85
86### 3. Manage Sections
87
88**When to use**: User wants to organize tasks within projects using sections
89
90**Tool sequence**:
911. `TODOIST_GET_ALL_PROJECTS` - Find the target project ID [Prerequisite]
922. `TODOIST_GET_ALL_SECTIONS` - List existing sections to avoid duplicates [Prerequisite]
933. `TODOIST_CREATE_SECTION` - Create a new section in a project [Required]
944. `TODOIST_UPDATE_SECTION` - Rename an existing section [Optional]
955. `TODOIST_DELETE_SECTION` - Permanently remove a section [Optional]
96
97**Key parameters**:
98- `project_id`: Required -- the project to create the section in
99- `name`: Section name (required for creation)
100- `order`: Integer position within the project (lower values appear first)
101- `section_id`: Required for update and delete operations
102
103**Pitfalls**:
104- `CREATE_SECTION` requires `project_id` and `name` -- omitting project_id causes a 400 error
105- HTTP 400 "project_id is invalid" can occur if alphanumeric ID is used; prefer numeric ID
106- Deleting a section may move or regroup its tasks in non-obvious ways
107- Response may include both `id` and `v2_id`; store and reuse the correct identifier consistently
108- Always check existing sections first to avoid creating duplicates
109
110### 4. Search and Filter Tasks
111
112**When to use**: User wants to find tasks by criteria, view today's tasks, or get completed task history
113
114**Tool sequence**:
1151. `TODOIST_GET_ALL_TASKS` - Fetch incomplete tasks with optional filter query [Required]
1162. `TODOIST_GET_TASK` - Get full details of a specific task by ID [Optional]
1173. `TODOIST_GET_COMPLETED_TASKS_BY_COMPLETION_DATE` - Retrieve completed tasks within a date range [Optional]
1184. `TODOIST_LIST_FILTERS` - List user's custom saved filters [Optional]
119
120**Key parameters for GET_ALL_TASKS**:
121- `filter`: Todoist filter syntax string
122 - Keywords: `today`, `tomorrow`, `overdue`, `no date`, `recurring`, `subtask`
123 - Priority: `p1` (urgent), `p2`, `p3`, `p4` (normal)
124 - Projects: `#ProjectName` (must exist in account)
125 - Labels: `@LabelName` (must exist in account)
126 - Date ranges: `7 days`, `-7 days`, `due before: YYYY-MM-DD`, `due after: YYYY-MM-DD`
127 - Search: `search: keyword` for content text search
128 - Operators: `&` (AND), `|` (OR), `!` (NOT)
129- `ids`: List of specific task IDs to retrieve
130
131**Key parameters for GET_COMPLETED_TASKS_BY_COMPLETION_DATE**:
132- `since`: Start date in RFC3339 format (e.g., `2024-01-01T00:00:00Z`)
133- `until`: End date in RFC3339 format
134- `project_id`, `section_id`, `parent_id`: Optional filters
135- `cursor`: Pagination cursor from previous response
136- `limit`: Max results per page (default 50)
137
138**Pitfalls**:
139- `GET_ALL_TASKS` returns ONLY incomplete tasks; use `GET_COMPLETED_TASKS_BY_COMPLETION_DATE` for completed ones
140- Filter terms must reference ACTUAL EXISTING entities; arbitrary text causes HTTP 400 errors
141- Do NOT use `completed`, `!completed`, or `completed after` in GET_ALL_TASKS filter -- causes 400 error
142- `GET_COMPLETED_TASKS_BY_COMPLETION_DATE` limits date range to approximately 3 months between `since` and `until`
143- Search uses `search: keyword` syntax within the filter, not a separate parameter
144
145### 5. Bulk Task Creation
146
147**When to use**: User wants to scaffold a project with multiple tasks at once
148
149**Tool sequence**:
1501. `TODOIST_GET_ALL_PROJECTS` - Find target project ID [Prerequisite]
1512. `TODOIST_GET_ALL_SECTIONS` - Find section IDs for task placement [Optional]
1523. `TODOIST_BULK_CREATE_TASKS` - Create multiple tasks in a single request [Required]
153
154**Key parameters**:
155- `tasks`: Array of task objects, each requiring at minimum `content`
156- Each task object supports: `content`, `description`, `project_id`, `section_id`, `parent_id`, `priority`, `labels`, `due` (object with `string`, `date`, or `datetime`), `duration`, `order`
157
158**Pitfalls**:
159- Each task in the array must have at least the `content` field
160- The `due` field in bulk create is an object with nested fields (`string`, `date`, `datetime`, `lang`) -- different structure from CREATE_TASK's flat fields
161- All tasks can target different projects/sections within the same batch
162
163## Common Patterns
164
165### ID Resolution
166Always resolve human-readable names to IDs before operations:
167- **Project name -> Project ID**: `TODOIST_GET_ALL_PROJECTS`, match by `name` field
168- **Section name -> Section ID**: `TODOIST_GET_ALL_SECTIONS` with `project_id`
169- **Task content -> Task ID**: `TODOIST_GET_ALL_TASKS` with `filter` or `search: keyword`
170
171### Pagination
172- `TODOIST_GET_ALL_TASKS`: Returns all matching incomplete tasks (no pagination needed)
173- `TODOIST_GET_COMPLETED_TASKS_BY_COMPLETION_DATE`: Uses cursor-based pagination; follow `cursor` from response until no more results
174- `TODOIST_GET_ALL_PROJECTS` and `TODOIST_GET_ALL_SECTIONS`: Return all results (no pagination)
175
176### Due Date Handling
177- Natural language: Use `due_string` (e.g., `"tomorrow at 3pm"`, `"every Monday"`)
178- Specific date: Use `due_date` in `YYYY-MM-DD` format
179- Specific datetime: Use `due_datetime` in RFC3339 format (`YYYY-MM-DDTHH:mm:ssZ`)
180- Only use ONE due field at a time (except `due_lang` which can accompany any)
181- Recurring tasks: Use natural language in `due_string` (e.g., `"every Friday at 9am"`)
182
183## Known Pitfalls
184
185### ID Formats
186- Task IDs can be numeric (`"2995104339"`) or alphanumeric (`"6X4Vw2Hfmg73Q2XR"`)
187- Project IDs similarly vary; prefer the format returned by the API
188- Some tools accept only numeric IDs; if 400 error occurs, try fetching the numeric `id` via GET_PROJECT
189- Response objects may contain both `id` and `v2_id`; use `id` for API operations
190
191### Priority Inversion
192- API priority: 1 = normal, 4 = urgent
193- Todoist UI display: p1 = urgent, p4 = normal
194- This is inverted; always clarify with the user which convention they mean
195
196### Filter Syntax
197- Filter terms must reference real entities in the user's account
198- `#NonExistentProject` or `@NonExistentLabel` will cause HTTP 400
199- Use `search: keyword` for text search, not bare keywords
200- Combine with `&` (AND), `|` (OR), `!` (NOT)
201- `completed` filters do NOT work on GET_ALL_TASKS endpoint
202
203### Rate Limits
204- Todoist API has rate limits; batch operations should use `BULK_CREATE_TASKS` where possible
205- Space out rapid sequential requests to avoid throttling
206
207## Quick Reference
208
209| Task | Tool Slug | Key Params |
210|------|-----------|------------|
211| List all projects | `TODOIST_GET_ALL_PROJECTS` | (none) |
212| Get project | `TODOIST_GET_PROJECT` | `project_id` |
213| Create project | `TODOIST_CREATE_PROJECT` | `name`, `color`, `view_style` |
214| Update project | `TODOIST_UPDATE_PROJECT` | `project_id`, `name`, `color` |
215| List sections | `TODOIST_GET_ALL_SECTIONS` | `project_id` |
216| Create section | `TODOIST_CREATE_SECTION` | `project_id`, `name`, `order` |
217| Update section | `TODOIST_UPDATE_SECTION` | `section_id`, `name` |
218| Delete section | `TODOIST_DELETE_SECTION` | `section_id` |
219| Get all tasks | `TODOIST_GET_ALL_TASKS` | `filter`, `ids` |
220| Get task | `TODOIST_GET_TASK` | `task_id` |
221| Create task | `TODOIST_CREATE_TASK` | `content`, `project_id`, `due_string`, `priority` |
222| Bulk create tasks | `TODOIST_BULK_CREATE_TASKS` | `tasks` (array) |
223| Update task | `TODOIST_UPDATE_TASK` | `task_id`, `content`, `due_string` |
224| Complete task | `TODOIST_CLOSE_TASK` | `task_id` |
225| Reopen task | `TODOIST_REOPEN_TASK` | `task_id` |
226| Delete task | `TODOIST_DELETE_TASK` | `task_id` |
227| Completed tasks | `TODOIST_GET_COMPLETED_TASKS_BY_COMPLETION_DATE` | `since`, `until` |
228| List filters | `TODOIST_LIST_FILTERS` | `sync_token` |
229
230## When to Use
231This skill is applicable to execute the workflow or actions described in the overview.
232
233## Limitations
234- Use this skill only when the task clearly matches the scope described above.
235- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
236- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.