zile-onomastice
v1.0.1
Published
Romanian name days and holidays (zile onomastice și sărbători românești) as open data. Movable feasts computed from the Orthodox computus, not hardcoded. Zero dependencies.
Maintainers
Readme
Zile onomastice și sărbători românești — open data
Romanian name days and holidays, as machine-readable open data. 86 names · 35 occasions · movable feasts computed, not hardcoded · CC BY 4.0
Romanians celebrate ziua onomastică — the day of the saint whose name you bear — often more than their birthday. The data behind that tradition has never been published in a form a program can read. Every Romanian calendar online is an HTML page built for humans. This repository is the JSON.
Maintained by trends.ro, which publishes the same calendar for readers.
Quick start
# JSON, CSV and .ics — no install, no build
curl -O https://raw.githubusercontent.com/rlucian/romanian-name-days/main/data/nameday.json// npm
import { nameDay, whoCelebratesOn, orthodoxEaster } from 'zile-onomastice';
nameDay('Maria'); // { date: '08-15', movable: false, … }
whoCelebratesOn('2027-05-02'); // Easter 2027 — Paște, plus movable name days
orthodoxEaster(2027); // { month: 5, day: 2 }Subscribe in Google Calendar or Apple Calendar:
webcal://raw.githubusercontent.com/rlucian/romanian-name-days/main/data/onomastici.icsWhere to get it
| Channel | |
|---|---|
| GitHub (canonical) | this repository — JSON, CSV, .ics, and the build that produces them |
| npm | zile-onomastice — typed, zero dependencies |
| Hugging Face | radool/romanian-name-days — for datasets and ML pipelines |
All three carry the same data. This repository is the source of truth; the other two are published from it.
What's in here
| File | Rows | What it is |
|---|---|---|
| data/nameday.json | 86 | Canonical. Names, their date rule, gender, diminutives, confidence |
| data/holidays.json | 35 | Canonical. Holidays, name-day feasts and life events |
| data/nameday.csv · data/holidays.csv | — | The same, flattened for spreadsheets and pandas |
| data/calendar-YYYY.json | 2026–2035 | Every rule resolved to a concrete date for that year |
| data/onomastici.ics | — | Subscribable calendar of name days |
| data/sarbatori.ics | — | Subscribable calendar of holidays |
| data/calendar-complet.ics | — | Both together |
Everything except the two canonical JSON files is generated by build.mjs.
Name records
{
"name": "Maria",
"slug": "maria",
"namedayRule": "08-15",
"gender": "f",
"diminutives": ["Mărioara", "Mia", "Maricica", "Măriuța"],
"confidence": "established"
}| Field | Notes |
|---|---|
| name | Romanian given name, correctly diacriticked |
| slug | ASCII, URL-safe, stable — use this as the key |
| namedayRule | MM-DD or easter±N — see Date grammar |
| gender | m, f, u (46 m / 40 f) |
| diminutives | 127 in total — the forms people are actually called |
| confidence | See Confidence |
| note | Present whenever confidence is not established |
Occasion records
{ "slug": "florii", "title": "Florii", "kind": "holiday", "dateRule": "easter-7" }kind is holiday (15), nameday (17 — major saints' feasts that carry
several names) or life-event (3). Life events — birthdays, weddings,
condolences — have dateRule: null by definition: they matter to a person, not
to a date.
Date grammar
Two rule forms cover the whole calendar:
MM-DD— a fixed Gregorian date.12-25is Christmas, every year.easter±N— N days from Orthodox Easter Sunday.easter-7is Florii (Palm Sunday),easter+49is Rusalii (Pentecost),easter+39is Înălțarea Domnului.
Five holidays and four name days are movable. Florentina, Florin, Viorel and Viorica celebrate on Florii, which moves by more than a month across years. Calendars that publish these as fixed dates are wrong in most years, and this is the most common error in Romanian calendar data.
Orthodox Easter is computed
easter.mjs implements the Julian computus and converts to the Gregorian
calendar. It is a standalone, dependency-free module you can lift out and use
on its own.
The Julian→Gregorian offset is computed as century - floor(century / 4) - 2,
not hardcoded to 13 days. Thirteen is correct only for 1900–2099; sources
that hardcode it produce silently wrong dates from 2100 on. The test suite
asserts the published Easter dates for 2020–2030 and that Easter lands on a
Sunday for every year from 1800 to 2200.
Confidence, and why it exists
Romanian name-day attribution is not uniformly settled, and sources disagree with each other. Most published calendars hide this by picking one date silently. This dataset says so instead:
| Value | Count | Meaning |
|---|---|---|
| established | 63 | Direct, well-attested saint's feast |
| convention | 21 | Attached to a root name by Romanian practice, not an independently attested saint — e.g. Adriana → Sf. Adrian și Natalia |
| approximate | 1 | The real feast doesn't fit the date grammar — e.g. David, whose feast is the movable "Sunday after Nativity" |
| single-source | 1 | Found in only one source; wants independent confirmation |
Every non-established record carries a note explaining the specific
reasoning. That is enforced in the build — a caveat without an explanation
fails CI, because a flag you can't interpret is worse than no flag.
If you need certainty, filter on confidence === "established". That is
the point of the field.
Reproducing this
node build.mjs --from 2026 --to 2035 # regenerate everything derived
node --test test.mjs # 10 test casesNo dependencies. Builds are byte-reproducible — DTSTAMP is fixed rather than
"now", so rebuilding unchanged data produces identical files and a real change
shows as a real diff. A dataset nobody can rebuild is a dataset nobody should
trust.
Provenance
Name-day and feast dates follow the calendar of the Romanian Orthodox Church
(calendar.patriarhia.ro), which is the
authority for the underlying feasts. Attribution of given names to those feasts
— including the diminutives, the gender field and the convention judgements —
is editorial work done for trends.ro, cross-checked against
Romanian calendar sources, with disagreements recorded in note rather than
resolved silently.
Dates are Gregorian, matching Romanian civil usage.
Licence
CC BY 4.0 — use it commercially, modify it, redistribute it. Keep the attribution.
Source: trends.ro — Zile onomastice și sărbători românești, CC BY 4.0
Calendar dates are facts and are not copyrightable in most jurisdictions; the licence covers the compilation, the editorial attributions and the notes. Where an EU sui generis database right subsists, it is licensed on the same terms.
For AI and ML use: this dataset is deliberately open — training, fine-tuning, retrieval and evaluation are all permitted under CC BY. Attribution is the only condition. Note that this covers this repository only; the poems on trends.ro are separately licensed community work and are excluded.
NOTICE.md spells all of that out, and
CITATION.cff is the formal citation.
Contributing
Corrections are the most valuable contribution here. If you know a name day we have wrong, or one we're missing:
- Open an issue with the name, the date, and a source.
- For a disagreement between sources, we'd rather add a
notethan pick a winner. Say what each source claims.
Edit data/nameday.json or data/holidays.json only — everything else is
generated. Run node build.mjs && node --test test.mjs before opening a PR.
What this is not
This is the calendar, not the content. It has no poems, no greetings and no prose. Those live on trends.ro, where the calendar is paired with a poetry archive, and they are not open data — community-authored texts stay under their authors' rights.
See also
- trends.ro — the calendar for human readers
- trends.ro/onomastica — a page per name
- calendar.patriarhia.ro — the official Romanian Orthodox calendar
