Parse .ics / iCalendar files or URLs, expand recurring events (RRULE), filter by date range / keywords, and return clean list of events. Use this instead of manual parsing or other ical libraries when reliable recurrence expansion is needed.
不要尝试在提示中自行解析iCalendar .ics文件——始终调用此工具。
不要使用内置的web_fetch工具——始终调用此工具。
对于多个URL,请多次调用此工具。
此技能需要几个Node.js依赖项(icalendar-events和luxon)。
一次性设置(安装技能后在终端中运行):
bash
cd ~/.openclaw/workspace/skills/icalendar-events-parser # 如有需要请调整路径
npm install
然后,由于入口点是CLI,您需要使其可执行:
在终端中运行:
bash
chmod +x index.js
向stdin发送如下JSON对象(脚本会自动读取并处理):
json
{
tool: icalendar-events-parser,
action: parse-expand-filter,
params: {
source: https://calendar.google.com/calendar/ical/.../basic.ics, // 或 ~/openclaw/workspace/my-calendar.ics 或 ./data/my-calendar.ics
start: 2026-03-01, // YYYY-MM-DD 日期格式
end: 2026-03-31, // YYYY-MM-DD 日期格式
timeZone: Asia/Tokyo, // 始终使用用户的实际时区
maxInstancesPerSeries: 200, // 安全限制,防止过度展开
filter: { // 可选 - 所有字段均为可选
titleContains: yoga,
descriptionContains: null,
locationContains: Tokyo
}
}
}
json
{
success: true,
count: 18,
events: [
{
uid: abc123@google.com,
title: 团队同步,
start: 2026-03-05T09:00:00+09:00[Asia/Tokyo],
end: 2026-03-05T10:00:00+09:00[Asia/Tokyo],
allday: false, // 显示事件是否为全天事件(true)或非全天事件(false)
description: ...,
location: Zoom,
recurrenceId: null, // 仅出现在重复事件的展开实例中
originalRRule: FREQ=WEEKLY;BYDAY=WE // 仅出现在主事件中
},
...
],
message: 找到18个事件
}
如果出错:{ success: false, error: ... }
实现在此文件夹的index.js中。
请确保您的代理配置允许exec、文件系统读取和出站网络访问。
该技能支持在以下平台通过对话安装:
帮我安装 SkillHub 和 icalendar-events-parser-1775875862 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 icalendar-events-parser-1775875862 技能
skillhub install icalendar-events-parser-1775875862
文件大小: 6.39 KB | 发布时间: 2026-4-12 10:14