A free visual builder and parser for RFC 5545 iCalendar recurrence rules. Set frequency, interval, days, and end conditions — get a copy-ready RRULE string, plain-English summary, and a preview of the next occurrences.

RRULE Generator is a free browser-based tool that lets you build RFC 5545 RRULE strings visually — pick frequency, interval, days, and end conditions using a simple form, then copy the ready-to-use string. It also parses existing RRULE strings back into plain English and shows the next upcoming occurrences. No signup, no installs, fully client-side.
Every major calendar system — Google Calendar, Outlook, Apple Calendar, CalDAV servers, the Python dateutil library, the JavaScript rrule package — uses a text-based format called RRULE to describe repeating events. The format comes from RFC 5545 (iCalendar), and while it is powerful, writing it by hand is error-prone:
RRULE:FREQ=MONTHLY;BYMONTHDAY=15;INTERVAL=2;COUNT=24
What does that mean? Is the interval correct? Did you remember to use BYDAY for weekly rules or BYMONTHDAY for monthly ones? Is UNTIL in UTC with a Z suffix? These are the kinds of small mistakes that produce silent bugs in scheduling code — the event fires on the wrong day, the series ends two months early, or the rule is silently ignored by the calendar server.
There was no quick, free, no-login tool to build and verify these rules before adding them to code. RRULE Generator fills that gap.
Paste any RRULE string — with or without the RRULE: prefix — and the tool decodes each component:
Five example rules are available with one click for quick exploration.
The entire RRULE generation and occurrence expansion is implemented in TypeScript without any third-party calendar library. Key components:
The tool component (rrule-generator-tool.tsx) is a client component with two sub-components rendered inside a Tabs container: BuildTab and ParseTab. Both share the same pure helper functions (buildRRule, humanReadable, generateOccurrences, parseRRule). State is local to each tab — no global store needed.
Developers integrating with Google Calendar API, Microsoft Graph Calendar, or any CalDAV server need to specify recurrence as an RRULE string. Use the generator to build the rule visually, verify the next dates are correct, and paste the string directly into the API call.
// Google Calendar API example
{
recurrence: ["RRULE:FREQ=WEEKLY;BYDAY=MO,WE,FR;COUNT=12"]
}Both libraries accept RRULE strings directly. Build the rule here, copy it, and pass it to the library — no need to understand the RRule constructor options first.
import RRule from 'rrule';
const rule = RRule.fromString('RRULE:FREQ=WEEKLY;BYDAY=MO,WE,FR');When an event fires on the wrong day or a series ends unexpectedly, paste the stored RRULE into the Parse tab to see exactly what it describes and preview the dates it produces.
Billing systems that use iCalendar recurrence for invoice scheduling (monthly on the 1st, quarterly, annual) can use the generator to design and validate the recurrence rule before wiring it into the billing engine.
For developers unfamiliar with RFC 5545, the generator makes the mapping between options and syntax tangible. Adjust the interval, watch the RRULE update, see the dates change — the standard becomes clear through interaction.
RRULE Generator removes the friction from recurring calendar event development:
Try it now: rrule-generator.tools.jagodana.com
The client needed a robust developer tools solution that could scale with their growing user base while maintaining a seamless user experience across all devices.
We built a modern application using Calendar and iCalendar, focusing on performance, accessibility, and a delightful user experience.
Category
Developer Tools
Technologies
Date
June 2026
More work in Developer Tools