Lark Calendar & Tasks
Create, update, and delete calendar events and tasks in Lark (Feishu). Includes employee directory for automatic name-to-user_id resolution.
Create, update, and delete calendar events and tasks in Lark (Feishu). Includes employee directory for automatic name-to-user_id resolution.
Real data. Real impact.
Emerging
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
Create, update, and delete calendar events and tasks in Lark (Feishu).
This skill provides full CRUD operations for:
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 |
|---|---|---|
| ✅ | Event title |
| ❌ | Event description |
| ✅ | Start time (YYYY-MM-DD HH:MM:SS) |
| ✅ | End time (YYYY-MM-DD HH:MM:SS) |
| ❌ | Comma-separated names (auto-resolved to user_ids) |
| ❌ | Comma-separated user_ids directly |
| ❌ | Event location |
| ❌ | Timezone (default: Asia/Singapore) |
| ❌ | 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.mjsList 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 |
|---|---|---|
| ✅ | Task title |
| ❌ | Task description |
| ✅ | Due date (YYYY-MM-DD HH:MM:SS) |
| ❌ | Comma-separated names (auto-resolved) |
| ❌ | Comma-separated user_ids directly |
| ❌ | 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 |
|---|---|---|
| Boyang, by, 博洋 | Boss |
| RK | Leadership, R&D |
| Ding | Leadership, Operations |
| Charline | HR |
| 曾晓玲, xiaoling | HR |
| HH | Research |
| zan, Eva | - |
| Issac | Operations |
| 王铁柱 | Operations |
| 尼克, Nico | Operations |
| Ivan | Operations |
| Dodo | R&D, Product |
| 启超, QiChaoShi | R&D, Design |
| chenglin | R&D, Frontend |
| 冠林, Green | R&D, Frontend |
| sixian, sx, Sixian-Yu | R&D, Frontend |
| jc, sagiri, 俊晨 | R&D, Backend |
| 大明, daming | R&D, Backend |
| Emily Yobal | Intern |
| jingda, 景达 | Intern |
| 刘纪源, 纪源, 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 taskscontact:user.employee_id:readonly — Read user info ✅ (already enabled)To add permissions:
task:task:write, contact:contact:readonly (for dynamic employee lookup)Note: Without
contact:contact:readonly, the skill uses a static fallback employee list. Update lib/employees.mjs when team changes.No automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.