lark-workflow-standup-report

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

日程待办摘要工作流

Schedule & To-Do Summary Workflow

CRITICAL — 开始前 MUST 先用 Read 工具读取
../lark-shared/SKILL.md
,其中包含认证、权限处理
CRITICAL — MUST use the Read tool to read
../lark-shared/SKILL.md
before starting, which contains authentication and permission handling

适用场景

Applicable Scenarios

  • "今天有什么安排" / "今天的日程和待办"
  • "明天有什么会" / "明日日程与未完成任务"
  • "帮我看看今天要做什么" / "早报摘要"
  • "开工摘要" / "standup report"
  • "这周还有哪些安排"
  • "What's on my schedule today?" / "Today's schedule and to-dos"
  • "What meetings do I have tomorrow?" / "Tomorrow's schedule and incomplete tasks"
  • "Help me check what I need to do today" / "Morning briefing summary"
  • "Work start summary" / "standup report"
  • "What arrangements do I have left this week?"

前置条件

Prerequisites

仅支持 user 身份。执行前确保已授权:
bash
lark-cli auth login --domain calendar,task
Only supports user identity. Ensure authorization is completed before execution:
bash
lark-cli auth login --domain calendar,task

工作流

Workflow

{date} ─┬─► calendar +agenda [--start/--end] ──► 日程列表(会议/事件)
        └─► task +get-my-tasks [--due-end]    ──► 未完成待办列表
              AI 汇总(时间转换 + 冲突检测 + 排序)──► 摘要
{date} ─┬─► calendar +agenda [--start/--end] ──► Schedule List (Meetings/Events)
        └─► task +get-my-tasks [--due-end]    ──► Incomplete To-Do List
              AI Summary (Time Conversion + Conflict Detection + Sorting)──► Summary

Step 1: 获取日程

Step 1: Get Schedules

bash
undefined
bash
undefined

今天(默认,无需额外参数)

Today (default, no additional parameters required)

lark-cli calendar +agenda
lark-cli calendar +agenda

指定日期范围(必须使用 ISO 8601 格式,不支持 "tomorrow" 等自然语言)

Specify date range (must use ISO 8601 format, natural language like "tomorrow" is not supported)

lark-cli calendar +agenda --start "2026-03-26T00:00:00+08:00" --end "2026-03-26T23:59:59+08:00"

> **注意**:`--start` / `--end` 仅支持 ISO 8601 格式(如 `2026-01-01` 或 `2026-01-01T15:04:05+08:00`)和 Unix timestamp,**不支持** `"tomorrow"`、`"next monday"` 等自然语言。需要 AI 根据当前日期自行计算目标日期。

输出包含:event\_id、summary、start\_time(含 timestamp + timezone)、end\_time、free\_busy\_status、self\_rsvp\_status。
lark-cli calendar +agenda --start "2026-03-26T00:00:00+08:00" --end "2026-03-26T23:59:59+08:00"

> **Note**: `--start` / `--end` only supports ISO 8601 format (e.g., `2026-01-01` or `2026-01-01T15:04:05+08:00`) and Unix timestamp, **does not support** natural language like `"tomorrow"`, `"next monday"`, etc. The AI needs to calculate the target date automatically based on the current date.

Output includes: event_id, summary, start_time (including timestamp + timezone), end_time, free_busy_status, self_rsvp_status.

Step 2: 获取未完成待办

Step 2: Get Incomplete To-Dos

bash
undefined
bash
undefined

默认:返回分配给当前用户的未完成任务(最多 20 条)

Default: Returns incomplete tasks assigned to the current user (max 20 items)

lark-cli task +get-my-tasks
lark-cli task +get-my-tasks

只看指定日期前到期的(推荐用于摘要场景,减少数据量)

Only view tasks due before the specified date (recommended for summary scenarios to reduce data volume)

lark-cli task +get-my-tasks --due-end "2026-03-27T23:59:59+08:00"
lark-cli task +get-my-tasks --due-end "2026-03-27T23:59:59+08:00"

获取全部(超过 20 条时)

Get all tasks (when more than 20 items)

lark-cli task +get-my-tasks --page-all

> **注意**:不带过滤条件时可能返回大量历史待办(实测 30+ 条、100KB+),容易超出上下文限制。摘要场景建议:
> - 用 `--due-end` 过滤出目标日期前到期的任务
> - 如果也需要无截止日期的任务,可不加过滤,但 AI 汇总时只展示**近 30 天内创建的**,其余折叠为"其他 N 项历史待办"
lark-cli task +get-my-tasks --page-all

> **Note**: Without filtering conditions, a large number of historical to-dos may be returned (tested 30+ items, 100KB+), which may easily exceed context limits. Recommendations for summary scenarios:
> - Use `--due-end` to filter tasks due before the target date
> - If tasks without due dates are also needed, no filtering is required, but when the AI summarizes, only **those created within the last 30 days** will be displayed, and the rest will be collapsed into "Other N historical to-dos"

Step 3: AI 汇总

Step 3: AI Summary

将 Step 1 和 Step 2 的结果整合,按以下结构输出:
undefined
Integrate the results of Step 1 and Step 2, and output according to the following structure:
undefined

{日期}摘要({YYYY-MM-DD 星期X})

{Date} Summary (YYYY-MM-DD, WeekX)

日程安排

Schedule Arrangements

时间事件组织者状态
09:00-10:00产品需求评审张三已接受
14:00-15:00技术方案讨论李四待确认
TimeEventOrganizerStatus
09:00-10:00Product Requirements ReviewZhang SanAccepted
14:00-15:00Technical Solution DiscussionLi SiPending Confirmation

待办事项

To-Do Items

  • {task_summary}(截止:{due_date})
  • {task_summary}
  • {task_summary} (Due: {due_date})
  • {task_summary}

小结

Summary

  • 共 {n} 场会议,{m} 项待办
  • 冲突提醒:{列出时间重叠的日程}
  • 空闲时段:{free_slots}(根据日程推算)

**数据处理规则:**

1. **时间转换**:API 返回 Unix timestamp,需根据 `timezone` 字段(通常为 `Asia/Shanghai`)转换为 `HH:mm` 格式
2. **RSVP 状态映射**:
   | API 值 | 显示文案 |
   |--------|---------|
   | `accept` | 已接受 |
   | `decline` | 已拒绝 |
   | `needs_action` | 待确认 |
   | `tentative` | 暂定 |
3. **日程排序**:按开始时间升序排列
4. **冲突检测**:按时间排序后,检查相邻日程是否有时间重叠(前一个 end\_time > 后一个 start\_time),有则在小结中列出冲突组
5. **已拒绝日程**:标注"已拒绝"但不计入忙碌时段和冲突检测
6. **待办排序**:按截止时间升序,已过期的标注"已过期",无截止时间的排在最后
  • Total {n} meetings, {m} to-dos
  • Conflict Reminder: {List overlapping schedules}
  • Free Time Slots: {free_slots} (Calculated based on schedules)

**Data Processing Rules:**

1. **Time Conversion**: The API returns Unix timestamp, which needs to be converted to `HH:mm` format according to the `timezone` field (usually `Asia/Shanghai`)
2. **RSVP Status Mapping**:
   | API Value | Display Text |
   |--------|---------|
   | `accept` | Accepted |
   | `decline` | Declined |
   | `needs_action` | Pending Confirmation |
   | `tentative` | Tentative |
3. **Schedule Sorting**: Sort in ascending order of start time
4. **Conflict Detection**: After sorting by time, check if adjacent schedules overlap (previous end_time > next start_time). If yes, list the conflict groups in the summary
5. **Declined Schedules**: Mark as "Declined" but not included in busy time slots and conflict detection
6. **To-Do Sorting**: Sort in ascending order of due date. Expired tasks are marked as "Expired", and tasks without due dates are placed last

权限表

Permission Table

命令所需 scope
calendar +agenda
calendar:calendar.event:read
task +get-my-tasks
task:task:read
CommandRequired Scope
calendar +agenda
calendar:calendar.event:read
task +get-my-tasks
task:task:read

参考

References

  • lark-shared — 认证、权限(必读)
  • lark-calendar
    +agenda
    详细用法
  • lark-task
    +get-my-tasks
    详细用法
  • lark-shared — Authentication, Permissions (Must Read)
  • lark-calendar — Detailed usage of
    +agenda
  • lark-task — Detailed usage of
    +get-my-tasks