
Feishu Calendar
- 1.2k installs
- 65 repo stars
- Updated March 26, 2026
- alextangson/feishu_skills
feishu-calendar is an agent skill for 飞书日历。创建日程、查询日程、更新日程。.
About
The feishu-calendar skill is designed for 飞书日历。创建日程、查询日程、更新日程。. Invoke when the user asks about feishu calendar or related SKILL.md workflows.
- FEISHU_APP_ID.
- FEISHU_APP_SECRET.
- timestamp: 秒级时间戳(如 "1770508800").
- date: 日期字符串(如 "2026-03-07").
- page_size: 每页数量(默认 50,最大 500).
Feishu Calendar by the numbers
- 1,223 all-time installs (skills.sh)
- +4 installs in the week ending Aug 5, 2026 (Skillselion tracking)
- Ranked #336 of 1,880 Design & UI/UX skills by installs in the Skillselion catalog
- Security screen: LOW risk (skills.sh audit)
- Data as of Aug 5, 2026 (Skillselion catalog sync)
feishu-calendar capabilities & compatibility
- Capabilities
- feishu_app_id · feishu_app_secret · timestamp: 秒级时间戳(如 "1770508800") · date: 日期字符串(如 "2026 03 07")
- Use cases
- frontend
What feishu-calendar says it does
飞书日历。创建日程、查询日程、更新日程。
npx skills add https://github.com/alextangson/feishu_skills --skill feishu-calendarAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 1.2k |
|---|---|
| repo stars | ★ 65 |
| Security audit | 3 / 3 scanners passed |
| Last updated | March 26, 2026 |
| Repository | alextangson/feishu_skills ↗ |
How do I 飞书日历。创建日程、查询日程、更新日程。?
飞书日历。创建日程、查询日程、更新日程。.
Who is it for?
Developers using feishu calendar workflows documented in SKILL.md.
Skip if: Skip when the task falls outside feishu-calendar scope or needs a different stack.
When should I use this skill?
User asks about feishu calendar or related SKILL.md workflows.
What you get
Completed feishu-calendar workflow with documented commands, files, and expected deliverables.
- Calendar event records
- Authenticated API requests
- Token cache file
By the numbers
- Uses Feishu Calendar v4 base URL open-apis/calendar/v4
- Refreshes cached tokens 5 minutes before expiry
Files
飞书日历
通过 Calendar API 管理日程。
Base URL: https://open.feishu.cn/open-apis/calendar/v4
认证与 Token 获取
从 feishu_skills 根目录执行共享脚本:
TOKEN="$(./scripts/get_feishu_token.sh)"请求头统一使用 Authorization: Bearer ${TOKEN}。
如果业务接口返回 token 无效、过期或 401,强制刷新后仅重试一次原请求:
TOKEN="$(./scripts/get_feishu_token.sh --force-refresh)"环境变量:
FEISHU_APP_IDFEISHU_APP_SECRET
本地缓存: ./.feishu_token_cache.json(未过期直接复用,默认提前 5 分钟刷新)
---
日程操作
| API | 端点 | 方法 | 请求体示例 | 说明 |
|---|---|---|---|---|
| 创建日程 | /calendars/{calendar_id}/events | POST | {"summary":"会议标题","start_time":{"timestamp":"1770508800"},"end_time":{"timestamp":"1770512400"}} | 创建新日程 |
| 获取日程 | /calendars/{calendar_id}/events/{event_id} | GET | - | 查询日程详情 |
| 更新日程 | /calendars/{calendar_id}/events/{event_id} | PATCH | {"summary":"新标题"} | 修改日程 |
| 删除日程 | /calendars/{calendar_id}/events/{event_id} | DELETE | - | 删除日程 |
| 搜索日程 | /calendars/{calendar_id}/events/search | POST | {"query":"关键词","start_time":{"timestamp":"1770508800"}} | 条件搜索 |
| 获取日程列表 | /calendars/{calendar_id}/events | GET | - | 查询日历下所有日程 |
创建日程:
{
"summary": "会议标题",
"start_time": {"timestamp": "1770508800"},
"end_time": {"timestamp": "1770512400"},
"attendees": [{"type": "user", "attendee_id": "ou_xxx"}]
}attendees type: user / chat / resource(会议室)
---
日程参与人
| API | 端点 | 方法 | 请求体示例 | 说明 |
|---|---|---|---|---|
| 获取参与人 | /calendars/{calendar_id}/events/{event_id}/attendees | GET | - | 查询参与人列表 |
| 添加参与人 | /calendars/{calendar_id}/events/{event_id}/attendees | POST | {"attendees":[{"type":"user","attendee_id":"ou_xxx"}]} | 邀请参与人 |
| 删除参与人 | /calendars/{calendar_id}/events/{event_id}/attendees/{attendee_id} | DELETE | - | 移除参与人 |
| 获取参与群成员 | /calendars/{calendar_id}/events/{event_id}/attendees/chat_members | GET | - | 查询群参与成员 |
---
日历管理
| API | 端点 | 方法 | 请求体示例 | 说明 |
|---|---|---|---|---|
| 获取日历列表 | /calendars | GET | 查询参数:page_size=50&page_token=xxx | 查询所有日历(分页) |
| 获取主日历 | /calendars/primary | GET | - | 查询用户主日历 |
| 创建日历 | /calendars | POST | {"summary":"日历名称","description":"描述","permissions":"public"} | 创建共享日历 |
| 获取日历 | /calendars/{calendar_id} | GET | - | 查询日历详情 |
| 更新日历 | /calendars/{calendar_id} | PATCH | {"summary":"新名称"} | 修改日历 |
| 删除日历 | /calendars/{calendar_id} | DELETE | - | 删除日历 |
| 搜索日历 | /calendars/search | POST | {"query":"关键词"} | 搜索日历 |
---
日历订阅与 ACL
| API | 端点 | 方法 | 请求体示例 | 说明 |
|---|---|---|---|---|
| 获取 ACL 列表 | /calendars/{calendar_id}/acls | GET | - | 查询日历权限 |
| 创建 ACL | /calendars/{calendar_id}/acls | POST | {"role":"reader","scope":{"type":"user","user_id":"ou_xxx"}} | 添加权限 |
| 删除 ACL | /calendars/{calendar_id}/acls/{acl_id} | DELETE | - | 移除权限 |
| 订阅日历 | /calendars/{calendar_id}/subscribe | POST | - | 订阅日历变更 |
| 取消订阅 | /calendars/{calendar_id}/unsubscribe | POST | - | 取消日历订阅 |
| 订阅日程事件 | /calendars/{calendar_id}/events/subscribe | POST | - | 订阅日程变更 |
| 取消日程订阅 | /calendars/{calendar_id}/events/unsubscribe | POST | - | 取消日程订阅 |
ACL role: none / free_busy_reader / reader / writer / owner
---
会议室管理
| API | 端点 | 方法 | 请求体示例 | 说明 |
|---|---|---|---|---|
| 获取会议室列表 | /rooms | GET | - | 查询所有会议室 |
| 获取会议室 | /rooms/{room_id} | GET | - | 查询会议室详情 |
| 查询会议室忙闲 | /rooms/{room_id}/freebusy | GET | - | 查询会议室可用时间 |
创建日程并占用会议室
占用会议室的关键:在 attendees 中添加 type: "resource" 的参与人,attendee_id 填会议室的 room_id。
完整流程:
# 1. 获取会议室列表,拿到 room_id
curl -X GET "https://open.feishu.cn/open-apis/calendar/v4/rooms?page_size=50" \
-H "Authorization: Bearer YOUR_TOKEN"
# 2. (可选)查询会议室在目标时间段是否空闲
curl -X GET "https://open.feishu.cn/open-apis/calendar/v4/rooms/{room_id}/freebusy?start_time=1770508800&end_time=1770512400" \
-H "Authorization: Bearer YOUR_TOKEN"
# 3. 创建日程,attendees 中加入会议室
curl -X POST "https://open.feishu.cn/open-apis/calendar/v4/calendars/primary/events" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"summary": "团队会议",
"start_time": {"timestamp": "1770508800"},
"end_time": {"timestamp": "1770512400"},
"attendees": [
{"type": "user", "attendee_id": "ou_xxx"},
{"type": "resource", "attendee_id": "omcxxxxxxxxxxxxx"}
]
}'⚠️ 若会议室在该时段已被占用,创建请求会返回冲突错误,请先查询忙闲再预订。
---
常见参数说明
时间格式:
timestamp: 秒级时间戳(如"1770508800")date: 日期字符串(如"2026-03-07")
分页参数:
page_size: 每页数量(默认 50,最大 500)page_token: 分页标记(从上次响应获取)
user_id_type: 用户 ID 类型
open_id(默认)user_idunion_id
---
测试示例
获取日历列表:
curl -X GET "https://open.feishu.cn/open-apis/calendar/v4/calendars?page_size=10" \
-H "Authorization: Bearer ${TOKEN}"创建日程:
curl -X POST "https://open.feishu.cn/open-apis/calendar/v4/calendars/primary/events" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"summary": "团队会议",
"start_time": {"timestamp": "1709798400"},
"end_time": {"timestamp": "1709802000"}
}'---
最佳实践
1. 时间用秒级时间戳 2. attendees 指定类型(user/chat/resource) 3. 分页查询:大量数据用 page_token 分页 4. 主日历:用户个人日历用 primary 作为 calendar_id
Related skills
How it compares
Choose feishu-calendar when the target system is Feishu/Lark Calendar rather than a generic calendar SDK.
FAQ
What does feishu-calendar do?
飞书日历。创建日程、查询日程、更新日程。.
When should I use feishu-calendar?
User asks about feishu calendar or related SKILL.md workflows.
Is feishu-calendar safe to install?
Review the Security Audits panel on this page before installing in production.