Date & Time Tools
RRULE Generator
Build, parse, and explain iCalendar RFC 5545 RRULE strings in your browser. Live next-occurrences preview, presets, and DTSTART block output.
Common presets
Recurrence rule
Every N week(s).
WKST is honored when weekly INTERVAL is greater than 1.
Advanced options (BYHOUR, BYMINUTE, BYSETPOS)
Picks the Nth occurrence in each period after the other BY* rules expand. Negative values count from the end.
Start date and output
Floating time is wall-clock with no zone. UTC pins the start to Zulu time.
RRULE string
FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR
DTSTART + RRULE block
DTSTART:20260608T090000 RRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR
Plain English
Every week, on Monday, Tuesday, Wednesday, Thursday, and Friday, with no end date. Starts 2026-06-08 09:00.
Next occurrences
- #1Mon, Jun 08, 2026, 09:00 AMMonday2026-06-08T09:00
- #2Tue, Jun 09, 2026, 09:00 AMTuesday2026-06-09T09:00
- #3Wed, Jun 10, 2026, 09:00 AMWednesday2026-06-10T09:00
- #4Thu, Jun 11, 2026, 09:00 AMThursday2026-06-11T09:00
- #5Fri, Jun 12, 2026, 09:00 AMFriday2026-06-12T09:00
- #6Mon, Jun 15, 2026, 09:00 AMMonday2026-06-15T09:00
- #7Tue, Jun 16, 2026, 09:00 AMTuesday2026-06-16T09:00
- #8Wed, Jun 17, 2026, 09:00 AMWednesday2026-06-17T09:00
- #9Thu, Jun 18, 2026, 09:00 AMThursday2026-06-18T09:00
- #10Fri, Jun 19, 2026, 09:00 AMFriday2026-06-19T09:00
Parse an existing RRULE
Paste a full RRULE (with or without a leading RRULE: prefix) to load it into the builder.
How to use
- Pick a frequency (DAILY, WEEKLY, MONTHLY, or YEARLY) and set INTERVAL to fire every N units (every 1 day, every 2 weeks, every 3 months, and so on).
- Select weekdays for BYDAY, type ordinal BYDAY tokens like 1MO or -1FR for monthly and yearly rules, set BYMONTHDAY for days of the month (use -1 for the last day), and pick BYMONTH for yearly rules.
- Choose whether the schedule runs forever, stops after N occurrences (COUNT), or stops on a specific date (UNTIL, emitted as UTC Z form).
- Set DTSTART and pick Floating or UTC. The next 10 occurrences refresh live so you can confirm the rule fires when you expect.
- Copy the RRULE string on its own, or copy the DTSTART + RRULE block ready to paste into an iCalendar event or a recurring schedule field.
- Paste any existing RRULE into the parser at the bottom and click Apply to load every rule part back into the builder.
About this tool
RRULE Generator is a focused builder, parser, explainer, and preview for the iCalendar recurrence rule defined in RFC 5545. The RRULE is the rule that controls when a recurring event in Google Calendar, Apple Calendar, Outlook, Fastmail, Cal.com, n8n, Zapier, Temporal, Amazon EventBridge scheduler with the iCal recurrence flag, and any other iCalendar-aware system actually fires. The spec is dense and the rule grammar has a long tail of edge cases (BYSETPOS, ordinal BYDAY, BYMONTHDAY=-1, UNTIL in UTC, COUNT vs UNTIL exclusivity, WKST semantics, leap-year handling for February 29), so most teams reach for a builder rather than typing the string by hand. This tool covers the four frequencies the major calendar UIs actually expose (DAILY, WEEKLY, MONTHLY, YEARLY) with all of the practically used rule parts: INTERVAL, BYDAY (with optional ordinal prefix like 1MO or -1FR for monthly and yearly rules), BYMONTHDAY (positive or negative, with -1 resolving to the last day of each month), BYMONTH, BYHOUR, BYMINUTE, BYSETPOS (to pick the Nth match after the other BY rules expand, useful for rules like 'the last weekday of the month'), COUNT, UNTIL (emitted in UTC Z form per spec), and WKST. A live preview computes the next ten occurrences of the rule from your chosen DTSTART so you can sanity check before pasting the string into a calendar invite, an iCal feed, an EventBridge schedule, or a Cal.com recurrence config. A plain-English explainer turns the rule into a single readable sentence so reviewers and ops engineers can audit the schedule without learning the grammar. A reverse-parser takes any pasted RRULE (with or without the RRULE: prefix, and with DTSTART or TZID lines harmlessly stripped) and loads every rule part back into the builder so you can edit an existing rule or hand it to a teammate. A set of common presets (every weekday at 9, every other Tuesday, first Monday of every month, last Friday of every month, last day of every month, every quarter on the first, every year on March 15, daily for 30 days) covers the rules most teams actually need. Everything runs in your browser. The rule, the start date, and the parsed input never leave the page.
Free to use. Works in your browser. No signup, no login.
Related tools
You may also like
ICS Generator
Build a valid .ics calendar file with recurrence and reminders.
Open tool
DeveloperCron Expression Generator
Build and explain cron expressions with plain English and a next-run preview.
Open tool
DeveloperCrontab Explainer
Translate any crontab to plain English with a field breakdown and next-run preview.
Open tool
Date & TimeICS File Viewer
Preview .ics calendar events, attendees, recurrence rules, and reminders in your browser.
Open tool
Date & TimeTime Zone Converter
Compare a moment across many time zones with offsets and DST.
Open tool
Date & TimeDate Difference Calculator
Days, weeks, months, working days, and weekday between any two dates.
Open tool