CRITICAL — Before starting, you MUST first use the Read tool to read lark-shared/SKILL.md, which contains authentication, permission handling, and security rules.
Applicable Scenarios
- "How many meetings were held this week" / "How is my meeting efficiency"
- "Analyze the recent meeting patterns" / "How much time is taken up by meetings"
- "Which time period has the most meetings" / "Meeting efficiency report"
- "How many meetings have no minutes" / "Meeting quality analysis"
- "Meeting efficiency analysis" / "Help me look at the meeting data"
Relationship with existing Skills:
meeting-summary(official):Minutes summary — Content dimensionaction-extractor(existing):Task extraction — Execution dimensionmeeting-efficiency(this Skill):Efficiency meta-analysis — Data dimension
The three form a complete "meeting trifecta".
Prerequisites
Supports user identity. Before execution, ensure authorization has been granted:
lark-cli auth login --domain vc,calendar
Workflow
指定时间范围 ──► calendar +agenda(获取日程中的会议)
│
▼
vc +search(获取实际参会记录)
│
▼
vc +notes(检查纪要覆盖率)
│
▼
AI 效率分析引擎
┌────┼────┐
▼ ▼ ▼
时长 质量 节奏
分析 分析 分析
│
▼
会议效率报告 + 优化建议
Step 1: Determine the analysis time range
Inference rules:
- "This week's meetings" → This Monday ~ Today
- "Last week" / "the past week" → The past 7 days
- "This month" → The beginning of the month ~ Today
- "The past month" → The past 30 days
# 获取时间范围
date "+%Y-%m-%dT00:00:00%z" # 起始
date "+%Y-%m-%dT23:59:59%z" # 结束
Note: Date calculations MUST use the
datecommand.
Step 2: Obtain meeting data
2.1 Get scheduled meetings from the calendar:
Refer to lark-calendar/SKILL.md。
lark-cli calendar +agenda --start "<start>" --end "<end>"
Filter meeting-type events from the schedule (excluding all-day events, personal schedules, etc.):
- Events with attendees → Meetings
- Titles containing "meeting", "review", "sync", "standup" → Meetings
free_busy_statusisbusy→ Time occupied
2.2 Get actual attendance records from VC:
Refer to lark-vc/SKILL.md。
lark-cli vc +search --start "<start>" --end "<end>" --format json --page-size 50
VC records include:
- Actual number of attendees
- Actual meeting duration
- Whether there is a recording/Minutes
2.3 Check minutes coverage:
# 方式 A:通过 meeting_id 获取纪要
lark-cli vc +notes --meeting-ids "<id1>,<id2>,...,<idN>"
# 方式 B(v1.0.7+):通过日历事件关联 API 提取纪要 token
# 当会议通过日历事件创建时,可直接从 event relation API 获取 doc_token
lark-cli vc +notes --meeting-ids "<id1>,<id2>,...,<idN>"
2.4 Search Minutes/minutes (v1.0.9+, supplementary data source):
# 搜索妙记(v1.0.9+)— 当会议未通过 vc +search 找到时可作为补充
lark-cli minutes search --data '{"query":"<关键词>"}' --format json
Tip:
minutes search: You can search Minutes by keyword, suitable for supplementing meeting minutes not covered by vc +search.
Count the number of meetings with minutes.
Step 3: AI efficiency analysis engine
3.1 Duration analysis:
- Total meeting duration (hours)
- Proportion of meeting time in working hours (calculated at 8h/day)
- Average duration per meeting
- Longest/shortest meeting
- Daily meeting duration distribution
3.2 Quality analysis:
- Minutes coverage rate (meetings with minutes / total meetings)
- Average number of attendees
- Whether there are too many large meetings (>8 people)
- Meetings with "only a calendar entry and no VC record" (possibly canceled but the calendar entry was not deleted)
3.3 Rhythm analysis:
- Which days have the most meetings
- Efficient time slots vs. meeting-intensive time slots
- Consecutive meeting detection (adjacent meetings less than 15 minutes apart)
- Proportion of meetings during lunch break/morning/before end of work
Step 4: Generate efficiency report
## 📊 会议效率报告({开始日期} ~ {结束日期})
### 概览指标
| 指标 | 值 | 参考基准 | 评价 |
|------|---|---------|------|
| 会议总数 | {N} 场 | — | — |
| 总耗时 | {X} 小时 | — | — |
| 占工作时间 | {P}% | <30% 健康 | {🟢/🟡/🔴} |
| 平均时长 | {M} 分钟 | 30-45min 最优 | {🟢/🟡/🔴} |
| 纪要覆盖率 | {Q}% | >80% 优秀 | {🟢/🟡/🔴} |
| 平均参会人数 | {R} 人 | 3-6 人最佳 | {🟢/🟡/🔴} |
### ⏰ 每日分布
Monday ████████░░ 4.2h (52%) Tuesday ██████░░░░ 3.0h (38%) Wednesday ██████████ 5.5h (69%) ⚠️ Thursday ████░░░░░░ 2.0h (25%) Friday ██░░░░░░░░ 1.0h (13%)
### 🔍 模式洞察
**会议时段分布:**
| 时段 | 会议数 | 占比 | 建议 |
|------|--------|------|------|
| 09:00-10:00 | 3 | 15% | 🟡 晨间会议略多 |
| 10:00-12:00 | 8 | 40% | 🟢 黄金会议时段 |
| 12:00-13:00 | 1 | 5% | 🔴 占用午休 |
| 14:00-16:00 | 6 | 30% | 🟢 午后正常 |
| 17:00-18:00 | 2 | 10% | 🟡 临近下班 |
**连续会议检测:**
- ⚠️ 周三有 3 场连续会议(10:00-13:00),无缓冲时间
- ⚠️ 周一有 2 场会议间隔仅 5 分钟
### 📋 会议清单
| # | 日期 | 会议名称 | 时长 | 参会人数 | 有纪要 |
|---|------|---------|------|---------|--------|
| 1 | 周一 | 产品需求评审 | 60min | 8 | ✅ |
| 2 | 周一 | 技术方案讨论 | 45min | 5 | ✅ |
| 3 | 周二 | 项目进度同步 | 30min | 4 | ❌ |
| ... | ... | ... | ... | ... | ... |
### 💡 优化建议
1. **{建议 1}**:基于会议时间占比给出的建议
2. **{建议 2}**:基于连续会议检测的建议
3. **{建议 3}**:基于纪要覆盖率的建议
4. **{建议 4}**:基于参会人数分布的建议
### 📈 对比(如有历史数据)
- 对比上周:会议时长 {增加/减少} {X}%
- 纪要覆盖率 {提升/下降} {Y}%
Fault tolerance mechanism
| Exception scenario | Handling method |
|---|---|
| vc scope not authorized | Use only calendar data for analysis (no actual attendance data) |
| No meetings within the time range | Prompt "No meeting records in this time period" and suggest expanding the range |
| vc + notes partially failed | Record the failed items; minutes coverage is calculated based on successfully queried meetings |
| Number of meetings > 50 | Sort by importance; the detailed table shows only the Top 20 |
Permission table
| Step | Command | Required scope | Required or not |
|---|---|---|---|
| Calendar data | calendar +agenda |
calendar:calendar.event:read |
✅ Required |
| Meeting records | vc +search |
vc:meeting:readonly |
Recommended |
| Minutes check | vc +notes |
vc:meeting:readonly |
Recommended |
| Minutes search | minutes search |
minutes:minute:readonly |
Optional (supplementary search) |
Reference
- lark-shared — Authentication, permissions (required reading)
- lark-calendar —
+agendaDetailed usage - lark-vc —
+search、+notesDetailed usage - lark-minutes —
search, detailed usage of Minutes outputs