Skip to content
cronpad
Schedules / RRULE and one-off schedules

RRULE and one-off schedules

An RRULE is the recurrence format from the iCalendar standard (RFC 5545), used by calendar apps. It’s the most expressive format cronpad supports, and every natural-language schedule is stored as one. A one-off schedule fires exactly once and then marks the job completed.

RRULE

Write the rule without the RRULE: prefix. The start (DTSTART) is the job’s starts_at, or its creation time, in the job’s timezone.

RuleFires
FREQ=DAILY;BYHOUR=9;BYMINUTE=0;BYSECOND=009:00 every day
FREQ=WEEKLY;BYDAY=MO,WE,FR;BYHOUR=7;BYMINUTE=3007:30 Monday, Wednesday, Friday
FREQ=WEEKLY;INTERVAL=2;BYDAY=FR;BYHOUR=1212:00 every other Friday
FREQ=MONTHLY;BYDAY=2TU;BYHOUR=9;BYMINUTE=009:00 on the second Tuesday
FREQ=MONTHLY;BYDAY=-1FR;BYHOUR=17;BYMINUTE=017:00 on the last Friday
FREQ=MONTHLY;BYMONTHDAY=-1;BYHOUR=23;BYMINUTE=5923:59 on the last day of the month
FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1The last weekday of the month
FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13Every Friday the 13th
FREQ=YEARLY;BYMONTH=3;BYMONTHDAY=31;BYHOUR=1010:00 every 31 March
FREQ=HOURLY;BYHOUR=9,10,11,12,13,14,15,16,17;BYDAY=MO,TU,WE,TH,FRHourly 09:00–17:00 on weekdays
FREQ=DAILY;COUNT=10Daily, 10 times
FREQ=DAILY;UNTIL=20270101T000000ZDaily until 1 January 2027

Supported parts: FREQ (SECONDLY to YEARLY), INTERVAL, COUNT, UNTIL, BYSECOND, BYMINUTE, BYHOUR, BYDAY, BYMONTHDAY, BYYEARDAY, BYWEEKNO, BYMONTH, BYSETPOS, WKST.

FREQ is required. Expressions are limited to 4096 UTF-8 bytes, INTERVAL to 1,000,000, and COUNT to 100,000. RRULE COUNT includes DTSTART when it matches; querying strictly after that instant omits that already-counted occurrence. A monthly rule requesting the 31st skips months without a 31st, and a yearly February 29 rule skips non-leap years, including century years such as 2100.

One-off

Use an RFC 3339 timestamp, or natural language:

ScheduleFires once at
2026-12-25T07:00:00+05:30That exact instant
in 20 minutes20 minutes after the job is saved
tomorrow at 8am08:00 tomorrow in the job’s timezone
at 2026-12-25 07:00That wall-clock time in the job’s timezone

A one-off time in the past is rejected when you save the job. After it fires (including retries), the job’s state becomes completed; its run stays in history.