首页龙虾技能列表 › 飞书日历 — Lark日程

飞书日历 — Lark日程

v1.0.0

管理Lark日历,包括创建、查询和修改日程事件。

3· 5,700·50 当前·51 累计
by @boyangwang·MIT-0
下载技能包
License
MIT-0
最后更新
2026/2/28
安全扫描
VirusTotal
无害
查看报告
OpenClaw
可疑
medium confidence
该技能的代码和指令与其所述目的(Lark日历管理)一致,它使用Lark API进行交互,请求适当的配置,不请求无关的凭证或意外端点。
评估建议
此技能似乎确实做到了它声称的:Lark日历管理脚本,用于日程操作。安装或运行之前:1) 确认您的Lark API凭证已妥善配置,并且您对授予Lark访问权限感到满意。2) 仅在您信任的环境中运行,避免修改敏感日程。3) 技能不请求凭证,但注意不要向脚本传递敏感的Lark凭证,除非您信任整个工具链。4) 如果您想要更高的保证,请在运行前在本地审查包含的脚本。...
详细分析 ▾
用途与能力
The code and SKILL.md implement calendar and task CRUD and an employee directory (including dynamic contact lookup) which is coherent with the skill name/description. However the registry metadata lists no required environment variables or binaries despite the SKILL.md and code clearly requiring FEISHU_APP_ID and FEISHU_APP_SECRET and Node.js to run. This metadata omission is an inconsistency that could mislead users about what secrets/tools are needed.
指令范围
Runtime instructions and scripts only call the Lark (Feishu) APIs and resolve employee names; nothing in SKILL.md or the scripts instructs reading unrelated system files. Business rules (e.g., 'Boyang is always added' to attendees) are documented. One implementation detail to note: the API wrapper loads secrets from a .secrets.env file via dotenv at a relative path (join(__dirname, '../../../../.secrets.env')). That assumes a particular installation layout and will read a dotfile outside the lib directory — verify that the file you provide is the intended credential file and not a broader system file.
安装机制
This is flagged as instruction-only (no install spec) but the package includes package.json/package-lock.json and code that depends on Node and the npm package 'dotenv'. The registry metadata did not declare Node.js as a required binary and provided no install instructions. That mismatch means users may run the scripts without installing dependencies or may not realize they must run npm install or have Node available. No external download URLs are used (only an npm dependency), which is lower risk, but the absent install guidance is a deployment/operational risk.
凭证需求
The skill requires FEISHU_APP_ID and FEISHU_APP_SECRET (declared in SKILL.md and used by lib/lark-api.mjs) — these are appropriate and necessary for Lark API access. However the registry metadata claimed no required env vars; that inconsistency is significant because the skill will not work without those secrets and will attempt to read them from a .secrets.env file. Verify you only supply an app credential with minimal scopes needed (calendar, contact readonly, task as applicable).
持久化与权限
The skill does not request permanent/always-included privileges (always: false). It maintains only in-memory caches and does not modify other skills or system-wide agent settings. Autonomous invocation is allowed (platform default) and not by itself a red flag here.
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.0.02026/2/2

初始版本,支持Lark日历管理

● 无害

安装命令 点击复制

官方npx clawhub@latest install lark-calendar
镜像加速npx clawhub@latest install lark-calendar --registry https://cn.clawhub-mirror.com

技能文档

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

FEISHU_APP_ID=cli_a9f52a4ed7b8ded4
FEISHU_APP_SECRET=

Default Calendar: feishu.cn_caF80RJxgGcbBGsQx64bCh@group.calendar.feishu.cn (Claw calendar)

Default Timezone: Asia/Singapore

Quick Reference

Create Calendar Event

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

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

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

List Calendar Events

# 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

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

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

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

Manage Event Attendees

# 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

# 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

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.

数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制

免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制

了解定制服务