ICS Agenda View

Paste an iCalendar .ics export to group events by day, expand common recurrences, convert timezones, and find free gaps between meetings.

Try:
Agenda

About this tool

ICS Agenda View turns a pasted iCalendar (.ics) export into a readable agenda grouped by day. It is useful when you have a calendar export from a scheduling tool, ticketing system, conference schedule, or shared calendar and need a quick offline view of meetings plus the free gaps between them.

The parser handles unfolded and folded iCalendar lines, escaped text, all-day events, UTC timestamps, floating timestamps, many TZID values, EXDATE, and a bounded subset of common RRULE recurrences. Nothing is fetched from a calendar account: the pasted text is the entire input.

Worked example

Paste this calendar:

BEGIN:VCALENDAR
VERSION:2.0
BEGIN:VEVENT
UID:a@example
DTSTART:20260309T090000Z
DTEND:20260309T093000Z
SUMMARY:Standup
LOCATION:Room 2
END:VEVENT
BEGIN:VEVENT
UID:b@example
DTSTART:20260309T110000Z
DTEND:20260309T120000Z
SUMMARY:Design review
END:VEVENT
END:VCALENDAR

With Start date set to 2026-03-09, Days set to 1, and the default 09:0018:00 gap window, the output starts:

Agenda 2026-03-09 to 2026-03-09 · UTC
Free gaps 09:00-18:00, at least 30m

Mon 2026-03-09
  09:00-09:30   Standup · Room 2
    free 1h 30m (09:30-11:00)
  11:00-12:00   Design review
    free 6h (12:00-18:00)

Switch Output format to JSON when you want machine-readable days, events, gaps, totals, and warnings.

Useful controls

Limits and edge cases

FAQ

Does this connect to Google Calendar, Outlook, or CalDAV?

No. It only parses pasted .ics text and never connects to an account, URL, or API. Export or copy the calendar data first, then paste it into the tool.

How are recurring events handled?

Common daily, weekly, monthly, and yearly RRULE patterns are expanded inside the selected window, and EXDATE exclusions are applied. Unsupported recurrence shapes are not guessed; the event is listed once and a warning explains the limitation.

Why does a timezone warning appear?

Some calendars use custom or Windows-style timezone names. The tool recognizes IANA zones and common Windows names. Unknown zones are interpreted in the selected display timezone so the agenda can still render, and the warning tells you that conversion was approximate.

Can this find free time across multiple calendars?

Not directly. This tool treats the pasted calendar as one schedule and reports gaps between its events. To compare several people, combine their busy events into one .ics first or use a dedicated free/busy merger.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool ics-agenda-view "BEGIN:VCALENDAR
VERSION:2.0
BEGIN:VEVENT
DTSTART:20260309T090000Z
DTEND:20260309T093000Z
SUMMARY:Standup
END:VEVENT
END:VCALENDAR"

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/ics-agenda-view/?ics=BEGIN%3AVCALENDAR%0AVERSION%3A2.0%0ABEGIN%3AVEVENT%0ADTSTART%3A20260309T090000Z%0ADTEND%3A20260309T093000Z%0ASUMMARY%3AStandup%0AEND%3AVEVENT%0AEND%3AVCALENDAR&start_date=2026-03-09&days=7&timezone=UTC&day_start=09%3A00&day_end=18%3A00&min_gap_minutes=30&show_gaps=true&filter=design&expand_recurring=true&include_cancelled=true&details=normal&output=text

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.