How to use the RRULE generator
- Enter First occurrence (UTC ISO date/time) in the displayed ISO form, such as
2026-01-05T09:00:00. - Select Frequency: DAILY, WEEKLY, MONTHLY or YEARLY.
- Set Interval and Occurrence count (1–1000).
- Enter supported uppercase weekday codes separated by commas, or clear Weekdays, comma separated (optional) when you do not want that filter.
- Select Process files, read the dates, and download
recurrence.txtandoccurrences.csv.
No source file is required for this RRULE generator. The starting values demonstrate a weekly Monday schedule; review every control before creating a different pattern.
What FREQ, INTERVAL, COUNT and BYDAY mean here
FREQ chooses the repetition unit. INTERVAL=2 means every two units of that frequency, such as every other week. COUNT bounds the recurrence output rather than leaving a series open indefinitely. This implementation accepts interval values from 1 to 100 and occurrence counts from 1 to 1000.
The optional BYDAY list uses MO, TU, WE, TH, FR, SA and SU. Enter codes as a comma-separated sequence without extra spaces. Numbered weekday forms such as a first Monday or a last Friday are outside this interface. The preview is the practical check that the supported settings describe the dates you intended.
Worked example: three meetings every other Monday
Set the first occurrence to 2026-01-05T09:00:00, frequency to WEEKLY, interval to 2, count to 3 and weekdays to MO. The resulting rule is:
FREQ=WEEKLY;INTERVAL=2;COUNT=3;BYDAY=MO
The expected dates are 5 January, 19 January and 2 February 2026 at 09:00 UTC. The text download also includes the matching DTSTART line. Those values deliberately use a start date that agrees with the weekday filter, avoiding an ambiguous schedule whose anchor and rule disagree.
Try the same schedule with interval 1 to see the date spacing change. A readable rule string alone is not enough; inspect the occurrence list to catch an unintended weekday or frequency.

UTC dates do not model a local wall-clock schedule
This RRULE generator treats the starting date/time as UTC. It does not create a named time zone or simulate daylight-saving changes. A UTC meeting that stays at 09:00 can appear at different local times when a viewer’s offset changes. That may be correct for a global UTC schedule but wrong for a meeting intended to stay at 09:00 in one city.
Use a timezone-aware calendar workflow when local wall-clock recurrence is the requirement. The RRULE generator does not provide VTIMEZONE creation, open-ended rules, UNTIL controls or exception dates. A finite UTC preview cannot guarantee how every calendar client will interpret a more complex event around a time-zone transition.
Turn the rule into an event deliberately
The text download contains recurrence-related lines, not a complete VCALENDAR with an event title, location and duration. Use the CSV to ICS converter when you need its supported event-column mapping and a downloadable calendar. Review its separate time-zone and all-day-date limitations before combining workflows.
Use the ICS to CSV exporter to inspect occurrences already present in a supported calendar file. That exporter has an explicit expansion window and different safety limits. Copying a generated RRULE into an event should preserve a coherent DTSTART and follow the destination application’s documented supported recurrence behavior.
Monthly dates and filters need a preview
Calendar months are not equal-length durations. A monthly pattern anchored on the end of a month can behave differently from adding a fixed number of seconds. The iCalendar recurrence model is richer than ordinary arithmetic; check short months, leap years and weekday filtering in the generated list rather than assuming all monthly intervals are identical.
The supported rules are evaluated by the bundled recurrence library. This interface does not expose every RFC 5545 selector, such as BYSETPOS or numbered weekdays. For an existing complex file, the ICS validator can perform its own basic checks, but it also does not replace a complete scheduling-system test.
Troubleshooting a rejected or unexpected schedule
Impossible dates, unsupported weekday codes, fractional intervals or counts outside the bounds can prevent generation. Match the displayed ISO form and use uppercase codes. When changing to a different frequency, revisit the optional weekday field rather than unknowingly retaining the default Monday filter.
Generation runs locally; no calendar account is connected and no invitation is sent. The iCalendar specification describes the broader recurrence model. Use the RRULE generator to build and inspect a supported finite schedule, then validate the complete event in the application that will own it.
Common RRULE generator errors and how to fix them
When the RRULE generator cannot use a file, it stops with one clear message instead of producing a half-finished download. These are the problems people run into most often, with the fix for each:
- The calendar or recurrence rule is malformed. Frequency must be DAILY, WEEKLY, MONTHLY or YEARLY; interval 1–100; count 1–1,000; and BYDAY a comma list such as MO,WE.
- Use a valid date in the selected format, with an end after its start. The start date or time is not a real date.
- Meetings appear at the wrong hour The start is treated as UTC. Convert a local meeting time to UTC before generating, and check the preview.
Privacy: the RRULE generator runs in your browser
RRULE generator processing happens with JavaScript in a background worker on this page. Your file is not uploaded to a FileFix server, and the results you download are created in your browser’s memory. Calendars reveal meetings, names and locations, so local processing keeps that schedule private. When you finish on a shared computer, clear the selection or close the tab.
Sources
The RRULE generator follows these specifications and format guides:
Questions about this tool
Can the RRULE generator create an endless recurrence?
No. This interface uses an occurrence count from 1 to 1000. Open-ended rules and UNTIL controls are not exposed.
Does it keep a meeting at the same local time through daylight saving?
No. The preview is UTC-based and does not generate named time zones or simulate daylight-saving transitions.
Can I generate the first Monday of each month?
Numbered weekdays and selectors such as BYSETPOS are outside this interface. It supports unnumbered weekday filters only.
Is recurrence.txt a complete calendar file?
No. It contains DTSTART and RRULE lines. A complete event needs additional calendar structure and event properties.
Which weekday abbreviations are accepted?
Use uppercase MO, TU, WE, TH, FR, SA and SU, separated by commas without spaces.
Review the supported formats and limitations before using an output file. File processing happens in your browser.