← Back to Skills Marketplace
zhengqunkoo

Calendar Generator

by Zhengqun Koo · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ pending
36
Downloads
1
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install ics-generator
Description
Generates Google Calendar‑compatible .ics files from structured event data.
README (SKILL.md)

ics‑generator

When to use

When you need to convert a schedule, study plan, or task list into an iCalendar (.ics) file that can be imported into Google Calendar or any other iCalendar‑compatible client.

Workflow Overview

  1. Collect structured events – each event must contain:    - summary (string)     - description (string, optional)     - start (ISO‑8601 date/time or JS Date)     - end   (ISO‑8601 date/time or JS Date)     - colorId (Google Calendar colour ID, optional) 

  2. Chunking / sequential dates     - First chunk – supply the intended start date (e.g., 2026‑05‑31T09:00:00Z).     - Subsequent chunks – pass the last date of the previous chunk (via the lastDate field). The skill will automatically shift the next chunk’s start date forward by one day, guaranteeing a clean “one‑day‑gap” between chunks.

  3. Run the skill – invoke the run function exported by index.js with the event array and optional lastDate.

Implementation Notes

Feature Details
Google‑Calendar compatibility Automatically injects the required headers:\x3Cbr>PRODID:-//Google Inc//Google Calendar 70.6//EN \x3Cbr>CALSCALE:GREGORIAN
UTC enforcement All start/end times are normalized to UTC and formatted as YYYYMMDDTHHMMSSZ. Google Calendar accepts this exact format without further conversion.
Unique identifiers Each event receives a UUID‑v4‑derived UID (event-\x3Cuuid>) so calendar clients can correctly sync updates.
Color handling If a colorId is supplied, it’s added as X‑GOOGLE‑CALENDAR‑COLOR:\x3Cid> inside the VEVENT block.
Output Returns a complete .ics string wrapped in BEGIN:VCALENDAR … END:VCALENDAR. Every VEVENT ends with END:VEVENT and the final block ends with END:VCALENDAR.
Dependencies Node ≥ 20 (for crypto.randomUUID()). No external npm packages—pure JavaScript plus Node’s built‑in crypto module.
License MIT – free to copy, modify, and share.

Why the specific PRODID / CALSCALE?

From community feedback, Google Calendar only imported the generated file when those exact values were present. A generic PRODID caused the “Unable to launch event” error; CALSCALE:GREGORIAN tells Google Calendar which calendar system to assume (Gregorian), which is required for proper time‑zone handling.

Capability Tags
crypto
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install ics-generator
  3. After installation, invoke the skill by name or use /ics-generator
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
- Initial release of ics-generator. - Converts structured event data into Google Calendar–compatible .ics files. - Normalizes all event times to UTC in the required iCalendar format. - Ensures each event has a unique UUID-derived identifier. - Supports Google Calendar color assignment via optional colorId. - No external dependencies; uses Node 20+ and the built-in crypto module.
Metadata
Slug ics-generator
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Calendar Generator?

Generates Google Calendar‑compatible .ics files from structured event data. It is an AI Agent Skill for Claude Code / OpenClaw, with 36 downloads so far.

How do I install Calendar Generator?

Run "/install ics-generator" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Calendar Generator free?

Yes, Calendar Generator is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Calendar Generator support?

Calendar Generator is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Calendar Generator?

It is built and maintained by Zhengqun Koo (@zhengqunkoo); the current version is v1.0.0.

💬 Comments