SuperAPI AI Directory

lark-workflow-meeting-notes

Office & productivity

View repository

Updated 10-15 23:59

About this skill

Smart Meeting Minutes Distribution Workflow

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 topic
  • start_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 → Attendees
  • tentative → 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