Date conversion, holidays, Bahire Hasab, Ge'ez numerals and headless calendar UI. One engine, published for JavaScript, Python, Dart, PHP and the command line.
npm install kenat kenat-uikenatChange a date, step through a month, pick a year. Every value on the left is computed in your browser by the same calls shown on the right.
Gregorian 2026/7/2
Ethiopian 2018/10/25
import { toEC, toGC } from 'kenat';
// 1. Convert Gregorian to Ethiopian
const ecDate = toEC(2026, 7, 2);
// Returns: { year: 2018, month: 10, day: 25 }
// 2. Convert Ethiopian to Gregorian
const gcDate = toGC(2018, 10, 25);
// Returns: { year: 2026, month: 7, day: 2 }kenat has no dependencies. It parses, converts, counts and formats Ethiopian dates the way the calendar itself does.
Convert between Ethiopian and Gregorian dates in both directions, including Pagume and leap years.
toEC() · toGC()Generate a month as rows of days with weekday headers, Ge'ez numerals, Gregorian twins and holidays attached.
new MonthGrid()Add or subtract days, months and years, compare dates and measure the distance between them on the Ethiopian calendar.
addDays() · diffInDays()Write any number in Ge'ez script and read it back, so dates look the way Ethiopian readers expect.
toGeez() · toArabic()Compute the movable fasts and feasts of any year — Nineveh, Lent, Fasika — from the traditional reckoning.
getBahireHasab(year)Fixed and movable holidays with tags such as PUBLIC and RELIGIOUS, in Amharic or English.
getHolidaysForYear()kenat-ui is headless: React hooks for date pickers, month grids, clocks and converters that manage state and leave every pixel to you — Tailwind, CSS modules or your own design system.
useDatePicker()useMonthGrid()useEthiopianClock()useDateConverter()useTimeConverter()import { useMonthGrid } from 'kenat-ui'
const { grid, controls } = useMonthGrid({
weekdayLang: 'amharic',
weekStart: 1,
})
// grid.headers, grid.days — render them
// with your own markup and styles.
controls.goNext()The same conversion rules and holiday tables, kept in parity across every language Kenat ships for.
The guide walks through installation, conversion, formatting, holidays and Bahire Hasab, with an API reference for every call.