SuperAPI AI Directory

dingtalk-workflow-meeting-todo

Office & productivity

View repository

Updated 10-16 06:23

About this skill

Meeting Todo Tracking (dingtalk-workflow-meeting-todo)

AI extracts todo items from DingTalk calendar event descriptions (what I promised to do + what the other party promised to do). After confirmation via DingTalk message, DingTalk todos are automatically created, and completion status is periodically checked. Compared with the Feishu version, DingTalk has no Miaoju (automatic meeting minutes), so it instead uses AI extraction from calendar event descriptions.

Trigger Methods

Automatically triggered when the user's conversation contains the following keywords:

"会议待办"  "会后的待办"  "追踪待办"  "提取行动项"  "整理会议纪要待办"  "会议行动项"

Working Modes

Mode 1: Batch Extraction (specified time range)

Trigger: "Help me organize the todo items from meetings in the past week" / "Extract this week's meeting action items"

Workflow:

Step 1: 获取时间范围内的日程列表
└── dws calendar event list --start "2026-04-01T00:00:00+08:00" --end "2026-04-06T23:59:59+08:00" --yes -f json → 按日期范围获取日程

Step 2: 逐个获取日程详情(含描述)
└── dws calendar event get --id "eventId" --yes -f json → 获取日程描述和参与者

Step 3: AI 分析日程描述,提取待办事项
├── 识别承诺性语句("我会..."、"你帮我..."、"下周前...")
├── 区分我方待办和对方待办
├── 推断建议截止日(根据上下文关键词:今天/明天/下周/周五等)
└── 去重(与已有待办记录比对)

Step 4: 用户确认后,批量创建钉钉待办(含错误处理)
├── 对每个确认的待办执行 dws todo task create
├── 如果创建失败(errorCode 999 等),立即重试一次
├── 如果重试仍然失败:
│   ├── 将该待办写入 aitable 追踪表(状态标记为"创建失败")
│   └── 通过 DING 通知用户:"待办「XXX」创建失败,已记录到追踪表,请手动创建"
└── 汇总创建结果报告

Output format:

## 日程待办提取报告

找到 N 场日程,其中 M 场有可提取的待办事项。

### 日程:XXX会议(日期)
#### 我方待办
| # | 待办内容 | 建议截止日 |
|---|---------|-----------|
| 1 | 待办描述 | 周五 |
#### 对方待办
| # | 待办内容 | 承诺人 |
|---|---------|--------|
| 1 | 待办描述 | 张三 |

请确认需要创建钉钉待办的条目(回复编号,如 "1 3 5")。

Mode 2: Single Calendar Event Extraction

Trigger: "Extract the action items from today's product review meeting" / "What todos are there for the XXX meeting"

Workflow:

Step 1: 搜索匹配的日程
└── dws calendar event list --start "..." --end "..." --yes -f json → 按日期范围过滤匹配的日程

Step 2: 获取日程详情
└── dws calendar event get --id "eventId" --yes -f json

Step 3: AI 提取待办 → 用户确认 → 创建待办

Mode 3: Completion Check

Trigger: "Are all the meeting todos completed?" / "Check the completion status of todos"

Workflow:

Step 1: 查询所有待办
└── dws todo task list --yes -f json

Step 2: 查询会议待办追踪表
└── dws aitable record query --base-id <base-id> --table-id <table-id> --yes -f json

Step 3: 对比待办状态,生成报告

Output format:

## 会议待办完成情况

| 待办 | 来源日程 | 负责人 | 状态 |
|------|---------|--------|------|
| 待办内容1 | Q2规划会 | 我 | 已完成 ✓ |
| 待办内容2 | Q2规划会 | 我 | 进行中 |
| 待办内容3 | UI评审会 | 李四 | 已过期 ⚠️ |

总计:N 项待办,已完成 M 项,过期 K 项

Mode 4: Automatic Archiving

Trigger: Automatically executed (todos not completed for more than 14 days)

Workflow:

Step 1: 查询所有"已确认"但未完成的待办
Step 2: 筛选出创建时间超过 14 天的
Step 3: 更新状态为"已归档"
└── dws aitable record update --base-id <base-id> --table-id <table-id> --records '[{"recordId":"...","cells":{"确认状态":"已归档"}}]' --yes

Data Initialization

On first use, automatically create the aitable data table:

# 创建 Base
dws aitable base create --name "会议待办追踪" --yes -f json
# 返回 baseId,记为 <mt-base-id>

# 创建数据表
dws aitable table create --base-id <mt-base-id> --name "会议待办" --yes -f json
# 返回 tableId,记为 <mt-table-id>

# 添加业务字段(表创建后自动带一个"标题"primaryDoc字段,需额外添加业务字段)
dws aitable field create --base-id <mt-base-id> --table-id <mt-table-id> --fields '[{"fieldName":"会议主题","type":"text"},{"fieldName":"会议日期","type":"date"},{"fieldName":"日程ID","type":"text"},{"fieldName":"待办内容","type":"text"},{"fieldName":"待办类型","type":"text"},{"fieldName":"负责人","type":"text"},{"fieldName":"建议截止日","type":"date"},{"fieldName":"确认状态","type":"text"},{"fieldName":"关联任务ID","type":"text"}]' --yes -f json

Table structure: Meeting Todos (meeting_todos)

Field Name Type Description
Meeting Topic Text Source calendar event title
Meeting Date Date Calendar event time
Calendar Event ID Text DingTalk calendar eventId
Todo Content Text Extracted todo description
Todo Type Text Our todo / Their todo
Assignee Text Who will do it
Suggested Due Date Date Inferred from context
Confirmation Status Text Pending confirmation/Confirmed/Skipped/Completed/Archived
Related Task ID Text DingTalk todo taskId

dws CLI Command Reference

Get calendar event list

dws calendar event list --start "2026-04-01T00:00:00+08:00" --end "2026-04-06T23:59:59+08:00" --yes -f json

Get calendar event details

dws calendar event get --id "eventId" --yes -f json

Create DingTalk todo

dws todo task create --title "待办内容" --priority "20" --due "2026-04-10T18:00:00+08:00" --yes -f json

Note: dws todo task create The server occasionally throws a NullPointerException, returning errorCode 999. Suggestion: first use --dry-run to verify the parameter format, and retry once if it fails. During testing, you can add the --mock flag to skip actual creation.

View todo list

dws todo task list --page 1 --size 20 --status false --yes -f json

Update todo status

dws todo task done --task-id "taskId" --yes -f json

Write tracking record

dws aitable record create --base-id <mt-base-id> --table-id <mt-table-id> --records '[{"cells":{"标题":"Q2规划会-发送产品路线图","会议主题":"Q2规划会","会议日期":"2026-04-06","待办内容":"发送产品路线图","待办类型":"我方待办","确认状态":"已确认","关联任务ID":"todo_xxx"}}]' --yes -f json

Query tracking records

dws aitable record query --base-id <mt-base-id> --table-id <mt-table-id> --limit 50 --yes -f json

Send DING reminder

dws ding message send --robot-code "bot_code" --users "manager6950" --content "你有 N 个会议待办即将到期" --type "1" --yes

Learning Mode

  • If the user repeatedly rejects a certain type of todo (such as "no need to record this kind of thing"), the AI records the reason for rejection
  • Automatically skip similar content on the next extraction
  • Rejection records are stored in the remarks field of the aitable tracking table

Linked Skill

Linked Skill Data Interaction Description
personal-crm Read contact data Identify attendee identity
morning-brief Provide to-do data Display meeting to-dos in the morning briefing

Notes

  1. DingTalk has no Miaojie (automatic meeting minutes), and to-do extraction depends on the quality of the schedule description. Users are advised to record discussion content and action items in detail when creating schedules
  2. All dws commands must include the --yes flag
  3. dws calendar event list supports --start and --end date filter parameters (ISO 8601 format); specifying a range is recommended to improve query efficiency
  4. The to-do --due parameter format is ISO 8601
  5. Sending DING messages requires configuring robot-code first

Known Issues

  1. dws todo task create The server occasionally throws a NullPointerException and returns errorCode 999. Suggested action: first use --dry-run to verify whether the parameter format is correct, and retry once if it fails. This is a DingTalk server-side issue and does not affect the normal use of other to-do commands such as dws todo task list、dws todo task done .