ics-calendar-reader
1
总安装量
1
周安装量
#43730
全站排名
安装命令
npx skills add https://github.com/gitstua/stu-skills --skill ics-calendar-reader
Agent 安装分布
amp
1
opencode
1
kimi-cli
1
codex
1
claude-code
1
Skill 文档
ICS Calendar Reader
Parse .ics files with scripts/read_ics.py instead of hand-parsing text.
Prerequisite
- Set
ICS_URLSto one or more calendar URLs (comma-separated).- Example:
export ICS_URLS="https://example.com/a.ics,https://example.com/b.ics"
- Example:
- Secrets/defaults file:
~/.config/stu-skills/ics-calendar-reader/.env- The script reads this path from
ics-calendar-reader/.env-pathautomatically.
- The script reads this path from
- If
ICS_URLSis missing and noics_pathis provided, the script exits with an instruction for the agent to ask the user for it. - Do not paste private calendar URLs in prompts or command lines; run the script and let it read from env.
- The parser refuses
--urlinputs by design and instructs usingICS_URLSfrom.env. ICS_URLSentries usingwebcal://orwebcals://are normalized tohttps://automatically.
.env Sample
Path: ~/.config/stu-skills/ics-calendar-reader/.env
ICS_URLS="https://example.com/a.ics,https://example.com/b.ics"
Workflow
- Run the parser on the file and request JSON for reliable downstream use:
python3 scripts/read_ics.py /path/to/calendar.ics --format jsonpython3 scripts/read_ics.py --format json
- Filter to upcoming events or a window:
python3 scripts/read_ics.py /path/to/calendar.ics --after now --limit 20 --format jsonpython3 scripts/read_ics.py /path/to/calendar.ics --after 2026-02-01T00:00:00 --before 2026-03-01T00:00:00 --format jsonpython3 scripts/read_ics.py --after now --limit 20 --format json
- Use text output for quick human review:
python3 scripts/read_ics.py /path/to/calendar.ics --format text
Cache (URL fetches)
- Remote ICS URLs are cached by default for 900 seconds.
- Override TTL with
--cache-ttl(seconds) orICS_CACHE_TTL_SECONDS. - Disable cache by setting
--cache-ttl 0. - Override cache location with
--cache-dirorICS_CACHE_DIR. - Default cache path:
$XDG_CACHE_HOME/stu-skills/ics-calendar-reader- or
~/.cache/stu-skills/ics-calendar-readerwhenXDG_CACHE_HOMEis unset.
Output Contract
Expect each event to include:
summarystart(ISO-8601)end(ISO-8601 when available)all_day(boolean)locationdescriptionstatusuidorganizerattendees
Notes
- Treat parsed JSON as source of truth for further transformations.
- Keep timezone-aware datetimes intact; do not strip offsets.
- When presenting datetimes to users, default to local timezone with format
Sat 7 Feb 2026 16:43(%a %-d %b %Y %H:%M). - For recurring events, treat each VEVENT record present in the file as one parsed item.
- If needed, read
references/ics-fields.mdfor quick field semantics. - For private calendar subscriptions, store URLs in
ICS_URLSand avoid inline URLs entirely.