Lark Workflow Meeting Finder logo

Lark Workflow Meeting Finder

Community
liangdabiao
lark-workflow-meeting-finder

日程冲突检测器:查询多个参与者的忙闲状态,找到共同的空闲时段,可选直接创建会议日程。当用户需要'找时间开会'、'协调会议时间'、'查看空闲时段'、'日程冲突'、'约会议'、'有空什么时候'、'大家什么时候有空'时使用。

Overview

Publisherliangdabiao
Repositorylark-workflow-feishu-cli
Skill namelark-workflow-meeting-finder
Stars
68
Forks
10
Bundled files
Instructions only
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by liangdabiao on GitHub. Read the source before you install it.

Installation

Install the Lark Workflow Meeting Finder AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/liangdabiao/lark-workflow-feishu-cli/tree/main/.claude/skills/lark-workflow-meeting-finder
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/liangdabiao/lark-workflow-feishu-cli.git /tmp/lark-workflow-feishu-cli
mkdir -p .claude/skills
cp -r /tmp/lark-workflow-feishu-cli/.claude/skills/lark-workflow-meeting-finder .claude/skills/lark-workflow-meeting-finder
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Lark Workflow Meeting Finder in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Lark Workflow Meeting Finder on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Lark Workflow Meeting Finder is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

日程冲突检测器工作流

CRITICAL — 开始前 MUST 先用 Read 工具读取 ../lark-shared/SKILL.md,其中包含认证、权限处理

适用场景

  • "查一下明天下午大家有空吗" / "查看空闲时段"
  • "安排一个1小时的会,参会人:张三、李四、王五" / "约会议"
  • "下周三下午我和张三、李四有没有时间开会" / "日程冲突"
  • "找个大家都空的时间开会" / "协调会议时间"
  • "看看今天有没有空隙可以开个会"

前置条件

仅支持 user 身份。执行前确保已授权:

bash
lark-cli auth login --domain calendar,contact

工作流

{参会人列表 + 时间范围 + 会议时长}
  │
  ├── contact +search-user ──────────► 查找参会人 open_id
  │
  ├── calendar +freebusy ────────────► 查询各参会人忙闲
  │
  ├── AI 分析空闲交集 ──────────────► 找出共同空闲时段
  │
  ├── [有明确时间] 冲突检测 ─────────► 报告冲突详情
  │
  ├── [有时间段] +suggestion ────────► 推荐多个可选时段
  │
  └── [用户确认] calendar +create ───► 创建会议日程 + 发邀请

Step 1: 查找参会人

如果用户提供了姓名,先查找 open_id:

bash
lark-cli contact +search-user --query "<参会人姓名>" --as user

记录返回的 open_id(ou_xxx 格式)。如果查不到,提示用户检查姓名是否正确。

注意:只能查找同一飞书租户内的用户。跨租户用户无法查询忙闲状态。

Step 2: 查询忙闲状态

逐人查询

bash
# 查询单个用户的忙闲(默认今天)
lark-cli calendar +freebusy --user-id "ou_xxx" --as user

# 指定日期范围
lark-cli calendar +freebusy \
  --user-id "ou_xxx" \
  --start "2026-04-10T09:00:00+08:00" \
  --end "2026-04-10T18:00:00+08:00" \
  --as user

注意:--start / --end 仅支持 ISO 8601 格式和 Unix timestamp,不支持自然语言。需要 AI 根据当前日期计算。

批量查询

对多个参会人,逐一调用 +freebusy(当前 lark-cli 不支持一次传多个 user-id):

bash
# 逐个查询,记录每个人的忙碌时段
lark-cli calendar +freebusy --user-id "ou_aaa" --start "..." --end "..." --as user
lark-cli calendar +freebusy --user-id "ou_bbb" --start "..." --end "..." --as user
lark-cli calendar +freebusy --user-id "ou_ccc" --start "..." --end "..." --as user

Step 3: AI 分析空闲时段

将所有参会人的忙闲数据整合,计算共同空闲时段:

  1. 将每个人的忙碌时段标记在时间轴上
  2. 取所有忙碌时段的并集
  3. 在非忙碌时段中,筛选出满足会议时长要求的连续空闲段
  4. 按推荐优先级排序(工作时间优先,避开午休)

输出格式:

## 推荐会议时段

以下为 {日期} 所有参会人均空闲的时段(会议时长 {N} 分钟):

| 时段 | 推荐度 | 说明 |
|------|--------|------|
| 09:00-10:00 | 推荐 | 工作时间,无冲突 |
| 14:00-15:00 | 推荐 | 工作时间,无冲突 |
| 11:00-12:00 | 一般 | 接近午休 |

### 冲突详情
| 参会人 | 忙碌时段 | 事件 |
|--------|---------|------|
| 张三 | 10:00-11:30 | 产品评审会 |
| 李四 | 13:00-14:00 | 1v1 |

智能推荐(可选)

如果用户给出了时间范围但没指定具体时间,可使用 +suggestion 获取系统推荐:

bash
lark-cli calendar +suggestion \
  --start "2026-04-10T09:00:00+08:00" \
  --end "2026-04-10T18:00:00+08:00" \
  --attendee-ids "ou_aaa,ou_bbb,ou_ccc" \
  --duration-minutes 60 \
  --as user

Step 4: 创建会议(可选)

用户确认时间段后,创建日程并发送邀请:

bash
lark-cli calendar +create \
  --summary "会议主题" \
  --start "2026-04-10T09:00:00+08:00" \
  --end "2026-04-10T10:00:00+08:00" \
  --attendee-ids "ou_aaa,ou_bbb,ou_ccc" \
  --as user

注意:创建前务必与用户确认时间、主题和参会人,避免误操作。

降级策略

场景降级方案
某参会人查不到提示用户确认姓名,或跳过该人继续查询
无共同空闲时段建议:扩大时间范围 / 减少参会人 / 拆分会议
只能找到非理想时段列出"次优时段",说明冲突详情
+suggestion 不可用退回到 +freebusy 手动分析
创建日程失败输出推荐时段让用户手动创建

权限表

命令所需 scope
contact +search-usercontact:user.base:readonly
calendar +freebusycalendar:freebusy:readonly
calendar +suggestioncalendar:freebusy:readonly
calendar +createcalendar:calendar:write, calendar:event:write

参考

Frequently asked questions

What does the Lark Workflow Meeting Finder AI skill do?

日程冲突检测器:查询多个参与者的忙闲状态,找到共同的空闲时段,可选直接创建会议日程。当用户需要'找时间开会'、'协调会议时间'、'查看空闲时段'、'日程冲突'、'约会议'、'有空什么时候'、'大家什么时候有空'时使用。

Why use Lark Workflow Meeting Finder on TypingMind?

Because you install it once and use it with any model. Lark Workflow Meeting Finder is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Lark Workflow Meeting Finder in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/liangdabiao/lark-workflow-feishu-cli/tree/main/.claude/skills/lark-workflow-meeting-finder. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Lark Workflow Meeting Finder?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Lark Workflow Meeting Finder?

As many as you like. As long as a model supports skills, you can use Lark Workflow Meeting Finder with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Lark Workflow Meeting Finder AI skill free?

It is published on GitHub by liangdabiao. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇