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.

Tailwind Color Generator

Tailwind Color Generator

Generate a Tailwind-style color scale and config snippet from a base color.

SVG Perspective Grid Generator

SVG Perspective Grid Generator

Generate one-point perspective grid SVGs with a customizable vanishing point. Create depth backgrounds, retrofuturistic scenes, and illustration overlays for free, no upload required.

Short ID Generator

Short ID Generator

Generate short unique IDs for URLs, references, and internal tools.

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.