SuperAPI AI Directory

lark-workflow-standup-report

Office & productivity

View repository

Updated 10-15 08:33

About this skill

Calendar and To-Do Summary Workflow

CRITICAL — Before starting, you MUST first use the Read tool to read ../lark-shared/SKILL.md, which contains authentication and permission handling

Use Cases

  • "What's on today" / "Today's schedule and to-dos"
  • "What meetings are tomorrow" / "Tomorrow's schedule and incomplete tasks"
  • "Help me see what to do today" / "Morning report summary"
  • "Kickoff summary" / "standup report"
  • "What else is scheduled this week"

Prerequisites

Only supports user identity. Ensure authorization before execution:

lark-cli auth login --domain calendar,task

Workflow

{date} ─┬─► calendar +agenda [--start/--end]              ──► 日程列表(会议/事件)
        └─► task +get-my-tasks --complete=false [--due-end] ──► 未完成待办列表
                    │
                    ▼
              AI 汇总(时间转换 + 冲突检测 + 排序)──► 摘要

Step 1: Get schedule

# 今天(默认,无需额外参数)
lark-cli calendar +agenda

# 指定日期范围(必须使用 ISO 8601 格式,不支持 "tomorrow" 等自然语言)
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 "tomorrow"、"next monday" and other natural language. The AI needs to calculate the target date itself based on the current date.

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

Step 2: Get incomplete to-dos

# 默认 pending 摘要:必须显式过滤未完成任务(最多 20 条)
lark-cli task +get-my-tasks --complete=false

# 只看指定日期前到期的未完成任务(推荐用于摘要场景,减少数据量)
lark-cli task +get-my-tasks --complete=false --due-end "2026-03-27T23:59:59+08:00"

# 获取全部未完成任务(超过 20 条时)
lark-cli task +get-my-tasks --complete=false --page-all

Note:+get-my-tasks When --complete is not included,both completed and incomplete tasks are returned, which will show completed tasks as "to-dos" in the summary. For pending aggregation scenarios such as standups/daily reports,mustexplicitly include --complete=false, do not omit it.

At the data volume level, adding a filter is also recommended:

  • Use --due-end to filter out tasks due before the target date
  • If tasks without a due date are also needed, --due-endmay be omitted, but during AI summarization only showthose created within the last 30 days, and collapse the rest as "Other N historical to-dos"

Step 3: AI summary

Integrate the results of Step 1 and Step 2, and output according to the following structure:

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

### 日程安排
| 时间 | 事件 | 组织者 | 状态 |
|------|------|--------|------|
| 09:00-10:00 | 产品需求评审 | 张三 | 已接受 |
| 14:00-15:00 | 技术方案讨论 | 李四 | 待确认 |

### 待办事项
- [ ] {task_summary}(截止:{due_date})
- [ ] {task_summary}

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

Data processing rules:

  1. Time conversion: The API returns a Unix timestamp, which needs to be converted based on the timezone field (usually Asia/Shanghai) to HH:mm format
  2. RSVP status mapping:
    API value Display text
    accept Accepted
    decline Declined
    needs_action Pending confirmation
    tentative Tentative
  3. Schedule sorting: sort by start time in ascending order
  4. Conflict detection: after sorting by time, check whether adjacent events overlap in time (the previous end_time > the next start_time); if so, list the conflict groups in the summary
  5. Declined events: mark as "Declined" but do not count them in busy periods and conflict detection
  6. To-do sorting: sort by due time in ascending order, mark overdue ones as "Overdue", and put those without a due time at the end

Permission table

Command Required scope
calendar +agenda calendar:calendar.event:read
task +get-my-tasks task:task:read

Reference