CRITICAL — Before starting, you MUST first use the Read tool to read ../lark-shared/SKILL.md, which contains authentication and permission handling
Applicable Scenarios
- "The meeting is over, help me organize the minutes and send them to everyone" / "Distribute meeting minutes"
- "Send today's meeting notes to those who did not attend" / "Meeting summary distribution"
- "Help me send the minutes of that meeting just now" / "Send minutes"
- "Notify attendees after the meeting" / "Post-meeting notification"
Prerequisites
Only supports user identity. Before execution, ensure authorization has been granted:
lark-cli auth login --domain calendar,vc,docs,im
Workflow
{event_id 或 会议名称/时间}
│
├── calendar events get ──────────► 获取会议详情 + 参会人列表
│
├── [有纪要] docs +fetch ─────────► 读取纪要内容
│ 或 vc 获取纪要文档
│
├── AI 区分参会人 ────────────────► 出席者 / 缺席者
│
├── AI 生成摘要版本 ──────────────► 缺席者版(摘要+决策+待办)
│
├── im +messages-send ────────────► 完整纪要 → 出席者
│
└── im +messages-send ────────────► 摘要 + 行动项 → 缺席者
Step 1: Get meeting details
If the user provides an event_id, query directly; otherwise, first search through the calendar list:
# 直接查询
lark-cli calendar events get --params '{"calendar_id":"primary","event_id":"<event_id>","need_attendee":true}' --as user
Extract from the returned results:
summary— Meeting topicstart_time/end_time— Meeting time- Attendee list and RSVP status
Get attendee status
lark-cli calendar event.attendees list \
--params '{"calendar_id":"primary","event_id":"<event_id>","page_size":50}' \
--as user
Classify based on rsvp_status :
accept→ Attendeestentative→ Tentative (treated as absent)decline/needs_action→ Absentees
Step 2: Get meeting minutes
Method 1: Get from Feishu Docs
If the meeting is associated with a minutes document, use docs +fetch:
lark-cli docs +fetch --doc "<doc_url 或 token>" --as user
Method 2: Get from Minutes/Video Meeting
If the meeting has a video meeting record, you can get the minutes through vc:
# 查询会议记录
lark-cli vc --help # 查看可用命令
Method 3: User provides the minutes content
If the user directly provides the minutes text or asks the AI to generate a draft of the minutes based on the meeting topic, use the content provided by the user directly.
Note: If the meeting has no minutes document, inform the user that "this meeting currently has no minutes document" and ask whether a draft of the minutes needs to be generated based on the meeting topic.
Step 3: AI organizes the minutes content
Full version (for attendees)
Keep all the content of the minutes and organize it into a structured format.
Summary version (for absentees)
The AI extracts key information from the full minutes:
## {会议主题} — 会议摘要
**时间**:{日期时间}
**参会人**:{N} 人出席,{N} 人缺席
### 关键决策
- {决策1}
- {决策2}
### 待办事项
| 事项 | 负责人 | 截止日期 |
|------|--------|---------|
### 重要讨论
- {讨论要点1}
- {讨论要点2}
> 完整纪要已上传至飞书文档:{链接}
Step 4: Distribute the minutes
To attendees (full version)
lark-cli im +messages-send \
--user-id "<attendee_open_id>" \
--markdown "{完整纪要内容}" \
--as bot
To absentees (summary version)
lark-cli im +messages-send \
--user-id "<absentee_open_id>" \
--markdown "{摘要版内容}" \
--as bot
Note: When sending messages, leave an interval of 1-2 seconds each time to avoid triggering rate limits. If there are more than 20 attendees, send in batches.
Fallback Strategy
| Scenario | Fallback Plan |
|---|---|
| Meeting not found | Prompt the user to provide the event_id or meeting time |
| No minutes document | Ask the user whether a draft of the minutes needs to be generated |
| Failed to get attendee information | Send directly to the organizer and have the organizer forward it manually |
| Message sending rate limit | Send in batches (10 people per batch, 2-second interval) |
| Sending to someone fails | Record the failure list and summarize it to inform the user at the end |
Permission Table
| Command | Required scope |
|---|---|
calendar events get |
calendar:calendar:readonly, calendar:event:readonly |
calendar event.attendees list |
calendar:calendar:readonly |
docs +fetch |
docx:document:readonly |
im +messages-send |
im:message |
Reference
../lark-calendar/SKILL.md— Calendar atomic operations../lark-vc/SKILL.md— Video conferencing../lark-doc/SKILL.md— Document operations../lark-im/SKILL.md— Message sending