Feishu Meeting
Create Feishu video meetings with one command. Meetings appear in attendees' calendars with auto-generated VC links.
Prerequisites
Feishu app permissions (enable in Feishu Open Platform console):
- -
calendar:calendar — Read/write calendars - INLINECODE1 — Reserve meetings
- INLINECODE2 — Resolve mobile/email to user IDs
The app must have bot capability enabled.
Configuration
Before first use, set these values in scripts/create.sh:
- -
DEFAULT_OWNER_OPEN_ID — Open ID of the default meeting owner (required) - INLINECODE5 — The bot's primary calendar ID (run the discovery command below)
Discover Calendar ID
CODEBLOCK0
Use the primary calendar ID.
Usage
CODEBLOCK1
Options
| Flag | Description | Default |
|---|
| INLINECODE7 | Add invitee (repeatable) | Owner only |
| INLINECODE8 |
Start time
"YYYY-MM-DD HH:MM" | Now + 5 min |
|
--duration <min> | Duration in minutes | 60 |
|
--rrule <rule> | RFC 5545 recurrence rule | None |
Positional args after topic are treated as invitees for convenience.
RRULE Examples
| Pattern | RRULE |
|---|
| Every Monday | INLINECODE12 |
| Every weekday |
FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR;COUNT=52 |
| Biweekly Wednesday |
FREQ=WEEKLY;INTERVAL=2;BYDAY=WE;COUNT=26 |
| Monthly 1st Friday |
FREQ=MONTHLY;BYDAY=1FR;COUNT=12 |
| Daily for 5 days |
FREQ=DAILY;COUNT=5 |
Important: Feishu requires COUNT or UNTIL in recurrence rules. The script auto-appends COUNT=52 if neither is present.
How It Works
- 1. Gets
tenant_access_token from Feishu app credentials - Creates a calendar event with
vchat.vc_type: "vc" (auto-generates Feishu VC link) - Resolves invitee mobiles/emails → open_ids via INLINECODE22
- Adds attendees to the calendar event (they see it in their Feishu calendar)
Troubleshooting
| Error | Cause | Fix |
|---|
| INLINECODE23 | Missing permission | Enable the required scope in app console |
| INLINECODE24 |
Bad RRULE or timestamp | Ensure RRULE has COUNT/UNTIL; timestamps are Unix seconds |
| Invitee not found | User not in app's visibility scope | Add user to app's contact scope, or share link manually |
|
121003 param error on reserves API | Wrong field in payload | Don't pass
invitees to
/vc/v1/reserves/apply — it doesn't exist |
飞书会议
通过一条命令创建飞书视频会议。会议将出现在参会者的日历中,并自动生成视频会议链接。
前置条件
飞书应用权限(在飞书开放平台控制台启用):
- - calendar:calendar — 读写日历
- vc:reserve — 预定会议室
- contact:user.id:readonly — 将手机号/邮箱解析为用户ID
应用必须已启用机器人能力。
配置
首次使用前,在 scripts/create.sh 中设置以下值:
- - DEFAULTOWNEROPENID — 默认会议拥有者的Open ID(必填)
- CALENDARID — 机器人的主日历ID(运行以下发现命令获取)
发现日历ID
bash
在 openclaw.json 中配置飞书 appId/appSecret 后:
curl -s https://open.feishu.cn/open-apis/calendar/v4/calendars \
-H Authorization: Bearer $TOKEN | python3 -c
import json,sys
for c in json.load(sys.stdin)[data][calendar_list]:
print(f\{c[calendar_id]} {c[type]} {c[summary]}\)
使用 primary 日历ID。
使用方法
bash
scripts/create.sh 主题 # 立即会议(5分钟后开始)
scripts/create.sh 主题 --start 2026-03-10 14:00 --duration 60 # 预定会议
scripts/create.sh 主题 --invitee 13800138000 # 添加参会者
scripts/create.sh 主题 --invitee a@b.com --invitee 138... # 多个参会者
scripts/create.sh 主题 --rrule FREQ=WEEKLY;BYDAY=WE;COUNT=8 # 周期性会议
选项
| 标志 | 描述 | 默认值 |
|---|
| --invitee <手机号\ | 邮箱> | 添加参会者(可重复) | 仅拥有者 |
| --start <日期时间> |
开始时间 YYYY-MM-DD HH:MM | 当前时间+5分钟 |
| --duration <分钟> | 会议时长(分钟) | 60 |
| --rrule <规则> | RFC 5545 重复规则 | 无 |
为方便起见,主题后的位置参数将被视为参会者。
RRULE 示例
| 模式 | RRULE |
|---|
| 每周一 | FREQ=WEEKLY;BYDAY=MO;COUNT=52 |
| 每个工作日 |
FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR;COUNT=52 |
| 每两周周三 | FREQ=WEEKLY;INTERVAL=2;BYDAY=WE;COUNT=26 |
| 每月第一个周五 | FREQ=MONTHLY;BYDAY=1FR;COUNT=12 |
| 连续5天每天 | FREQ=DAILY;COUNT=5 |
重要提示:飞书要求重复规则中包含 COUNT 或 UNTIL。如果两者都未提供,脚本会自动追加 COUNT=52。
工作原理
- 1. 从飞书应用凭证获取 tenantaccesstoken
- 创建日历事件,设置 vchat.vctype: vc(自动生成飞书视频会议链接)
- 通过 batchgetid 将参会者手机号/邮箱解析为 openid
- 将参会者添加到日历事件中(他们将在飞书日历中看到该会议)
故障排除
| 错误 | 原因 | 解决方法 |
|---|
| 99991672 | 缺少权限 | 在应用控制台中启用所需权限范围 |
| 190002 invalid parameters |
RRULE 或时间戳错误 | 确保 RRULE 包含 COUNT/UNTIL;时间戳为 Unix 秒数 |
| 未找到参会者 | 用户不在应用的可见范围内 | 将用户添加到应用的联系人范围,或手动分享链接 |
| 121003 param error 预定API错误 | 请求体中字段错误 | 不要向 /vc/v1/reserves/apply 传递 invitees 参数——该字段不存在 |