name: lark-calendar description: Create, update, and delete calendar events and tasks in Lark (Feishu). Includes employee directory for automatic name-to-user_id resolution. version: 1.0.0 author: Claw AI
Create, update, and delete calendar events and tasks in Lark (Feishu).
7w4.net小葱技能站,你的AI助手技能库。
This skill provides full CRUD operations for: - Calendar Events — meetings, appointments, schedules - Tasks (Todo) — action items with deadlines
Required Environment Variables (in .secrets.env):
FEISHU_APP_ID=cli_a9f52a4ed7b8ded4
FEISHU_APP_SECRET=<your-app-secret>
Default Calendar: feishu.cn_caF80RJxgGcbBGsQx64bCh@group.calendar.feishu.cn (Claw calendar)
Default Timezone: Asia/Singapore
node skills/lark-calendar/scripts/create-event.mjs \
--title "Meeting with Team" \
--description "Discuss Q2 roadmap" \
--start "2026-02-03 14:00:00" \
--end "2026-02-03 15:00:00" \
--attendees "Boyang,RK" \
--location "Meeting Room A"
Parameters:
| Param | Required | Description |
|-------|----------|-------------|
| --title | ✅ | Event title |
| --description | ❌ | Event description |
| --start | ✅ | Start time (YYYY-MM-DD HH:MM:SS) |
| --end | ✅ | End time (YYYY-MM-DD HH:MM:SS) |
| --attendees | ❌ | Comma-separated names (auto-resolved to user_ids) |
| --attendee-ids | ❌ | Comma-separated user_ids directly |
| --location | ❌ | Event location |
| --timezone | ❌ | Timezone (default: Asia/Singapore) |
| --calendar | ❌ | Calendar ID (uses default if omitted) |
node skills/lark-calendar/scripts/update-event.mjs \
--event-id "f9900f6b-b472-4b17-a818-7b5584abdc37_0" \
--title "Updated Title" \
--start "2026-02-03 15:00:00" \
--end "2026-02-03 16:00:00"
node skills/lark-calendar/scripts/delete-event.mjs \
--event-id "f9900f6b-b472-4b17-a818-7b5584abdc37_0"
# List events for next 7 days
node skills/lark-calendar/scripts/list-events.mjs
# List events in date range
node skills/lark-calendar/scripts/list-events.mjs \
--start "2026-02-01" \
--end "2026-02-28"
node skills/lark-calendar/scripts/create-task.mjs \
--title "Review PR #123" \
--description "Code review for authentication module" \
--due "2026-02-05 18:00:00" \
--assignees "Boyang,jc"
Parameters:
| Param | Required | Description |
|-------|----------|-------------|
| --title | ✅ | Task title |
| --description | ❌ | Task description |
| --due | ✅ | Due date (YYYY-MM-DD HH:MM:SS) |
| --assignees | ❌ | Comma-separated names (auto-resolved) |
| --assignee-ids | ❌ | Comma-separated user_ids directly |
| --timezone | ❌ | Timezone (default: Asia/Singapore) |
node skills/lark-calendar/scripts/update-task.mjs \
--task-id "35fc5310-a1b1-49c7-be75-be631d3079ee" \
--title "Updated Task" \
--due "2026-02-06 18:00:00"
node skills/lark-calendar/scripts/delete-task.mjs \
--task-id "35fc5310-a1b1-49c7-be75-be631d3079ee"
# Add attendees
node skills/lark-calendar/scripts/manage-attendees.mjs \
--event-id "xxx" --add "RK,jc"
# Remove attendees
node skills/lark-calendar/scripts/manage-attendees.mjs \
--event-id "xxx" --remove "jc"
# Add members
node skills/lark-calendar/scripts/manage-task-members.mjs \
--task-id "xxx" --add "RK,jc"
# Remove members
node skills/lark-calendar/scripts/manage-task-members.mjs \
--task-id "xxx" --remove "jc"
Names are auto-resolved to Lark user_ids. Supported names:
| user_id | Names | Role |
|---|---|---|
dgg163e1 |
Boyang, by, 博洋 | Boss |
gb71g28b |
RK | Leadership, R&D |
53gc5724 |
Ding | Leadership, Operations |
217ec2c2 |
Charline | HR |
f2bfd283 |
曾晓玲, xiaoling | HR |
f26fe45d |
HH | Research |
45858f91 |
zan, Eva | - |
7f79b6de |
Issac | Operations |
1fb2547g |
王铁柱 | Operations |
e5997acd |
尼克, Nico | Operations |
438c3c1f |
Ivan | Operations |
17g8bab2 |
Dodo | R&D, Product |
73b45ec5 |
启超, QiChaoShi | R&D, Design |
d1978a39 |
chenglin | R&D, Frontend |
ef6fc4a7 |
冠林, Green | R&D, Frontend |
b47fa8f2 |
sixian, sx, Sixian-Yu | R&D, Frontend |
934fbf15 |
jc, sagiri, 俊晨 | R&D, Backend |
8c4aad87 |
大明, daming | R&D, Backend |
ab87g5e1 |
Emily Yobal | Intern |
55fa337f |
jingda, 景达 | Intern |
333c7cf1 |
刘纪源, 纪源, Aiden | Intern |
Asia/Singapore, Asia/Shanghai)YYYY-MM-DD HH:MM:SSuser_id format (e.g., dgg163e1), NOT open_id (e.g., ou_xxx)import { createEvent, updateEvent, deleteEvent } from './skills/lark-calendar/lib/calendar.mjs';
import { createTask, updateTask, deleteTask } from './skills/lark-calendar/lib/task.mjs';
import { resolveNames } from './skills/lark-calendar/lib/employees.mjs';
// Create event
const result = await createEvent({
title: 'Team Sync',
description: 'Weekly standup',
startTime: '2026-02-03 10:00:00',
endTime: '2026-02-03 10:30:00',
attendeeIds: ['dgg163e1', 'gb71g28b'],
location: 'Zoom',
timezone: 'Asia/Singapore'
});
// Create task
const task = await createTask({
title: 'Review document',
description: 'Q2 planning doc',
dueTime: '2026-02-05 18:00:00',
assigneeIds: ['dgg163e1'],
timezone: 'Asia/Singapore'
});
Ensure your Lark app has these scopes:
- calendar:calendar — Read/write calendar ✅ (already enabled)
- calendar:calendar:readonly — Read calendar ✅ (already enabled)
- task:task:write — Write tasks ⚠️ (needs to be added for task creation)
- task:task:read — Read tasks
- contact:user.employee_id:readonly — Read user info ✅ (already enabled)
To add permissions:
1. Go to Lark Open Platform
2. Add scopes: task:task:write, contact:contact:readonly (for dynamic employee lookup)
3. Re-publish the app version
Note: Without contact:contact:readonly, the skill uses a static fallback employee list. Update lib/employees.mjs when team changes.
这个 Skill 质量较好,能正常管理飞书日历和任务。文档写得非常详细,命令行参数和示例都很清楚,小白也能快速上手。支持按名字自动查找员工很方便,还会自动把 Boyang 加入每个会议。不过创建任务后没有“完成任务”的功能,时间处理在跨夏令时的时候可能不准。建议用正式 SDK 替换手写 API 封装以提高稳定性。总体来说是可用的日常工具,但还有完善空间。