BYTETOOLS

RRULE Generator and Tester

Build an RFC 5545 recurrence rule from plain controls or paste one to test it, then read the next occurrences expanded date by date in your browser.

Build the rule

On these weekdays
Only in these months (leave all off for every month)

Recurrence rule

RRULE:FREQ=MONTHLY;BYDAY=3TH;COUNT=6

Every month, on the third Thursday, for 6 occurrences.

6
Occurrences found
2026-01-15
First occurrence

Next occurrences

  1. 1.Thu, Jan 15, 20262026-01-15 · W3
  2. 2.Thu, Feb 19, 20262026-02-19 · W8
  3. 3.Thu, Mar 19, 20262026-03-19 · W12
  4. 4.Thu, Apr 16, 20262026-04-16 · W16
  5. 5.Thu, May 21, 20262026-05-21 · W21
  6. 6.Thu, Jun 18, 20262026-06-18 · W25

The rule runs out here — COUNT or UNTIL has been reached.

What is the RRULE Generator and Tester?

The ByteTools RRULE Generator builds the recurrence rules that calendar systems use to describe repeating events.

  • Visual builder for FREQ, INTERVAL, BYDAY, BYMONTHDAY, BYMONTH, BYSETPOS, COUNT and UNTIL
  • Manual mode to paste and test a rule taken from an existing .ics file
  • Occurrences expanded locally and listed with ISO dates and ISO week numbers
  • Plain-English sentence describing what the rule actually means
  • Eight presets including the last working day of the month and Friday the 13th
  • Copy the bare RRULE or the rule together with its next dates

How to use the RRULE Generator and Tester

  1. 1

    Set the start date — occurrences are counted from it — and how many of them to preview.

  2. 2

    Choose the frequency and interval, then tick the weekdays, months and days of the month you need.

  3. 3

    For monthly or yearly rules, pick an ordinal such as Third or Last to turn TH into 3TH or -1TH.

  4. 4

    Decide whether the rule never ends, stops after a count, or stops on an UNTIL date.

  5. 5

    Check the expanded occurrence list, then copy the RRULE line or the rule together with its dates.

About the RRULE Generator and Tester

The ByteTools RRULE Generator builds the recurrence rules that calendar systems use to describe repeating events. Pick a frequency, an interval, the weekdays, days of the month, months and an ordinal such as third or last, and the RRULE line is assembled as you type — ready to paste into an .ics file, a CalDAV request or a scheduling library.

Writing the rule is only half the job; the hard part is checking that it means what you think. Every rule is expanded here by a hand-written iterator that lists the real dates it produces, so third Thursday of every month, or the last working day of the month, can be confirmed against the calendar before anything relies on it.

Switch to manual mode to paste a rule out of an existing calendar file and test it, or start from one of the preset buttons. The parser, the expander and the plain-English description all run 100% locally in your browser, so nothing you type is uploaded and internal schedules stay on your own machine.

Frequently asked questions

What is an RRULE?

An RRULE is the recurrence rule line in the iCalendar format defined by RFC 5545. It packs a repeating pattern into a single string such as FREQ=WEEKLY;INTERVAL=2;BYDAY=TU, which a calendar expands into individual occurrences instead of storing every date separately.

How do I write third Thursday of every month?

Use FREQ=MONTHLY;BYDAY=3TH — the number in front of the weekday code is the ordinal. In the builder, choose Monthly, tick Thu and set the ordinal to Third. The preview then lists the actual Thursdays so you can confirm the rule lands where you expect.

What does BYSETPOS do?

BYSETPOS filters the matches inside each period after every other part of the rule has run. FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1 first collects every weekday in the month, then keeps only the last one, which is how you express the last working day of the month.

Why does my recurrence rule produce no dates?

Usually the filters contradict each other — asking for BYMONTHDAY=31 in February, or a weekday that never falls in the months you ticked. The tool says so explicitly instead of failing silently, so widen the filters or check the start date and the expansion will reappear.

What is the difference between COUNT and UNTIL?

COUNT stops the series after a fixed number of occurrences, while UNTIL stops it at a date. A rule may use one or the other but never both at once, which is why the end options here are mutually exclusive rather than combinable.

Can I test a rule copied from my calendar?

Yes. Tick the option to type the rule yourself and paste the line; the leading RRULE: prefix is optional. The rule is parsed, described in plain English and expanded against your chosen start date, so you can see exactly which dates it hits.

Related tools