mcpField
T
todoist-automation

todoist-automation

github.com/sickn33生产力48.8k93 次安装今天更新
代码仓库

关于 todoist-automation

todoist-automation 是通过 Composio 的 Todoist 工具包自动处理任务与项目流程的技能,涵盖任务管理、组织、筛选和批量创建,并强调先解析 ID 再执行变更。

主要功能

  1. 01创建、更新、完成和重开任务
  2. 02管理项目与分区
  3. 03搜索和筛选任务
  4. 04批量创建任务

适用场景

  1. 01向项目添加定期或限期任务
  2. 02按分区整理项目任务
  3. 03按条件或关键词查找任务
  4. 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 访问。

  1. 确认 RUBE_SEARCH_TOOLS 有响应,以验证 Rube MCP 是否可用
  2. 使用工具包 todoist 调用 RUBE_MANAGE_CONNECTIONS
  3. 如果连接状态不是 ACTIVE,请通过返回的身份验证链接完成 Todoist OAuth
  4. 运行任何工作流前,确认连接状态为 ACTIVE

以下工具 slug 和参数示例仅供参考,可能已过时。以发现的架构和经过身份验证的账户为准。按原样获取 ID;不要转换不透明标识符,也不要尝试使用其他类型的 ID 绕过错误。只执行用户请求的操作,修改前检查批量操作目标,并在重试前核实结果不确定的写入操作。

核心工作流

1. 创建和管理任务

适用场景:用户想要创建、更新、完成、重新打开或删除任务

工具调用顺序:

  1. TODOIST_GET_ALL_PROJECTS — 列出项目,以查找目标项目 ID[先决条件]
  2. TODOIST_GET_ALL_SECTIONS — 列出项目中的分区,以确定任务位置[可选]
  3. TODOIST_CREATE_TASK — 创建单个任务,并设置内容、截止日期、优先级和标签[必需]
  4. TODOIST_BULK_CREATE_TASKS — 在一次请求中创建多个任务[替代方案]
  5. TODOIST_UPDATE_TASK — 修改任务属性(内容、截止日期、优先级、标签)[可选]
  6. TODOIST_CLOSE_TASK — 将任务标记为已完成[可选]
  7. TODOIST_REOPEN_TASK — 恢复此前已完成的任务[可选]
  8. TODOIST_DELETE_TASK — 永久删除任务[可选]

CREATE_TASK 的关键参数:

  • content:任务标题(支持 Markdown 和超链接)
  • description:补充备注(不要在此处填写截止日期)
  • project_id:字母数字格式的项目 ID;省略则添加到收件箱
  • section_id:字母数字格式的分区 ID,用于指定任务在项目中的位置
  • parent_id:用于创建子任务的任务 ID
  • priority: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 中加入“for 30 minutes”之类的时长表述,请使用 duration + duration_unit
  • API 中的 priority:1 = 普通,4 = 紧急(与 Todoist 界面显示相反,界面中 p1 = 紧急)
  • 任务 ID 可以是数字或字母数字格式;请使用 API 返回的格式
  • CLOSE_TASK 会将任务标记为已完成;DELETE_TASK 会永久删除任务,两者是不同的操作
2. 管理项目

适用场景:用户想要列出、创建、更新或查看项目

工具调用顺序:

  1. TODOIST_GET_ALL_PROJECTS - 列出所有项目及其元数据 [必需]
  2. TODOIST_GET_PROJECT - 按 ID 获取特定项目的详细信息 [可选]
  3. TODOIST_CREATE_PROJECT - 使用名称、颜色和视图样式创建新项目 [可选]
  4. TODOIST_UPDATE_PROJECT - 修改项目属性 [可选]

关键参数:

  • name:项目名称(创建时必需)
  • color:Todoist 调色板中的颜色(例如,"blue"、"red"、"green"、"charcoal")
  • view_style:"list" 或 "board" 布局
  • parent_id:用于创建子项目的父项目 ID
  • is_favorite / favorite:用于标记为收藏的布尔值
  • project_id:更新和获取操作必需

注意事项:

  • 名称相似的项目可能导致选错 project_id;务必核实
  • CREATE_PROJECT 使用 favorite,而 UPDATE_PROJECT 使用 is_favorite——字段名称不同
  • 后续操作请使用 API 返回的项目 id,而非 v2_id
  • 对于 HTTP 400 错误,请检查当前工具架构和目标;不要用猜测的数字 ID 替换返回的不透明 ID
3. 管理区段

适用场景:用户想要使用区段整理项目中的任务

工具调用顺序:

  1. TODOIST_GET_ALL_PROJECTS - 查找目标项目 ID [前置条件]
  2. TODOIST_GET_ALL_SECTIONS - 列出现有区段以避免重复 [前置条件]
  3. TODOIST_CREATE_SECTION - 在项目中创建新区段 [必需]
  4. TODOIST_UPDATE_SECTION - 重命名现有区段 [可选]
  5. TODOIST_DELETE_SECTION - 永久删除区段 [可选]

关键参数:

  • project_id:必需——要在其中创建区段的项目
  • name:区段名称(创建时必需)
  • order:区段在项目中的整数位置(数值越小越靠前)
  • section_id:更新和删除操作必需

注意事项:

  • CREATE_SECTION 需要 project_id 和 name——省略 project_id 会导致 400 错误
  • 如果项目 ID 无效,请使用当前 API 重新解析目标,并原样保留返回的 ID
  • 删除区段可能会以不易察觉的方式移动或重新归组其中的任务
  • 响应可能同时包含 id 和 v2_id;请始终一致地存储并重用正确的标识符
  • 请先检查现有区段,避免创建重复项
4. 搜索和筛选任务

使用场景:用户想按条件查找任务、查看今天的任务,或获取已完成任务的历史记录

工具调用顺序:

  1. TODOIST_GET_ALL_TASKS - 获取未完成任务,可选使用筛选查询 [必需]
  2. TODOIST_GET_TASK - 按 ID 获取特定任务的完整详情 [可选]
  3. TODOIST_GET_COMPLETED_TASKS_BY_COMPLETION_DATE - 获取指定日期范围内已完成的任务 [可选]
  4. 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. 批量创建任务

使用场景:用户想一次创建多个任务,为项目搭建基本结构

工具调用顺序:

  1. TODOIST_GET_ALL_PROJECTS - 查找目标项目 ID [前置条件]
  2. TODOIST_GET_ALL_SECTIONS - 查找用于放置任务的分区 ID [可选]
  3. 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_PROJECTproject_id
创建项目TODOIST_CREATE_PROJECTname、color、view_style
更新项目TODOIST_UPDATE_PROJECTproject_id、name、color
列出分区TODOIST_GET_ALL_SECTIONSproject_id
创建分区TODOIST_CREATE_SECTIONproject_id、name、order
更新分区TODOIST_UPDATE_SECTIONsection_id、name
删除分区TODOIST_DELETE_SECTIONsection_id
获取所有任务TODOIST_GET_ALL_TASKSfilter、ids
获取任务TODOIST_GET_TASKtask_id
创建任务TODOIST_CREATE_TASKcontent、project_id、due_string、priority
批量创建任务TODOIST_BULK_CREATE_TASKStasks(数组)
更新任务TODOIST_UPDATE_TASKtask_id、content、due_string
完成任务TODOIST_CLOSE_TASKtask_id
重新打开任务TODOIST_REOPEN_TASKtask_id
删除任务TODOIST_DELETE_TASKtask_id
已完成的任务TODOIST_GET_COMPLETED_TASKS_BY_COMPLETION_DATEsince、until
列出筛选器TODOIST_LIST_FILTERSsync_token

适用场景

当需要执行概述中描述的工作流或操作时,可使用此技能。

示例

用户请求:

通过 Rube MCP (Composio) 自动管理 Todoist 任务、项目、分区、筛选和批量操作。

限制

  • 仅当任务明确符合上述范围时,才使用此技能。
  • 不要将输出视为环境特定验证、测试或专家审查的替代品。
  • 如果缺少必要的输入、权限、安全边界或成功标准,请暂停并请求澄清。

评论

支持 Markdown