RRULE builder and explainer

Build a recurrence rule from a form, or paste one such as FREQ=WEEKLY;INTERVAL=2;BYDAY=TU to read it back. Either way you get the RFC 5545 RRULE, the rule in plain English ("Every 2 weeks on Tue") and the next 10 dates it falls on. It covers daily, weekly and monthly rules with an interval, chosen weekdays, a day of the month, and an end date (UNTIL) or count (COUNT); parts it cannot schedule, such as BYSETPOS or YEARLY, are named in an error instead of being silently ignored.

Monthly on the 31st, until Dec 31, 2027

RRULE
FREQ=MONTHLY;BYMONTHDAY=31;UNTIL=20271231
In plain English
Monthly on the 31st, until Dec 31, 2027
First day it may fall on
Friday, January 1, 2027 (UTC)
Next 10 dates
Notes
  • In a month with no day 31, GetItDone uses the last day of that month. A strict RFC 5545 reader skips those months instead.

How to build an RRULE

  1. Choose how often it repeats. Pick Daily, Weekly or Monthly, and how many of them between repeats: 2 with Weekly is every other week.
  2. Choose the days. For a weekly rule tick the weekdays; for a monthly rule enter the day of the month.
  3. Choose when it ends. Never, on a last day (UNTIL), or after a number of times (COUNT).
  4. Copy the RRULE. Check the plain-English sentence and the next 10 dates, then copy the RRULE line into your calendar file or code.

Have a rule already? Switch to Explain a rule and paste it to read it back in plain English.

Cron vs RRULE

Both describe a repeating schedule, for different readers: cron tells a machine when to run a job, an RRULE tells a calendar which days a series falls on.

 cronRRULE
Written forA scheduler running jobs on a server clockCalendars and task managers listing the days a series falls on
Starts fromNo start date: it matches the clock from now onDTSTART, the first day the series may fall on
Every other weekNot expressible in the five fieldsFREQ=WEEKLY;INTERVAL=2
StopsNever, until the line is removedOn a date (UNTIL) or after a number of times (COUNT)
Every weekday0 9 * * 1-5 (09:00 Monday to Friday)FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR
StandardPOSIX crontabRFC 5545 (iCalendar)

Run it from code, no key needed

The same result as JSON, or as Markdown when you send Accept: text/markdown. Free and rate limited per IP address. Full reference in the free tools API docs.

curl 'https://nowgetitdone.com/api/tools/rrule-explainer?rrule=FREQ%3DWEEKLY%3BINTERVAL%3D2%3BBYDAY%3DTU&tz=Europe/London'

Questions

What is an RRULE?
A recurrence rule from RFC 5545, the iCalendar standard. FREQ=WEEKLY;BYDAY=MO,WE means "every week on Monday and Wednesday". Calendar apps, CalDAV servers and task managers use it to store a repeating schedule as one line of text.
Which rules can it build and explain?
DAILY, WEEKLY and MONTHLY rules with INTERVAL, plain BYDAY weekdays, one BYMONTHDAY, UNTIL or COUNT, and WKST, with an optional DTSTART line when you paste one. Anything else (YEARLY, HOURLY, BYSETPOS, BYMONTH, "1MO"-style positions, EXDATE) is refused by name, because GetItDone tasks cannot store those and you should never get dates for a rule it only half read.
Why might the dates differ from my calendar app?
Three places where readings differ. GetItDone schedules whole days, so a time in DTSTART or UNTIL is dropped. A monthly rule on the 29th to 31st moves to the last day of a short month, where strict RFC 5545 skips the month. And weeks are counted from Sunday, which matters only for week-skipping rules that list Sunday beside another day: for those the builder adds WKST=SU so every RFC 5545 reader agrees with the dates shown.
What is the difference between cron and RRULE?
Cron schedules a job at clock times on matching minutes, hours, days of the month, months and weekdays, with no start date, no end and no way to say "every other week". An RRULE describes a calendar series from a start date: it can repeat every N days, weeks or months, and stop on a date (UNTIL) or after a number of times (COUNT).
How do I use the RRULE in a calendar file?
Put it on an RRULE: line under the event’s DTSTART, for example DTSTART;VALUE=DATE:20261102 followed by RRULE:FREQ=WEEKLY;BYDAY=MO. The DTSTART is the first day the series may fall on.
Is there an API for the RRULE explainer?
Yes. GET /api/tools/rrule-explainer?rrule=…&tz=… needs no key and returns JSON (or Markdown with Accept: text/markdown), rate limited per IP address, with RFC 9457 problem+json errors.

The same parser runs in the GetItDone task box, where your team and its AI agents share one board of tasks. Try GetItDone free

More free tools

  • Eisenhower matrix — Sort your tasks into Do first, Schedule, Delegate and Drop. Drag them between quadrants, then copy, download or print the list. Free, no sign-up.
  • Pomodoro timer — A free pomodoro timer: 25-minute focus sessions, 5-minute breaks and a longer break every fourth session. Adjustable, with no ads and no sign-up.
  • Printable daily planner — Make a printable daily planner: pick the date and your hours, add your top 3, and print it or save it as a PDF. Free, no sign-up, no watermark.
  • Weekly review template — A weekly review template in four steps: look back, clear, look ahead and choose next week’s top 3. Fill it in here, then copy, download or print it.
  • Natural language date parser — Turn "call the bank tomorrow" or "review the report every Friday" into a due date, a start date and an RFC 5545 RRULE. Free, no sign-up, with a JSON API.
  • Screenshot to tasks — Paste a screenshot or a photo of a list and GetItDone proposes one task per action, dated as written. You approve each one. Try it free as a guest.

Read this page as Markdown — plain text for AI agents and answer engines. The whole site is indexed at /llms.txt.

We use analytics cookies to understand how GetItDone is used. Nothing is collected unless you accept. What we collect