Tiny Online Tools logoTiny Online ToolssearchSearch tools…grid_viewAll Tools
Homechevron_rightEmail & Calendar Toolschevron_rightRecurring Event ExpanderRecurring Event Expander

Recurring Event Expander

Expand an iCalendar RRULE into the dates it actually produces, with EXDATE, RDATE and time zones honoured.

Where the rule comes fromBuild or paste a ruleFrom a calendar fileBoth modes expand the same way. A file also brings its own VTIMEZONE, EXDATE and RDATE with it.Examplesbolt US Thanksgivingbolt Last Friday of the monthbolt Every other Tuesday and Sundaybolt Weekday standupbolt 29 Februarybolt An impossible ruleRule builderSunMonTueWedThuFriSatLeave empty to let the frequency decide. With an ordinal below, this becomes “the nth weekday”.Keeps only the nth match inside each period. -1 is the last one.RRULEWith or without the RRULE: prefix. Editing this reparses it back into the builder above.DTSTARTTreat as a date with no timeExtra datesOne per line, or separated by commas. 2026-03-16 09:30 and 20260316T093000 are both accepted.How many, and whenHard cap 2000. An endless rule is cut off here and marked as truncated.

Similar Tools

ICS Calendar Inspector

ICS Calendar Inspector

Open an .ics file and inspect its events, recurrence rules, time zones, alarms and attendees.

Email Archive Viewer

Email Archive Viewer

Browse an MBOX archive in your browser: search the message list, read any message and save it, without importing anything.

Email File Viewer

Email File Viewer

Open EML and Outlook MSG files in your browser — headers, rendered body, MIME structure and attachments, with no mail client installed.

PST / OST Inspector

PST / OST Inspector

Open an Outlook PST or OST archive and see its folder tree, message index and file header — in your browser.

White Noise Generator

White Noise Generator

Generate white, pink, and brown noise online for focus, sleep, masking, or audio testing. No download, runs in your browser.

PDF Form Filler

PDF Form Filler

Open any fillable PDF, edit its form fields directly in your browser, and save a completed copy — with an optional flatten step to lock values in place.

SVG Spiral Generator

SVG Spiral Generator

Generate smooth Archimedean and logarithmic SVG spirals with full control over turns, radius, stroke, and gradient fills — perfect for decorative shapes, logos, and backgrounds.

apps

More Tools

Browse our full collection of free online tools.

A recurrence rule is a program, not a date

RRULE:FREQ=MONTHLY;BYDAY=-1FR;COUNT=12 does not contain a single date. It contains instructions for producing them, and the only honest way to answer when does this actually happen is to run those instructions. This tool runs them.

What is applied

Every part of RFC 5545 §3.3.10: FREQ, INTERVAL, COUNT, UNTIL, WKST, all nine BY* parts including negative ordinals such as -1FR ("the last Friday"), and BYSETPOS. On top of the rule, EXDATE removes dates and RDATE adds them — and each row says which of the two it came from, because a date that only exists because someone added it by hand is a different thing from one the rule generated.

Why the UTC offset column matters

A weekly 09:00 meeting stays at 09:00 when the clocks change. The instant moves by an hour; the wall-clock reading does not. That is what RFC 5545 requires, and it is what a naive "add 7 × 86 400 000 milliseconds" gets wrong twice a year. So every occurrence shows both readings side by side: the local time, and the real UTC instant with the offset that produced it. When two occurrences have different offsets the tool says so explicitly.

Zones are resolved from your browser's IANA database when the TZID is a real zone name, and from the VTIMEZONE block inside the file otherwise — which is how Microsoft's invented names like Romance Standard Time still resolve correctly. When neither works, the offset is shown as unknown rather than quietly assumed to be UTC.

Limits, stated plainly

An endless rule is expanded up to the cap you set and the result is marked as truncated. A rule with impossible constraints — FREQ=YEARLY;BYMONTH=2;BYMONTHDAY=30 is legal and can never match a real day — produces nothing, and the tool says why instead of showing an empty table.

Privacy

Everything runs in your browser. No calendar file is uploaded and nothing here contacts the network.