The frame is the ordinary Gregorian year. Two different kinds of festival are laid over it.
Roman festivals sit on fixed days, on the same numbered day as in the Republican and Julian fasti: the Parilia on 21 April, the Saturnalia opening on 17 December. Each day also carries its inscriptional form — a.d. XI Kal. Sept. — counted from the Kalends, Nones and Ides of the Gregorian month. A handful of Roman feasts were feriae conceptivae, announced each year by a magistrate rather than fixed: the Compitalia, the Sementivae, the Ludi. These are placed on their conventional modern dates and flagged as set by convention.
Every Greek city ran a lunar month against a solar year. A month begins at the noumenia, the first sighting of the new crescent, and runs 29 or 30 days until the next. The year begins with the first new moon after a fixed solar point — the summer solstice at Athens, the autumn equinox in Macedon, the winter solstice in Boeotia. Because twelve lunations fall about eleven days short of the solar year, roughly every third year carries a thirteenth month; this page inserts it as a doubled month (a Second Poseideon at Athens) and does not repeat that month's festivals.
New moons and solstices are computed from the periodic series in Meeus, Astronomical Algorithms. Checked against two independent ephemerides (Astronomy Engine and PyEphem), every new moon from 2024 to 2029 falls within one minute of theirs, and the solstice within a few seconds.
The Greek day ran from sunset to sunset, and this page labels each Greek day by the civil date of its daylight. After sunset the next Greek day has already begun; the line at the top of the page says so when that has happened at Athens. All months are reckoned for Athens.
The first day of the month depends on a rule, and ancient practice was not uniform, so the rule can be chosen under Display:
The moon-phase marks follow the usual convention: a new moon, first quarter, full moon or last quarter is named only on the one day, in your own time zone, that contains its exact moment; the days between carry the intermediate names. The lit fraction is the true value at your local noon. Sun and moon positions are from Meeus chapters 25 and 47, good to about a hundredth of a degree.
Every day of the Republican and early Imperial calendar carried a letter fixing what could lawfully be done on it. These letters govern legal and public business, not manual labour: on a dies nefastus the courts were shut, but the fields were worked and the shops were open. Only the feriae, marked NP, actually set work aside.
| F | dies fastus — court day. Legal business may be initiated; the praetor may speak the three words do, dico, addico. Work unrestricted. |
|---|---|
| C | dies comitialis — assembly day. The people may be convened to vote, and the courts may also sit. The commonest letter in the year. Work unrestricted. |
| N | dies nefastus — no legal or public business: the courts are shut and the assemblies may not vote. Not a rest day. This is the term most often misread as forbidding work. |
| NP | dies festus, a day of feriae publicae — a public holiday. Work is set aside except what necessity requires. The expansion of NP is still disputed; the days it marks are not. These are the only days on which Roman religion restricted labour. |
| EN | dies endotercisus (archaic for intercisus, “cut in half”) — nefastus in the morning while the victim is prepared, and again in the evening while it is offered, but fastus in the middle of the day. Eight days in the year. |
| QRCF | quando rex comitiavit fas — lawful once the rex sacrorum has called the assembly. Two days only: 24 March and 24 May. |
| QSDF | quando stercus delatum fas — lawful once the sweepings have been carried out of the Temple of Vesta. One day only: 15 June (Varro, LL 6.32). |
| — | No traditional letter: a day added to its month by the Julian reform of 46 BC. Three such days fall in the year (30 and 31 January, 30 November). |
Some days carry the further note dies religiosus, on which nothing new was to be begun. The rule for what remained lawful on the feriae is Scaevola's: quod praetermissum noceret, whatever would do harm if left undone — haul the ox from the pit, prop the falling house (Macrobius, Saturnalia 1.16.11). Umbro allowed work ad urgentem vitae utilitatem, for the pressing needs of life (1.16.10), and Vergil (Georgics 1.268–275) and Columella (2.21) list the farm work that stays lawful: divert a stream, fence a crop, trap birds, burn brambles, dip sheep.
Source. The letters follow H. H. Scullard, Festivals and Ceremonies of the Roman Republic (1981), tabulated month by month, and ultimately Degrassi, Inscriptiones Italiae XIII.2. Across the year they fall out as 201 C, 58 N, 50 NP, 42 F, 8 EN, 2 QRCF, 1 QSDF and 3 unlettered — so N and NP together bar public business on 108 days, the figure usually quoted for the Republican year.
The letter and the wedding verdict answer different questions. The letter says what could lawfully be done on the day — whether the courts sat, and whether work was set aside. The suitability verdict says whether the day was a good one to marry, and that rests on a different body of evidence: Ovid and Plutarch on the Kalends, Nones and Ides, on the whole of May, on early June and on the Parentalia; Ovid again (Fasti 3.393–398) on the days the Salii carried the sacred shields. So the two readings diverge by design. A C day — courts open, work unrestricted — can still be a poor day for a wedding, and the Kalends are the clearest case: lawful for business, inauspicious for marriage. Every NP day, by contrast, bars a wedding, since on the feriae a virgin was not to marry (Macrobius, Saturnalia 1.15.21).
The marriage check is Roman only. No Greek source forbids a wedding on a festival day, so Greek festivals are listed in the checker as observed but never count against a date. Greek custom expressed preferences rather than prohibitions: Athenians favoured the winter month Gamelion, named for weddings (Aristotle, Politics 1335a36–38); Hesiod advises bringing a bride home on the fourth of the month (Works and Days 800); and Euripides has a wedding set for the full moon (Iphigenia at Aulis 716–717).
Athens had no such system. Greek festival days closed the courts and the Assembly, but no Athenian text forbids a potter or a farmer to work on them, so no Greek day is marked here as a day of rest.
The Olympia, the Pythia, the Isthmia, the Nemea and a number of others ran on cycles of two, four, five, seven, eight, sixty or a hundred and ten years. They appear only in the years they are due, and the day panel says so. The cycles are pinned to the modern convention that the Olympic year is divisible by four; if your tradition counts the Olympiads differently, change the anchor year in the entry rather than the interval.
One consequence of the summer year-start is worth spelling out, because it looks like an error and is not. A Greek year runs from one solstice or equinox to the next, so the second year of an Olympiad begins in the summer after the Olympia and ends the following summer. A festival in the autumn of that year therefore falls in the modern year of the games themselves, and one in the spring of it falls in the modern year after. The Isthmia and the Nemea both belong to the second and fourth Olympiad years, but the Nemea are a summer festival and the Isthmia a spring one, so they land in alternate modern years: Nemea in 2025 and 2027, Isthmia in 2026 and 2028. The old sequence still reads straight through — Olympia August 2024, Nemea July 2025, Isthmia spring 2026, Pythia August 2026, Nemea July 2027, Isthmia spring 2028, Olympia August 2028 — with the athlete never idle for a whole year.
Where a lesser celebration is swallowed by a greater one on the same cycle, the lesser entry
carries unless and steps aside in those years: the Lesser Panathenaia yields to the
Greater every fourth Hekatombaion, and the Little Daidala to the Great.
A tradition marked medium has a well-attested month list whose order or year-start is reconstructed. low means the month order itself is conjectural; individual festival days in these systems are usually modern conventions placed in the right season. placeholder means the month names have not been entered at all and the system is scaffolding awaiting the epigraphic list. Where only the month or the season of a festival is known, the entry is marked day fixed by convention in the day panel, and those entries can be hidden entirely.
The point of the flags is that this calendar should never quietly present a guess as a fact. Where the evidence is thin, celebrate in the right season and say so.
Nothing on this page is a lookup table. Moon phases, month lengths, intercalation and every Greek festival date are computed in the browser, so there is no annual data file to fetch and no yearly update to publish. The calendar already runs to December 3000. Type a year into the box beside the month arrows to go there.
Near the top of the script block:
var CFG = {
yearStart: 2026, /* first navigable year */
yearEnd: 3000, /* last navigable year */
Holding a thousand years of nineteen lunar calendars in memory at once would cost hundreds of
megabytes, so the page computes a three-year window around whatever you are looking at and
rebuilds it — in a few milliseconds — when you walk off the edge. Widening
yearEnd therefore costs nothing at load time. The underlying algorithms are
published for roughly 1000–3000 CE; beyond that the periodic series drift and the
precession terms in the season calculation stop being trustworthy, which is why the ceiling
sits where it does.
One caveat worth stating plainly: this is astronomy, not history. A date in 2400 is a correct prediction of where the new moon will fall, not a claim that anyone will be keeping the Karneia then.
Before publishing a new range, check three or four new moon dates against an ephemeris (the US Naval Observatory or HM Nautical Almanac both publish tables). Open a day that is marked as a new lunar month and confirm the conjunction falls where you expect. An error here would shift a whole system's year, not a single day.
Open the day panel on any date and each enabled system reports its month as
Hekatombaion 12 — month 1 of 12. In an intercalary year it will read
month 7 of 13 and the doubled month is named. Confirm that the doubled month falls
where your tradition expects it. The insertion point is the interc field on each
system, a zero-based index into its month list — 5 doubles the sixth month.
Roman entries live in the ROMAN array and use the Gregorian month and day:
{ m:4, d:21, n:'Parilia', g:['pales'], span:1,
note:'Text shown in the day panel.' }
Greek entries live in the fest array of their system and use the lunar month
number and the day within it:
{ mi:1, d:12, n:'Kronia', g:['saturn'], span:1,
approx:false, note:'...' }
Add cycle:[4,2028] to a festival that is not annual: the first number is the
interval in years, the second is any year in which it falls. The engine tests the year in which
that lunar year began, so a festival in a month that lands in January still belongs to the
previous anchor year — which is also why a spring entry on an Olympiad cycle surfaces in the
modern year after the one you anchored it to. Check a new cycle by stepping through four or five
due years rather than trusting the arithmetic in your head.
unless:[4,2026] is the inverse and can be used with or without
cycle: the entry is suppressed in every year the interval matches. Use it for an
annual rite that a penteteric one replaces, so the two never print on the same day. Both keys
work in the ROMAN array as well, where they test the Gregorian year directly — the
Ludi Saeculares and the Ludi Taurei are carried that way.
last:true pins an entry to the closing day of its lunar month instead of to a
fixed number. Athens dropped the twenty-ninth in a hollow month and kept the thirtieth as the
last day, so a festival of the hene kai nea — the Chalkeia, the Diisoteria — would otherwise
vanish in every hollow month; with the flag it moves to day 29 in those years and the day panel
reports the real number.
mi is the position in that system's months list, counting from 1.
d is the day of the lunar month, where 1 is the noumenia. Set
approx:true whenever you are placing a festival by season rather than by
attestation — that is what keeps the flag honest. Every key in g must exist in
DEITIES, or the god filter will not find it; add new gods there first.
The two Opuntian Locrian systems ship as numbered scaffolding. Replace the twelve strings in
months with the epigraphic names, set conf to 'low' or
'medium', rewrite src to say what the reconstruction rests on, and
add festivals. Until then they are best left switched off.
The page is a single file with no dependencies. Commit it as index.html in the
repository or in a /docs folder, enable Pages for that branch, and it is live.
Because everything is computed, an old cached copy is still correct for its own range —
readers only need to reload to see a corrected one.
The Roman entries follow the surviving fasti and Ovid's Fasti, which covers January to June in detail and leaves the second half of the year to the calendar inscriptions, Varro, Festus and Macrobius. Where Ovid gives a story for a day, the note here summarises it in a sentence; the poem itself is worth reading beside the calendar rather than through it.
The Athenian festival year is the best documented in the Greek world and its entries can be trusted to the day. Delos is nearly as good for the frame — the hieropoioi's accounts fix the month names, their order and the midwinter year-start — though the day within the month is usually lost. Delphi, Macedon, Rhodes, Thessaly, Boeotia, Miletos, Kos and Epidauros have solid month lists and festival evidence. Sparta, Argos, Elis, Crete, Aetolia, Corinth and the Sicilian cities are reconstructions: the festivals are real and their seasons are known, but the day within the month is usually a modern choice. Ozolian Locris genuinely numbered its months rather than naming them.
Where a rite was restricted in antiquity — the Thesmophoria and the Bona Dea to women, the Mysteries to initiates — the entry records that restriction as a matter of history. What a modern group does with it is a decision for the group, not for a calendar.
A system can look almost empty in a given year without being broken: Elis holds little but the Olympia and its attendant rites, and those fall only every fourth year. Step forward a year or two and it fills.
Nothing is entered here on the strength of a month name alone. A month called Bouphonion is not evidence for a Bouphonia, and a month called Eleusinios is not evidence for an Eleusinia: month names outlived the rites that produced them and travelled between cities that never kept those rites. Every entry rests on an ancient text or an inscription that names the festival, and several plausible-looking candidates have been left out for want of one.
Whether a festival existed and when it fell are two questions, and the second is far more often lost. This calendar answers the second only where a source does. A festival is drawn on a day only if the day is attested or argued from evidence; where the source gives the month and no more, the entry appears in the band below the calendar, against the whole span of that lunar month. It is never nudged onto a plausible-looking day, or onto the god's day of the month, or onto a neighbouring festival.
The same holds for years. A festival on a cycle is shown in particular years only where the ancient count can be picked up and carried forward — the Olympiad games and everything pinned to them, the Delia from its restoration in 426 BCE, the saeculum from 204 CE, the lustrum from 74 CE. Where the interval is attested but no celebration can be counted from, the festival is not assigned to years at all; it is listed under Attested, but not placeable, together with those whose month is unknown. Roman feriae conceptivae — the Compitalia, the Sementivae, the Feriae Latinae, the Ambarvalia — were announced by a magistrate and had no fixed day in antiquity either, so they sit in the band with the rest.
Two kinds of interval need naming separately. Some are secure and tied to a known year — the Olympiad cycle and everything pinned to it, and the Roman saeculum as the Augustan and Severan celebrations reckoned it. Others preserve only the interval: the Ptoia, the Halieia, the Brauronia, the Septeria and the Ludi Taurei are all attested as recurring at a stated number of years, with nothing surviving to say which years those were. Their anchors here are modern choices, marked day fixed by convention, and moving one by a year or two is a change of convention rather than a correction of fact.
Corrections are welcome. A festival moved by good evidence is worth more than a full page.
Calendar-Fasti · The Virtuous Path to Elysium · computed in the browser · no external resources