RRULE Recurrence Preview

Paste an RRULE and set the start time to inspect its normalized fields and occurrences. The preview supports common fields and does not create calendar events.

Runs locally in your browser
This tool processes all data locally in your browser.
RRULECommon fields: FREQ, INTERVAL, COUNT, UNTIL, BYDAY, BYMONTHDAY and BYMONTH.
Local schedule previewCommon RFC 5545 fields only
Preview uses this browser's local time zone.

This tool previews dates only. It does not create, send or subscribe to calendar events.

Next occurrences
  1. No occurrences to display yet.

How to preview an RRULE schedule

Paste an RRULE line and pick a start time; the page prints the normalized rule and the next occurrences as the browser’s local clock would show them. Only dates are produced — no feed, no .ics download and no calendar event.

The preview understands the common RFC 5545 fields, including BYDAY with an ordinal (2MO, -1FR) and negative BYMONTHDAY values. Everything is computed in this browser: the rule never leaves the page.

  1. Type or paste the rule (the RRULE: prefix is optional) into RRULE, keeping the FREQ field.
  2. Set Start date and time — occurrences are computed from this moment in your browser’s time zone.
  3. Choose how many occurrences to list (1–50) and press Parse & preview.
  4. Read Recurrence summary: FREQ, INTERVAL, the listed occurrences and the end condition (COUNT value, UNTIL value or ∞).
  5. Copy the normalized rule and the next occurrences; Clear empties the form.

What this preview reads, and where its limits are

Fields the preview uses

FREQ accepts DAILY, WEEKLY, MONTHLY or YEARLY, with INTERVAL as a positive whole number. COUNT caps the rule at a number of occurrences and UNTIL ends it at a moment in time; RFC 5545 forbids using both in the same rule, and the preview reports that combination instead of guessing.

BYDAY takes one or more weekdays, optionally with an ordinal: 2MO is the second Monday of the month and -1FR the last Friday; ordinals apply with MONTHLY, or with YEARLY when BYMONTH is present. BYMONTHDAY accepts 1–31 and negative values (‑1 is the last day of the month); BYMONTH accepts 1–12.

Time zone and search window

Occurrences are calculated in the browser’s local time zone, which is also the one the date list shows. An UNTIL value ending in Z is compared in UTC; an UNTIL with a date only covers that whole local day.

The search window is 20,000 days (about 54 years). When a rule yields fewer dates than requested because that window ended, the page says so instead of stopping silently.

What this page does not do

Sub-daily rules are out of scope: FREQ=HOURLY, MINUTELY and SECONDLY are rejected because the preview works in calendar days. Fields such as WKST, BYHOUR, BYSETPOS or EXDATE are not applied; they are listed as unused so the rule is not silently reinterpreted.

The tool creates, sends and subscribes no calendar events, and it does not write .ics files. Nothing is uploaded: every calculation happens in the page.

Recent tools: