| name | icalendar-events-parser |
| description | 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. |
| version | 1.0.2 |
| homepage | https://github.com/baptiste00001/icalendar-events-parser |
| tags | icalendar, ics, ical, parser |
| user-invocable | true |
| disable-model-invocation | false |
| triggers | ["parse calendar feed","parse ics"] |
| metadata | {"clawdbot":{"entrypoint":"index.js","runner":"node","format":"json","type":"cli","requires":{"bins":"[Truncated]","env":"[Truncated]"},"permissions":{"version":1,"declared_purpose":"Safely parse .ics files or remote URLs provided by the user. Only reads from the current OpenClaw workspace (including named workspaces) and the skill's own folder. No access to system files, credentials, or unrelated directories.","exec":"[Truncated]","network":"[Truncated]","filesystem":"[Truncated]","env":"[Truncated]","sensitive_data":"[Truncated]"}}} |
iCal Events Parser with Recurrence Expansion
When to use this skill
- User gives an .ics URL or local path and asks to list, summarize, filter or process events
- Need to expand recurring events into individual instances
- Want date-range filtering, keyword search in title/description/location
- Need clean structured output for further processing (e.g. add to Google Calendar, check conflicts)
Do NOT try to parse iCalendar .ics feeds yourself in prompts — always call this tool.
Do NOT use the built in web_fetch tool - always call this tool.
For several urls, call this tool several times.
How to set up
This skill requires a few Node.js dependencies (icalendar-events and luxon).
One-time setup (run this in the terminal after the skill is installed):
cd ~/.openclaw/workspace/skills/icalendar-events-parser
npm install
Then, the entry point being a CLI, you need to make it executable:
In the terminal, run:
chmod +x index.js
How the agent should call it (JSON format)
Send a JSON object like this to stdin (the script reads and processes it automatically):
{
"tool": "icalendar-events-parser",
"action": "parse-expand-filter",
"params": {
"source": "https://calendar.google.com/calendar/ical/.../basic.ics",
"start": "2026-03-01",
"end"