lark-calendarCreate, update, and delete calendar events and tasks in Lark (Feishu). Includes employee directory for automatic name-to-user_id resolution.
Install via ClawdBot CLI:
clawdbot install boyangwang/lark-calendarCreate, 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 |
|-------|----------|-------------|
| --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 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.
Generated Mar 1, 2026
Automates scheduling of recurring team meetings, such as weekly standups or project syncs, by creating calendar events with predefined attendees and locations. It resolves employee names to user IDs and automatically includes the boss (Boyang) as an attendee, ensuring key stakeholders are always notified.
Manages project tasks by creating, updating, and deleting to-do items with deadlines and assignees. Useful for tracking action items from meetings, assigning work to team members, and ensuring deadlines are met through automated reminders in Lark.
Streamlines onboarding by scheduling orientation sessions, training meetings, and task assignments for new hires. Automatically adds HR and relevant team members as attendees, and creates tasks for onboarding checklists with due dates.
Handles client appointments by creating calendar events with details like location and time, and managing attendee lists for sales or service meetings. Integrates with employee directory to include internal team members and track follow-up tasks.
Coordinates corporate events, workshops, or conferences by setting up calendar events with multiple attendees, locations, and descriptions. Manages task assignments for logistics, such as venue booking or material preparation, with automated updates.
Offers the skill as part of a subscription-based service for businesses using Lark, charging per user or organization for access to advanced calendar and task automation features. Revenue is generated through monthly or annual fees.
Provides basic calendar and task management for free, with premium features like advanced analytics, bulk operations, or custom integrations available for a fee. Targets small to medium enterprises looking to scale their productivity tools.
Sells enterprise licenses to large organizations for customized deployments, including dedicated support, enhanced security, and integration with existing systems like CRM or ERP. Focuses on high-value contracts with tailored solutions.
π¬ Integration Tip
Ensure FEISHU_APP_ID and FEISHU_APP_SECRET are correctly set in .secrets.env, and verify timezone settings to avoid scheduling conflicts in global teams.
Interact with Google Calendar via the Google Calendar API β list upcoming events, create new events, update or delete them. Use this skill when you need programmatic access to your calendar from OpenClaw.
Read, search, and manage Outlook emails and calendar via Microsoft Graph API. Use when the user asks about emails, inbox, Outlook, Microsoft mail, calendar events, or scheduling.
Google Calendar via gcalcli: today-only agenda by default, bounded meaning-first lookup via agenda scans, and fast create/delete with verification--optimized for low tool calls and minimal output.
This skill should be used when interacting with Apple Calendar on macOS. Use it for listing calendars, viewing events, creating/updating/deleting calendar events, and checking availability/free-busy times. Triggers on requests like "check my calendar", "schedule a meeting", "what's on my schedule", "am I free tomorrow", or any calendar-related operations.
Access and manage Google Calendar events with gogcli for cross-calendar agendas, keyword search, and filtered outputs avoiding unwanted calendars like holidays.
Daily morning rollup of important emails and calendar events at 8am with AI-generated summaries