npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

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.

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.ics

Where 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-25 is Christmas, every year.
  • easter±N — N days from Orthodox Easter Sunday. easter-7 is Florii (Palm Sunday), easter+49 is Rusalii (Pentecost), easter+39 is Î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 cases

No 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:

  1. Open an issue with the name, the date, and a source.
  2. For a disagreement between sources, we'd rather add a note than 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