✓ Verified 💻 Development ✓ Enhanced Data

Lark Calendar

Create, update, and delete calendar events and tasks in Lark.

Rating
4.3 (48 reviews)
Downloads
12,305 downloads
Version
1.0.0

Overview

Create, update, and delete calendar events and tasks in Lark.

Complete Documentation

View Source →

Lark Calendar & Task Skill

Create, update, and delete calendar events and tasks in Lark (Feishu).

Overview

This skill provides full CRUD operations for:

  • Calendar Events — meetings, appointments, schedules
  • Tasks (Todo) — action items with deadlines

Configuration

Required Environment Variables (in .secrets.env):

bash
FEISHU_APP_ID=cli_a9f52a4ed7b8ded4
FEISHU_APP_SECRET=<your-app-secret>

Default Calendar: [email protected] (Claw calendar)

Default Timezone: Asia/Singapore

Quick Reference

Create Calendar Event

bash
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:

ParamRequiredDescription
--titleEvent title
--descriptionEvent description
--startStart time (YYYY-MM-DD HH:MM:SS)
--endEnd time (YYYY-MM-DD HH:MM:SS)
--attendeesComma-separated names (auto-resolved to user_ids)
--attendee-idsComma-separated user_ids directly
--locationEvent location
--timezoneTimezone (default: Asia/Singapore)
--calendarCalendar ID (uses default if omitted)

Update Calendar Event

bash
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"

Delete Calendar Event

bash
node skills/lark-calendar/scripts/delete-event.mjs \
  --event-id "f9900f6b-b472-4b17-a818-7b5584abdc37_0"

List Calendar Events

bash
# 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"

Create Task

bash
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:

ParamRequiredDescription
--titleTask title
--descriptionTask description
--dueDue date (YYYY-MM-DD HH:MM:SS)
--assigneesComma-separated names (auto-resolved)
--assignee-idsComma-separated user_ids directly
--timezoneTimezone (default: Asia/Singapore)

Update Task

bash
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"

Delete Task

bash
node skills/lark-calendar/scripts/delete-task.mjs \
  --task-id "35fc5310-a1b1-49c7-be75-be631d3079ee"

Manage Event Attendees

bash
# 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"

Manage Task Members

bash
# 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"

Employee Directory

Names are auto-resolved to Lark user_ids. Supported names:

user_idNamesRole
dgg163e1Boyang, by, 博洋Boss
gb71g28bRKLeadership, R&D
53gc5724DingLeadership, Operations
217ec2c2CharlineHR
f2bfd283曾晓玲, xiaolingHR
f26fe45dHHResearch
45858f91zan, Eva-
7f79b6deIssacOperations
1fb2547g王铁柱Operations
e5997acd尼克, NicoOperations
438c3c1fIvanOperations
17g8bab2DodoR&D, Product
73b45ec5启超, QiChaoShiR&D, Design
d1978a39chenglinR&D, Frontend
ef6fc4a7冠林, GreenR&D, Frontend
b47fa8f2sixian, sx, Sixian-YuR&D, Frontend
934fbf15jc, sagiri, 俊晨R&D, Backend
8c4aad87大明, damingR&D, Backend
ab87g5e1Emily YobalIntern
55fa337fjingda, 景达Intern
333c7cf1刘纪源, 纪源, AidenIntern

Business Rules

  • Boyang is always added as attendee to every calendar event (automatic)
  • Timezone handling: Uses IANA identifiers (e.g., Asia/Singapore, Asia/Shanghai)
  • Time format: Always YYYY-MM-DD HH:MM:SS
  • user_id vs open_id: This skill uses user_id format (e.g., dgg163e1), NOT open_id (e.g., ou_xxx)

Programmatic Usage

javascript
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'
});

Lark API Reference

Permissions Required

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:
  • Go to Lark Open Platform
  • Add scopes: task:task:write, contact:contact:readonly (for dynamic employee lookup)
  • 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.

Installation

Terminal bash

openclaw install lark-calendar
    
Copied!

💻Code Examples

**Required Environment Variables** (in `.secrets.env`):

required-environment-variables-in-secretsenv.sh
FEISHU_APP_ID=cli_a9f52a4ed7b8ded4
FEISHU_APP_SECRET=<your-app-secret>

--location "Meeting Room A"

---location-meeting-room-a.txt
**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) |

### Update Calendar Event

--assignees "Boyang,jc"

---assignees-boyangjc.txt
**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) |

### Update Task

--task-id "xxx" --remove "jc"

---task-id-xxx---remove-jc.txt
## Employee Directory

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 |

## Business Rules

1. **Boyang is always added** as attendee to every calendar event (automatic)
2. **Timezone handling:** Uses IANA identifiers (e.g., `Asia/Singapore`, `Asia/Shanghai`)
3. **Time format:** Always `YYYY-MM-DD HH:MM:SS`
4. **user_id vs open_id:** This skill uses `user_id` format (e.g., `dgg163e1`), NOT `open_id` (e.g., `ou_xxx`)

## Programmatic Usage
example.sh
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"
example.sh
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"
example.sh
# 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"
example.sh
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"
example.sh
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"
example.sh
# 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"

⚙️Configuration Options

Option Type Default Description
FEISHU_APP_IDstringcli_a9f52a4ed7b8ded4-
FEISHU_APP_SECRETstring<your-app-secret>-

Tags

#calendar_and-scheduling

Quick Info

Category Development
Model Claude 3.5
Complexity One-Click
Author boyangwang
Last Updated 3/10/2026
🚀
Optimized for
Claude 3.5
🧠

Ready to Install?

Get started with this skill in seconds

openclaw install lark-calendar