name: todoist-automation
description: “Automate Todoist task management, projects, sections, filtering, and bulk operations via Rube MCP (Composio). Always search tools first for current schemas.”
risk: critical
source: community
date_added: “2026-02-27”
通过 Rube MCP 实现 Todoist 自动化
通过 Composio 的 Todoist 工具包自动化 Todoist 操作,包括任务创建与管理、项目组织、分区管理、过滤以及批量任务工作流。
前提条件
- Rube MCP 必须已连接(
RUBE_SEARCH_TOOLS可用) - 通过
RUBE_MANAGE_CONNECTIONS以todoist工具包建立有效的 Todoist 连接 - 始终先调用
RUBE_SEARCH_TOOLS以获取当前工具架构
设置
获取 Rube MCP:在客户端配置中将https://rube.app/mcp添加为 MCP 服务器。无需 API 密钥——只需添加端点即可使用。
- 通过确认
RUBE_SEARCH_TOOLS有响应来验证 Rube MCP 可用 - 使用
todoist工具包调用RUBE_MANAGE_CONNECTIONS - 如果连接未处于 ACTIVE 状态,请按照返回的认证链接完成 Todoist OAuth
- 在运行任何工作流之前,确认连接状态显示为 ACTIVE
核心工作流
1. 创建与管理任务
何时使用:用户想要创建、更新、完成、重新打开或删除任务
工具顺序:
TODOIST_GET_ALL_PROJECTS- 列出项目以查找目标项目 ID [前提条件]TODOIST_GET_ALL_SECTIONS- 列出项目内的分区以确定任务放置位置 [可选]TODOIST_CREATE_TASK- 使用内容、截止日期、优先级、标签创建单个任务 [必需]TODOIST_BULK_CREATE_TASKS- 在单个请求中创建多个任务 [替代方案]TODOIST_UPDATE_TASK- 修改任务属性(内容、截止日期、优先级、标签)[可选]TODOIST_CLOSE_TASK- 将任务标记为已完成 [可选]TODOIST_REOPEN_TASK- 恢复先前已完成的任务 [可选]TODOIST_DELETE_TASK- 永久删除任务 [可选]
CREATE_TASK 的关键参数:
content:任务标题(支持 Markdown 和超链接)description:附加说明(不要在此放置截止日期)project_id:字母数字项目 ID;省略则添加到收件箱section_id:字母数字分区 ID,用于确定项目内的放置位置parent_id:用于创建子任务的任务 IDpriority:1(普通)到 4(紧急)——注意:Todoist 界面显示 p1=紧急,API 中 p4=紧急due_string:自然语言日期,如"tomorrow at 3pm"、"every Friday at 9am"due_date:特定日期,YYYY-MM-DD格式due_datetime:RFC3339 格式YYYY-MM-DDTHH:mm:ssZ的特定日期+时间labels:标签名称字符串数组duration+duration_unit:任务持续时间(例如30+"minute")
陷阱:
- 一次只能使用一个
due_*字段(due_lang例外,它可以伴随任意一个使用) - 不要在
content或description中嵌入截止日期——请使用due_string字段 - 不要在
due_string中嵌入"持续 30 分钟"之类的持续时间短语——请使用duration+duration_unit - API 中的
priority:1=普通,4=紧急(与 Todoist 界面显示相反,界面中 p1=紧急) - 任务 ID 可以是数字或字母数字;请使用 API 返回的格式
CLOSE_TASK标记为已完成;DELETE_TASK永久删除——它们是不同的操作
2. 管理项目
何时使用:用户想要列出、创建、更新或查看项目
工具顺序:
TODOIST_GET_ALL_PROJECTS- 列出所有项目及元数据 [必需]TODOIST_GET_PROJECT- 按 ID 获取特定项目的详细信息 [可选]TODOIST_CREATE_PROJECT- 使用名称、颜色、视图样式创建新项目 [可选]TODOIST_UPDATE_PROJECT- 修改项目属性 [可选]
关键参数:
name:项目名称(创建时必需)color:Todoist 调色板颜色(例如"blue"、"red"、"green"、"charcoal")view_style:"list"(列表)或"board"(看板)布局parent_id:用于创建子项目的父项目 IDis_favorite/favorite:布尔值,标记为收藏project_id:更新和获取操作必需
陷阱:
- 名称相似的项目可能导致选择错误的 project_id;务必核实
CREATE_PROJECT使用favorite,而UPDATE_PROJECT使用is_favorite——字段名不同- 下游操作请使用 API 返回的项目
id,而不是v2_id - 字母数字/URL 样式的项目 ID 可能导致某些工具出现 HTTP 400;有数字 ID 时请使用数字 ID
3. 管理分区
何时使用:用户想要使用分区来组织项目内的任务
工具顺序:
TODOIST_GET_ALL_PROJECTS- 查找目标项目 ID [前提条件]TODOIST_GET_ALL_SECTIONS- 列出现有分区以避免重复 [前提条件]TODOIST_CREATE_SECTION- 在项目中创建新分区 [必需]TODOIST_UPDATE_SECTION- 重命名现有分区 [可选]TODOIST_DELETE_SECTION- 永久删除分区 [可选]
关键参数:
project_id:必需——要在其中创建分区的项目name:分区名称(创建时必需)order:项目内的整数位置(数值越小越靠前)section_id:更新和删除操作必需
陷阱:
CREATE_SECTION需要project_id和name——省略 project_id 会导致 400 错误- 使用字母数字 ID 时可能出现 HTTP 400 “project_id is invalid”(项目 ID 无效);优先使用数字 ID
- 删除分区可能会以不明显的方式移动或重新分组其任务
- 响应可能同时包含
id和v2_id;请一致地存储并复用正确的标识符 - 始终先检查现有分区,避免创建重复项
4. 搜索和过滤任务
何时使用:用户想要按条件查找任务、查看今日任务或获取已完成任务历史
工具顺序:
TODOIST_GET_ALL_TASKS- 获取未完成任务,可带可选过滤查询 [必需]TODOIST_GET_TASK- 按 ID 获取特定任务的完整详情 [可选]TODOIST_GET_COMPLETED_TASKS_BY_COMPLETION_DATE- 检索日期范围内的已完成任务 [可选]TODOIST_LIST_FILTERS- 列出用户的已保存自定义过滤条件 [可选]
GET_ALL_TASKS 的关键参数:
filter:Todoist 过滤语法字符串- 关键字:
today(今天)、tomorrow(明天)、overdue(已逾期)、no date(无日期)、recurring(重复)、subtask(子任务) - 优先级:
p1(紧急)、p2、p3、p4(普通) - 项目:
#项目名称(必须存在于账户中) - 标签:
@标签名称(必须存在于账户中) - 日期范围:
7 days(7 天)、-7 days(前 7 天)、due before: YYYY-MM-DD(截止于……之前)、due after: YYYY-MM-DD(截止于……之后) - 搜索:
search: 关键字用于内容文本搜索 - 运算符:
&(与)、|(或)、!(非)
- 关键字:
ids:要检索的特定任务 ID 列表
GET_COMPLETED_TASKS_BY_COMPLETION_DATE 的关键参数:
since:RFC3339 格式的开始日期(例如2024-01-01T00:00:00Z)until:RFC3339 格式的结束日期project_id、section_id、parent_id:可选过滤条件cursor:来自前一次响应的分页游标limit:每页最大结果数(默认 50)
陷阱:
GET_ALL_TASKS仅返回未完成的任务;已完成任务请使用GET_COMPLETED_TASKS_BY_COMPLETION_DATE- 过滤条件必须引用实际存在的实体;任意文本会导致 HTTP 400 错误
- 不要在 GET_ALL_TASKS 过滤器中使用
completed、!completed或completed after——会导致 400 错误 GET_COMPLETED_TASKS_BY_COMPLETION_DATE将since和until之间的日期范围限制为大约 3 个月- 搜索使用过滤器内的
search: 关键字语法,而不是单独的参数
5. 批量创建任务
何时使用:用户想要一次性搭建包含多个任务的项目
工具顺序:
TODOIST_GET_ALL_PROJECTS- 查找目标项目 ID [前提条件]TODOIST_GET_ALL_SECTIONS- 查找用于任务放置的分区 ID [可选]TODOIST_BULK_CREATE_TASKS- 在单个请求中创建多个任务 [必需]
关键参数:
tasks:任务对象数组,每个对象至少需要content- 每个任务对象支持:
content、description、project_id、section_id、parent_id、priority、labels、due(包含string、date或datetime的对象)、duration、order
陷阱:
- 数组中的每个任务必须至少包含
content字段 - 批量创建中的
due字段是一个包含嵌套字段(string、date、datetime、lang)的对象——与 CREATE_TASK 的扁平字段结构不同 - 所有任务可以在同一批次中指向不同的项目/分区
常见模式
ID 解析
在操作之前始终将人类可读的名称解析为 ID:
- 项目名称 -> 项目 ID:
TODOIST_GET_ALL_PROJECTS,按name字段匹配 - 分区名称 -> 分区 ID:使用
project_id调用TODOIST_GET_ALL_SECTIONS - 任务内容 -> 任务 ID:使用
filter或search: 关键字调用TODOIST_GET_ALL_TASKS
分页
TODOIST_GET_ALL_TASKS:返回所有匹配的未完成任务(无需分页)TODOIST_GET_COMPLETED_TASKS_BY_COMPLETION_DATE:使用基于游标的分页;跟随响应中的cursor直到没有更多结果TODOIST_GET_ALL_PROJECTS和TODOIST_GET_ALL_SECTIONS:返回所有结果(无需分页)
截止日期处理
- 自然语言:使用
due_string(例如"tomorrow at 3pm"、"every Monday") - 特定日期:使用
YYYY-MM-DD格式的due_date - 特定日期时间:使用 RFC3339 格式(
YYYY-MM-DDTHH:mm:ssZ)的due_datetime - 一次只使用一个截止日期字段(
due_lang例外,它可以伴随任意一个使用) - 重复任务:在
due_string中使用自然语言(例如"every Friday at 9am")
已知陷阱
ID 格式
- 任务 ID 可以是数字(
"2995104339")或字母数字("6X4Vw2Hfmg73Q2XR") - 项目 ID 也各不相同;优先使用 API 返回的格式
- 某些工具只接受数字 ID;如果出现 400 错误,请尝试通过 GET_PROJECT 获取数字
id - 响应对象可能同时包含
id和v2_id;API 操作请使用id
优先级反转
- API 优先级:1 = 普通,4 = 紧急
- Todoist 界面显示:p1 = 紧急,p4 = 普通
- 这是相反的;始终与用户确认他们指的是哪种约定
过滤语法
- 过滤条件必须引用用户账户中的真实实体
#不存在的项目或@不存在的标签会导致 HTTP 400- 文本搜索请使用
search: 关键字,不要使用裸关键字 - 使用
&(与)、|(或)、!(非)组合 completed过滤器在 GET_ALL_TASKS 端点上不生效
速率限制
- Todoist API 有速率限制;批量操作应尽可能使用
BULK_CREATE_TASKS - 间隔开快速的连续请求,避免被限流
快速参考
| 任务 | 工具标识 | 关键参数 |
|---|---|---|
| 列出所有项目 | TODOIST_GET_ALL_PROJECTS | (无) |
| 获取项目 | TODOIST_GET_PROJECT | project_id |
| 创建项目 | TODOIST_CREATE_PROJECT | name,color,view_style |
| 更新项目 | TODOIST_UPDATE_PROJECT | project_id,name,color |
| 列出分区 | TODOIST_GET_ALL_SECTIONS | project_id |
| 创建分区 | TODOIST_CREATE_SECTION | project_id,name,order |
| 更新分区 | TODOIST_UPDATE_SECTION | section_id,name |
| 删除分区 | TODOIST_DELETE_SECTION | section_id |
| 获取所有任务 | TODOIST_GET_ALL_TASKS | filter,ids |
| 获取任务 | TODOIST_GET_TASK | task_id |
| 创建任务 | TODOIST_CREATE_TASK | content,project_id,due_string,priority |
| 批量创建任务 | TODOIST_BULK_CREATE_TASKS | tasks(数组) |
| 更新任务 | TODOIST_UPDATE_TASK | task_id,content,due_string |
| 完成任务 | TODOIST_CLOSE_TASK | task_id |
| 重新打开任务 | TODOIST_REOPEN_TASK | task_id |
| 删除任务 | TODOIST_DELETE_TASK | task_id |
| 已完成任务 | TODOIST_GET_COMPLETED_TASKS_BY_COMPLETION_DATE | since,until |
| 列出过滤条件 | TODOIST_LIST_FILTERS | sync_token |
何时使用
本技能适用于执行概述中描述的工作流或操作。
局限性
- 仅当任务与上述范围明确匹配时使用本技能。
- 不要将输出视为环境特定验证、测试或专家审查的替代品。
- 如果缺少必需的输入、权限、安全边界或成功标准,请停下来请求澄清。