Feature-Rich
Dual Calendar Support
TypeScript Ready

Et-Calendar

The most feature-rich React library for Ethiopian and Gregorian calendars. Build applications with dual calendar support, beautiful components, and powerful utilities.

Install via npm
npm install et-calendar

Powerful Features

Everything you need to build applications with Ethiopian and Gregorian calendar support.

Dual Calendar Support

Seamlessly work with both Ethiopian and Gregorian calendars in a single interface.

DateTime Components

Complete date and time selection with customizable formats and time zones.

TypeScript Ready

Full TypeScript support with comprehensive type definitions for better development experience.

Fully Customizable

Style with Tailwind CSS or standard CSS. Complete control over appearance and behavior.

Localization Support

Built-in support for Amharic and English with extensible localization system.

Performance Optimized

Lightweight, fast, and optimized for production applications with minimal bundle size.

Quick Installation

Get started with Et-Calendar in seconds. Choose your preferred package manager.

Terminal
npm install et-calendar

Quick Start Guide

Get up and running with Et-Calendar in minutes. Here are the most common use cases.

import React, { useState } from "react";
import { EthiopianDate } from "et-calendar/lib";
import { DatePicker } from "et-calendar";

const App = () => {
  const [date, setDate] = useState<Date>(() => new Date());
  const [ethDate, setEthDate] = useState(() => 
    EthiopianDate.toEth(new Date())
  );

  const handleDateChange = (newDate: Date) => {
    setDate(newDate);
    setEthDate(EthiopianDate.toEth(newDate));
  };

  return (
    <DatePicker
      selectedDate={date}
      onDateChange={handleDateChange}
      showCalendars="both" // "gregorian" | "ethiopian" | "both"
      viewFirst="Gregorian" // "Gregorian" | "Ethiopian"
      dateFormat="MMMM dd, yyyy"
    />
  );
};

Interactive Demo

Try out the Et-Calendar components with live examples. Select dates and see real-time formatting in both calendars.

Interactive Date Pickers

Experience the power of Et-Calendar with these interactive examples. Try different configurations and see how they work in real-time.

Gregorian First View
Gregorian View First (Both Calendars)
Gregorian Only
Compact Format
Date & Time (Gregorian First)
Ethiopian First View
Ethiopian View First (Both Calendars)
Ethiopian Only
Compact Format
Date & Time (Ethiopian First)

Selected Date Information

View the selected date in both calendar systems with various formatting options.

Gregorian Calendar

Full Date

July 5, 2025

Formatted

2025-07-05

Ethiopian Calendar

Full Date

ሰኔ 28, 2017

Formatted DateTime

2017-10-28 13:40:52

Ethiopian Date Formatting Examples

Explore different formatting options for Ethiopian dates. Each example shows the format string and the resulting output.

Year-Month-Day
yyyy-MM-dd

Standard date format, commonly used in technical contexts

2017-10-28

Day/Month/Year
dd/MM/yyyy

Common format used in Ethiopia and many other countries

28/10/2017

Full Month Name Day, Year
MMMM dd, yyyy

Long format with full month name in Amharic

ሰኔ 28, 2017

Day of Week, Month Day Year
E, MMM dd yyyy

Abbreviated format with day of week

ቅዳ, ሰኔ 28 2017

Full Day of Week, Full Month Name Day, Year
EEE, MMMM dd, yyyy

Complete format with full day and month names

ቅዳሜ, ሰኔ 28, 2017

Date and Time
yyyy-MM-dd HH:mm:ss

Standard datetime format with 24-hour time

2017-10-28 13:40:52

Full Month Name Day, Year Hour:Minute:Second
MMMM dd, yyyy HH:mm:ss

Long datetime format with full month name

ሰኔ 28, 2017 13:40:52

API Reference

Complete reference for all components, hooks, and utilities in Et-Calendar.

DatePicker
Component

A customizable date picker supporting Ethiopian and Gregorian calendars.

Props

selectedDate?
Date - The currently selected date
onDateChange
(date: Date) => void - Callback when date changes
showCalendars
'ethiopian' | 'gregorian' | 'both' - Which calendars to display
viewFirst?
'Ethiopian' | 'Gregorian' - Initial calendar view
dateFormat?
string - Format string for displaying the date
DateTimePicker
Component

A date-time picker for selecting both dates and times with calendar support.

Additional Props

timeFormat?
'12h' | '24h' - Time format (default: '12h')