关于 todoist-automation
todoist-automation 是通过 Composio 的 Todoist 工具包自动处理任务与项目流程的技能,涵盖任务管理、组织、筛选和批量创建,并强调先解析 ID 再执行变更。
主要功能
- 01创建、更新、完成和重开任务
- 02管理项目与分区
- 03搜索和筛选任务
- 04批量创建任务
适用场景
- 01向项目添加定期或限期任务
- 02按分区整理项目任务
- 03按条件或关键词查找任务
- 04一次为项目搭建多个任务
MCP 相关
通过 Rube MCP 查询工具并管理已认证的 Todoist 连接,操作使用 Composio 的 Todoist 工具包。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill todoist-automation安装后在 Claude Code 中输入/todoist-automation确认已加载。
详细介绍
通过 Rube MCP 自动化 Todoist
通过 Composio 的 Todoist 工具包自动执行 Todoist 操作,包括创建和管理任务、整理项目、管理分区、筛选以及批量处理任务。
先决条件
- 必须已连接 Rube MCP(可用
RUBE_SEARCH_TOOLS) - 通过工具包为
todoist的RUBE_MANAGE_CONNECTIONS建立有效的 Todoist 连接 - 始终先调用
RUBE_SEARCH_TOOLS,获取当前工具架构
设置
使用现有的、已获批准的 Rube MCP 连接。如果没有,请仅在用户请求的范围内,遵循宿主支持的设置和身份验证流程;仅添加端点并不能建立经过身份验证的 Todoist 访问。
- 确认
RUBE_SEARCH_TOOLS有响应,以验证 Rube MCP 是否可用 - 使用工具包
todoist调用RUBE_MANAGE_CONNECTIONS - 如果连接状态不是 ACTIVE,请通过返回的身份验证链接完成 Todoist OAuth
- 运行任何工作流前,确认连接状态为 ACTIVE
以下工具 slug 和参数示例仅供参考,可能已过时。以发现的架构和经过身份验证的账户为准。按原样获取 ID;不要转换不透明标识符,也不要尝试使用其他类型的 ID 绕过错误。只执行用户请求的操作,修改前检查批量操作目标,并在重试前核实结果不确定的写入操作。
核心工作流
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-DDdue_datetime:特定日期和时间,采用 RFC3339 格式YYYY-MM-DDTHH:mm:ssZlabels:标签名称字符串数组duration+duration_unit:任务时长(例如,30+"minute")
注意事项:
- 一次只能使用一个
due_*字段(due_lang除外,它可以与任何字段一起使用) - 不要将截止日期写入
content或description,请使用due_string字段 - 不要在
due_string中加入“for 30 minutes”之类的时长表述,请使用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 - 对于 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 无效,请使用当前 API 重新解析目标,并原样保留返回的 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(普通) - 项目:
#ProjectName(必须在账户中存在) - 标签:
@LabelName(必须在账户中存在) - 日期范围:
7 days、-7 days、due before: YYYY-MM-DD、due after: YYYY-MM-DD - 搜索:使用
search: keyword搜索内容文本 - 运算符:
&(与)、|(或)、!(非)
- 关键词:
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: keyword语法,而非单独的参数
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:调用
TODOIST_GET_ALL_SECTIONS并提供project_id - 任务内容 -> 任务 ID:调用
TODOIST_GET_ALL_TASKS并使用filter或search: keyword
分页
TODOIST_GET_ALL_TASKS:检查响应中的分页信息;按当前架构跟进游标,直到所有结果均已获取后,再声称已完成完整清单TODOIST_GET_COMPLETED_TASKS_BY_COMPLETION_DATE:使用基于游标的分页;跟进响应中的cursor,直到没有更多结果TODOIST_GET_ALL_PROJECTS和TODOIST_GET_ALL_SECTIONS:也要检查游标;当前 Todoist API 会对任务、项目和分区进行分页,即使连接器会聚合多个页面也是如此
截止日期处理
- 自然语言:使用
due_string(例如,"tomorrow at 3pm"、"every Monday") - 特定日期:使用
due_date,格式为YYYY-MM-DD - 特定日期时间:使用
due_datetime,格式为 RFC3339(YYYY-MM-DDTHH:mm:ssZ) - 每次仅使用一个截止日期字段(
due_lang除外,它可以与任意字段搭配使用) - 重复任务:在
due_string中使用自然语言(例如,"every Friday at 9am")
已知注意事项
ID 格式
- 任务 ID 可以是数字格式(
"2995104339")或字母数字格式("6X4Vw2Hfmg73Q2XR") - 项目 ID 的格式也各不相同;优先使用 API 返回的格式
- 遇到 ID 错误时,检查 API/工具版本兼容性;不要转换不透明 ID
- 响应对象可能同时包含
id和v2_id;API 操作请使用id
优先级反转
- API 优先级:1 = 普通,4 = 紧急
- Todoist UI 显示:p1 = 紧急,p4 = 普通
- 两者的对应关系是反转的;务必向用户确认其指的是哪种规则
筛选器语法
- 筛选条件必须引用用户账户中的真实实体
#NonExistentProject或@NonExistentLabel会导致 HTTP 400 错误- 文本搜索请使用
search: keyword,不要使用裸关键词 - 使用
&(AND)、|(OR)、!(NOT)组合条件 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 |
适用场景
当需要执行概述中描述的工作流或操作时,可使用此技能。
示例
用户请求:
通过 Rube MCP (Composio) 自动管理 Todoist 任务、项目、分区、筛选和批量操作。
限制
- 仅当任务明确符合上述范围时,才使用此技能。
- 不要将输出视为环境特定验证、测试或专家审查的替代品。
- 如果缺少必要的输入、权限、安全边界或成功标准,请暂停并请求澄清。