iCal Events
Parse an .ics (iCalendar) file and list upcoming events within a lookahead window. Works with local files and with remote http(s):// URLs (e.g. Google Calendar's "Secret address in iCal format" feed).
Tool ID
ical-events
Credential Required
No.
Input Properties
| Property | Type | Default | Description |
|---|---|---|---|
source |
string | — | Required. Local .ics file path or http(s):// URL to an iCal feed |
daysAhead |
string | "7" |
Lookahead window in days |
maxEvents |
string | "20" |
Maximum events to return |
Published Outputs
| Output | Description |
|---|---|
summary |
Multi-line text listing upcoming events |
events |
JSON array of {summary, start, allDay, location, description, uid} |
count |
Number of events in the window |
daysAhead |
Echo of the window size (for downstream use) |
Example — Google Calendar feed
- In Google Calendar → Settings → Integrate calendar → copy the "Secret address in iCal format" (ending in
.ics). - Use that URL as the
source:
tool: ical-events
properties:
source: "https://calendar.google.com/calendar/ical/.../basic.ics"
daysAhead: "7"
Example — local file
tool: ical-events
properties:
source: "/home/me/calendar.ics"
daysAhead: "14"
Actual captured output (with a test .ics containing 4 events, including a past event and a 30-day-out event):
Upcoming events — next 14 day(s) from 2026-04-21 13:59:
- 2026-04-22T11:00: Team standup @ Zoom
- 2026-04-26 (all day): Dentist appointment
(The past event was skipped. The 30-day-out event was outside the 14-day window. The all-day event was formatted with "(all day)".)
What's supported
VEVENTblocks withSUMMARY,DTSTART,DTEND,LOCATION,DESCRIPTION,UID- All-day events (
DTSTART;VALUE=DATE:) - Timed events in UTC (
DTSTART:20260421T150000Z) - Timed events with
TZIDparameter (treated as naive local time) - RFC 5545 line folding (continuation lines)
What's NOT supported
- Recurring events (
RRULE). Only the originalDTSTARTis surfaced — recurrence rule expansion is a can of worms (timezones, exceptions, COUNT vs UNTIL, etc.) and usually better handled by pointing this tool at a flattened calendar export if you need it. - Reminders (
VALARM) - Attendees (
ATTENDEE) - Full RFC 5545 escape sequences in text fields (commas, semicolons, newlines). Straight-forward usage works; edge-case text rendering may be imperfect.
For a typical "what's on my calendar this week" workflow, this covers the common cases without shipping a 3rd-party dep.
Chaining Patterns
- ical-events → email — daily morning schedule reminder
- ical-events → slack — team standup prep
- ical-events → ai — "what's the most important meeting today and why?"
- Part of
daily-briefcomposite jobs
Privacy note
Google Calendar's "secret address" iCal feed URL contains an access token. Treat it as a password. Don't commit it to git, don't share it. Prefer storing it as an InTouch credential or job property rather than hardcoding it in the YAML.