Building repeats without typing

Repeating events teaches the rule language. This page covers the picker, which is what most people will use and which can express nearly everything the language can.


The repeat sheet

On the event form, the When section has three modes:

Mode For
No Repeat a single date
Repeating Rules the picker (the default)
Manual Input plain English, or the rule written out

Choosing Repeating Rules opens a sheet with two lists, patterns (dates to include) and exceptions (dates to remove), plus a RULE bar showing what they've compiled to.

Watch that bar. It's the fastest way to learn the language: build something with the pickers, read what it produced.


The ten composers

Adding a pattern or an exception offers ten kinds. Each has its own small editor.

Composer Reads as Example
Every… a simple interval Every 2 weeks
Days of week named weekdays Mon, Wed & Fri
Day of month a date each month 16th · last day
Nth weekday positional 2nd Tue of the month
Date each year an anniversary Every 25 Dec
Exact date one specific day a single date
Category a named set of dates Bank holidays
Around a date shifted to a working day Workday before Christmas
Moon lunar Full moon
Week of year ISO weeks Mon of ISO week 5

The same ten are available as exceptions: "every weekday" is a pattern, "bank holidays" is the same Category composer used as an exception, and together they give you WD, !BankHolidays without typing anything.

Which to reach for

  • Something every N days/weeks/months → Every…
  • Specific weekdays → Days of week
  • "The 1st" or "the last day" → Day of month
  • "Second Tuesday" → Nth weekday
  • A birthday or anniversary → Date each year
  • Excluding holidays → Category as an exception
  • A date that must land on a working day → Around a date

Order matters

Patterns are applied first, then exceptions. The sheet keeps them in separate lists so you can't get this wrong, which you can if you hand-write a rule and put the ! first.


Limiting to certain months

The sheet has a months control that compiles to LIMIT(...). Tick January and March and the whole schedule only applies in those months.


Previewing before you commit

Open the calendar preview to see the actual dates the rule produces, month by month. Swipe between months to check the edges: the fifth Monday, February, the end of the year. Most rule mistakes are visible immediately here and invisible in the rule text.


Add / Remove Events: bending the rule for individual days

Some dates don't follow a pattern. Your Tuesday class is cancelled one week; you're covering a shift on a Sunday you don't normally work.

Add / Remove Events opens a calendar you tap directly:

  • Tap a day the event doesn't fall on → it's added
  • Tap a day it does → it's removed

Nothing is written until you press Confirm. Up to that point you're just marking days, and you can navigate between months freely; your marks are remembered.

On Confirm, each change is folded into the event's rule as a literal inclusion or exclusion. So WD becomes WD, !2025-12-25 or WD, 2025-12-28.

Why these changes are reversible

Because the changes live in the rule, they're visible and reversible. A date you removed can be tapped again to bring it back. There's no hidden pile of "modified instances" that you can never audit.

It's also how you undo a Delete this occurrence: that does exactly the same thing, adding an exclusion, so the date reappears in this screen ready to be tapped back on.

One caveat: there's no validation step when you Confirm. A rule folded here is written straight back. In normal use this screen can only produce valid rules, but nothing checks the result.


When to stop using the picker

Reach for Manual Input when you want something the composers don't cover:

  • Combining two conditions at once: 13Month__&__Fri for Friday the 13th
  • Picking out of your own events: -1__Tag(Work)__OF__MONTH for the last actual working day
  • Scoping an exception to part of a schedule with braces: {WD, !Fri}, Sun

You can also type plain English and let the app translate it. And you can always go back: the picker and the rule bar stay in step.


Next