☰
todoist-automation - SKILL
2026/10/1 9:39:38 网站建设 项目流程

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 密钥——只需添加端点即可使用。

  1. 通过确认RUBE_SEARCH_TOOLS有响应来验证 Rube MCP 可用
  2. 使用todoist工具包调用RUBE_MANAGE_CONNECTIONS
  3. 如果连接未处于 ACTIVE 状态,请按照返回的认证链接完成 Todoist OAuth
  4. 在运行任何工作流之前,确认连接状态显示为 ACTIVE

核心工作流

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中嵌入"持续 30 分钟"之类的持续时间短语——请使用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
  • 字母数字/URL 样式的项目 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 时可能出现 HTTP 400 “project_id is invalid”(项目 ID 无效);优先使用数字 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(普通)
    • 项目:#项目名称(必须存在于账户中)
    • 标签:@标签名称(必须存在于账户中)
    • 日期范围: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. 批量创建任务

何时使用:用户想要一次性搭建包含多个任务的项目

工具顺序:

  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:使用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_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

何时使用

本技能适用于执行概述中描述的工作流或操作。

局限性

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询