Two computus algorithms, a thirteen-day offset that refuses to run outside the years it was calibrated for, and one feast derived by subtraction so it can never drift out of step.
Almost every other feast in a Christian year sits on a fixed calendar day. Easter does not. It is defined by a rule that combines a solar cycle and a lunar one, and the rule has to be evaluated year by year. That is why an app can either compute it or store a table of it, and storing a table is how a calendar quietly becomes wrong four years after nobody is maintaining it any more.
ZindSa computes it. There is no list of Easter dates anywhere in the app, and there is no server to ask. The whole thing is arithmetic that runs on your phone from one input: the year.
Western Easter, the date kept by the Roman Catholic church and most Protestant churches, is computed with the Anonymous Gregorian algorithm, the one usually published as Meeus–Butcher. Orthodox Easter is computed with the Julian-calendar variant given in Meeus's Astronomical Algorithms, chapter 8, and the result is then converted into a proleptic Gregorian date so it can be shown on the same calendar grid as everything else.
The two are not a preference setting buried in Advanced. Which one you see follows the denomination you choose right after you choose your dharma, Catholic, Protestant or Orthodox, and you can change it later in Settings. Both dates are computed by the same app on the same device; nothing is downloaded and nothing is hidden from either group.
Converting a Julian date to a Gregorian one needs an offset, and that offset is not a constant of nature, it grows by roughly a day a century. For the twentieth and twenty-first centuries it is thirteen days, and thirteen days is what the app uses.
The interesting part is what happens outside those two centuries. The conversion does not extrapolate and it does not silently keep using thirteen. It throws, with a message naming the year it was handed, because the offset was calibrated for 1900 to 2099 and nothing in this project has verified it beyond that. A calendar that quietly produces a wrong answer for the year 2150 is worse than one that refuses, and refusing is what it does.
The same offset and the same guard are used for the one Julian fixed feast the app carries: the Nativity kept on the Julian calendar's own Christmas Day, which lands in the first week of January once converted. That date is computed from the Julian date and the offset, not typed in.
Good Friday is Easter minus two days. It is expressed exactly that way in the code, as an offset from whichever Easter your denomination uses, so a Western profile gets a Western Good Friday and an Orthodox profile an Orthodox one, and neither can ever drift out of step with its own Easter. There is no separate table of Good Friday dates, and the app's own provenance note for the event says so in as many words.
That is the whole point of deriving a date rather than storing it. Two stored tables can disagree. A date and its offset cannot.
The app tells you this on the screen where you choose, and it is worth quoting rather than paraphrasing: your answer sets which Easter date ZindSa computes for you, and which feasts appear at all, the Assumption of Mary and All Souls' Day are shown only to Roman Catholic profiles, the four-Sunday Advent only to Western ones, and the Julian Nativity only to Orthodox ones. It does not yet change the texts, prayers or guidance you are shown; those are the same for every denomination.
All Saints is deliberately not scoped. It is kept across all three streams, and narrowing it to one of them would have been a decision without a source behind it. The code says that in a comment rather than leaving it as an accident.
Advent is derived too, the fourth Sunday before Christmas, by the Roman liturgical rule, computed rather than looked up.
Ten Christian events ship. Ash Wednesday, Palm Sunday, Ascension, Pentecost and the span of Lent are not among them. Their offsets from Easter are written down in the code, forty-six days before, seven before, thirty-nine after, forty-nine after, and no event uses them yet. The arithmetic is trivial; the reason they are absent is that nobody has added them, and this page would rather say that than let you find out in April.
The Orthodox Nativity Fast is absent for a stronger reason, and the code states it: its date does not fall out of any calculation in this project, and hand-typing a liturgical date is precisely the thing this repo's discipline exists to prevent. It is recorded as a gap for a reviewer rather than filled in from memory.
And the app does not adjudicate between the Julian and the Revised Julian jurisdictions, which are genuinely divided among the Eastern churches. It computes the Julian reckoning and labels it. Which one is yours is a question left open for a named reviewer, and no such reviewer has looked at any of this.
Each of the two Easter events carries a provenance note that names its algorithm and lists published Easter dates the implementation was checked against, three for the Western computus and three for the Orthodox one, the same three that justify the thirteen-day offset. Those notes are visible in the app beside the event, not buried in a repository.
That is verification against a published convention, which is the standard this project holds itself to. It is not a review. No named scholar and no religious body has reviewed ZindSa's content, and computing a date correctly is not the same thing as being told by anyone that it is the right date to compute.
Related: how ZindSa works out when Easter is in the FAQ, and what ZindSa does not do for your dharma. All posts.