CRITICAL — Before starting, you MUST first use the Read tool to read ../lark-shared/SKILL.md, which contains authentication and permission handling
Applicable Scenarios
- "What's on today" / "Today's schedule and to-dos"
- "What meetings are tomorrow" / "Tomorrow's schedule and incomplete tasks"
- "Help me see what I need to do today" / "Morning report summary"
- "Kickoff summary" / "standup report"
- "What else is scheduled this week"
Prerequisites
Only user identityis supported. Before execution, ensure authorization has been granted:
lark-cli auth login --domain calendar,task
Workflow
{date} ─┬─► calendar +agenda [--start/--end] ──► 日程列表(会议/事件)
└─► task +get-my-tasks [--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/--endOnly ISO 8601 format is supported (e.g.,2026-01-01or2026-01-01T15:04:05+08:00) and Unix timestamp;not supported"tomorrow"、"next monday"and other natural language. The AI needs to calculate the target date itself 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: Get Incomplete To-Dos
# 默认:返回分配给当前用户的未完成任务(最多 20 条)
lark-cli task +get-my-tasks
# 只看指定日期前到期的(推荐用于摘要场景,减少数据量)
lark-cli task +get-my-tasks --due-end "2026-03-27T23:59:59+08:00"
# 获取全部(超过 20 条时)
lark-cli task +get-my-tasks --page-all
Note: Without filter conditions, it may return a large number of historical to-dos (measured at 30+ items, 100KB+), which easily exceeds the context limit. For summary scenarios, it is recommended to:
- Use
--due-endto filter out tasks due before the target date- If tasks without due dates are also needed, no filter may be added, but when summarizing, the AI should only displaythose created within the last 30 days, and collapse the rest into "N other 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:
- Time conversion: The API returns a Unix timestamp, which needs to be converted to
timezoneformat based on theAsia/Shanghaifield (usuallyHH:mm) - RSVP status mapping:
API value Display text acceptAccepted declineDeclined needs_actionPending confirmation tentativeTentative - Schedule sorting: Sort in ascending order by start time
- Conflict detection: After sorting by time, check whether adjacent schedules overlap in time (the previous end_time > the next start_time); if so, list the conflict groups in the summary
- Declined schedules: Mark as "Declined" but do not count them in busy periods or conflict detection
- To-do sorting: Sort in ascending order by due time; mark overdue ones as "Overdue"; those without a due time are placed last
Permission Table
| Command | Required scope |
|---|---|
calendar +agenda |
calendar:calendar.event:read |
task +get-my-tasks |
task:task:read |
Reference
- lark-shared — Authentication, permissions (required reading)
- lark-calendar —
+agendaDetailed usage - lark-task —
+get-my-tasksDetailed usage