Colony Log · Tau Ceti System
The dates below were not rendered because they didn't parse against the nine-month structure. Everything else on the calendar is unaffected.
ithaca-important-dates.csv is fetched at runtime, so opening calendar.html directly as a file:// URL will usually be blocked by the browser's fetch security rules. Serve the folder instead, e.g.:
python3 -m http.server 8000 # then open http://localhost:8000/calendar.html
If the CSV can't be fetched, the calendar still renders — you'll just see a load-error notice in the status row instead of the CSV-driven dates.
Each row is title,date,mode. date is MM/DD/Y using the month numbers below (September is month 07, not 09 — there's no calendar-month gap even though the name skips ahead).
01 Primus 02 Secundus 03 Tertius 04 Quartus 05 Quintus 06 Sextus 07 September 08 October 09 November
One-time event: no asterisk in the title. Shown only on its exact date.
Athens convoy arrives,07/21/104,
Recurring event: put an asterisk directly before the word you want ordinal-numbered. The asterisk itself is stripped from the display.
Odysseus' *Birthday,07/10/02,elapsed
Quoted fields with commas inside them are supported: "Founding, Remembered",06/03/01,
Both only apply to starred (recurring) rows, and both leave the title plain — no ordinal — on the source date itself.
Sol length, year length, weekday math, seasons, and holiday ranges are exact by manuscript pin — no rounding. Earth date/time is exact arithmetic from the Landfall anchor, but it's a derived figure rather than manuscript prose, so it's styled in the brass/data typeface to mark it as computed. The moon phase icon uses a pinned 22-sol civil convention, not the moon's true ~21.1-sol period — close enough for a calendar icon, not for orbital mechanics.
Note on the worked example in the original spec ("New Year's Day, 2419 falls on October 21, Ithaca Year 1"): running the §3/§5 formulas as written, the first Earth January 1 crossing in Year 1 actually lands on November 1, not October 21. This app computes the crossing live from the formula rather than hard-coding either date, so it will always agree with whatever the formula says — but the discrepancy is worth checking against the manuscript's intended anchor.