--- title: Easter rules description: The full EASTER() syntax for Easter Sunday and the days that move with it, Western or Orthodox. order: 4 --- # Easter rules `EASTER(...)` is a rule expression you can use in a Calendite recurrence rule to schedule an event on Easter Sunday or on any of the days that move with it — Good Friday, Easter Monday, Ash Wednesday, Whit Sunday and so on. It is worked out, not looked up: no feed, no data source, and it works offline. See the [rule reference](/docs/rules-reference.html) for the surrounding syntax. Format: ```text EASTER EASTER({day}) EASTER({reckoning}) EASTER({day}, {reckoning}) ``` The two arguments can be given in either order, and each is optional. ## Supported day values Each is an offset in days from Easter Sunday: ```text CleanMonday -48 ShroveTuesday -47 AshWednesday -46 MotheringSunday -21 PalmSunday -7 MaundyThursday -3 GoodFriday -2 HolySaturday -1 Sunday 0 (the default) Monday +1 Ascension +39 Pentecost +49 WhitSunday +49 (same day as Pentecost) WhitMonday +50 TrinitySunday +56 CorpusChristi +60 ``` Names are spelled exactly as above, the same way a category member is (`BankHolidays(GoodFriday)`). `EASTER(goodfriday)` and `EASTER(Tuesday)` are rejected. Examples: ```text EASTER EASTER(GoodFriday) EASTER(Monday) EASTER(AshWednesday) EASTER(Pentecost) ``` ## Supported reckoning values ```text Western (the default, and what the UK uses) Orthodox ``` `Western` is the Gregorian calculation. `Orthodox` is the Julian calculation, shown on the ordinary calendar. Any day name works with either reckoning, since a day is only an offset, though `AshWednesday`, `ShroveTuesday`, `MotheringSunday` and `CorpusChristi` are Western observances and `CleanMonday` an Orthodox one. Examples: ```text EASTER(Orthodox) EASTER(Sunday, Orthodox) EASTER(GoodFriday, Orthodox) EASTER(Orthodox, GoodFriday) ``` ## Why it is in capitals `EASTER` is spelled like `MOON` and `WD` because the engine computes it. PascalCase `Easter` is a *category*: a named set of dates you supply, which resolves to nothing unless you have given it data. The two never collide. ## Using it with other rules `EASTER(...)` produces one date a year, so it combines with everything else: ```text !EASTER(GoodFriday) exclude Good Friday WD, !EASTER(GoodFriday), !EASTER(Monday) weekdays, minus the Easter break WD~