Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

Ethiopian Calendar API

Dakidarts GitHub Issues Version

Ethiopian Calendar API

A production-ready REST API for converting between Ethiopian and Gregorian calendars, detecting leap years, retrieving full calendar information, holidays, Ethiopian time, and batch conversions. Supports optional language translation, timezone-aware responses, and full month/year lookups.


What's New in v0.0.2 (Aug 26, 2026)

  • 13 new endpoints: /status, /convert, /convert-year, /date-range, /year, /year/gregorian, /holidays, /next-holiday, /countdown, /difference, /time, /month-names, /batch
  • Fixed core conversion: replaced buggy ethiopian_date library with a correct, dependency-free Julian-based implementation — no more crashes on early September dates or Pagumen
  • Consistent error format: all errors now return {"status": "error", "code", "error", "request_id"} with stable codes
  • Holidays: fixed Ethiopian feasts, movable Orthodox (Siklet, Fasika, Rikbe Kahinat via Julian Easter), fixed Gregorian national days, and approximate Islamic holidays (Eid al-Fitr, Eid al-Adha, Mawlid)
  • Ethiopian 12-hour sunrise clock: convert standard time to the Ethiopian time system (6:00 AM = 12:00)
  • Batch conversion: up to 100 dates in a single request
  • Month names in 4 scripts: English, Ge'ez/Amharic, romanized Oromo, romanized Tigrinya
  • Request tracing: every response includes X-Request-ID and X-API-Version headers

Features

  • Convert Ethiopian ↔ Gregorian dates (bidirectional)
  • Get current date in both calendars with optional timezone support
  • Detect Ethiopian leap years with next/previous leap year info
  • Retrieve full month calendars for Ethiopian or Gregorian months
  • Full year views for both calendars with day-level entries
  • Date range conversion (up to 366 days)
  • Holiday calendar: Ethiopian Orthodox, national, and Islamic holidays
  • Next holiday countdown from any date
  • Date difference calculator
  • Ethiopian time (12-hour sunrise clock)
  • Batch convert up to 100 dates per request
  • Automatic translation of month and day names (100+ languages via Google Translate)

Base URL

https://ethiopian-calendar-api.p.rapidapi.com

Headers (for RapidAPI):

x-rapidapi-host: ethiopian-calendar-api.p.rapidapi.com
x-rapidapi-key: YOUR_RAPIDAPI_KEY

Error Format

All errors share a consistent format so you can branch on code:

{
  "status": "error",
  "code": "INVALID_PARAMETER",
  "error": "month must be between 1 and 13",
  "request_id": "5f9c8b1e-..."
}
Code HTTP Meaning
MISSING_PARAMETER 400 Required parameter not supplied
INVALID_PARAMETER 400 Bad type, out-of-range value, or malformed body
INVALID_DATE 400 Date string not in YYYY-MM-DD format
INVALID_TIMEZONE 400 Unknown IANA timezone name
RANGE_TOO_LARGE 400 Date range exceeds 366 days or batch exceeds 100 items
INVALID_BODY 400 Request body is not valid JSON
NOT_FOUND 404 Unknown endpoint
METHOD_NOT_ALLOWED 405 Wrong HTTP method
INTERNAL_ERROR 500 Unexpected failure

Response Headers

Every response includes:

Header Description
X-Request-ID Unique request id (useful for debugging and support)
X-API-Version Current API version (0.0.2)

Supported Languages

The API supports 100+ languages via built-in Google Translate. Add the optional lang parameter to any request:

lang=fr   → French
lang=am   → Amharic (Ge'ez script)
lang=es   → Spanish
lang=de   → German
lang=ar   → Arabic
lang=zh   → Chinese
lang=sw   → Swahili
lang=pt   → Portuguese
...

Month names in /month-names are also available in romanized Oromo (om) and Tigrinya (ti) without Google Translate.


Endpoints (20 total)

1. /status — Service Status

Check API status, version, uptime, and list all available endpoints.

Method: GET

Parameters: None

GET https://ethiopian-calendar-api.p.rapidapi.com/status
{
  "status": "success",
  "status_text": "API is online",
  "version": "0.0.2",
  "uptime_seconds": 86400,
  "documentation": "https://github.com/dakidarts/ethiopian-calendar-api",
  "endpoints": ["/to-gregorian", "/to-ethiopian", "/current-date", "..."]
}

2. /to-gregorian — Ethiopian → Gregorian

Convert an Ethiopian date to its Gregorian (Western) equivalent. The Ethiopian calendar has 13 months — month 13 (Pagumen) has 5 days or 6 in leap years.

Methods: GET, POST

Param Type Required Description Example
year int Yes Ethiopian year 2016
month int Yes Ethiopian month (1–13) 1
day int Yes Ethiopian day (1–30; 1–6 for Pagumen) 1
lang string No Language code (default: en) am
GET https://ethiopian-calendar-api.p.rapidapi.com/to-gregorian?year=2016&month=1&day=1
{
  "status": "success",
  "input": {"year": 2016, "month": 1, "day": 1},
  "gregorian_date": "2023-09-12",
  "gregorian": {"year": 2023, "month": 9, "day": 12},
  "day_of_week": "Tuesday",
  "weekday": 1,
  "month_name": "Meskerem",
  "is_ec_leap_year": false
}

3. /to-ethiopian — Gregorian → Ethiopian

Convert a Gregorian (Western) date to its Ethiopian calendar equivalent. Returns the Ethiopian year, month (1–13), day, and translated month name.

Methods: GET, POST

Param Type Required Description Example
date string Yes Gregorian date (YYYY-MM-DD) 2024-09-11
lang string No Language code (default: en) am
GET https://ethiopian-calendar-api.p.rapidapi.com/to-ethiopian?date=2024-09-11
{
  "status": "success",
  "input": "2024-09-11",
  "ethiopian_date": {
    "year": 2017,
    "month": 1,
    "day": 1,
    "month_name": "Meskerem"
  },
  "day_of_week": "Wednesday",
  "weekday": 2,
  "is_ec_leap_year": false,
  "days_in_ethiopian_month": 30
}

4. /convert — Bidirectional Converter

Single-date converter that accepts either a Gregorian date or Ethiopian year/month/day and returns both calendars.

Methods: GET, POST

Param Type Required Description Example
date string Yes* Gregorian date (YYYY-MM-DD) 2024-05-05
year int Yes* Ethiopian year 2016
month int Yes* Ethiopian month (1–13) 1
day int Yes* Ethiopian day (1–30) 1
lang string No Language code (default: en) am

*Either date OR year+month+day must be provided, not both.

GET https://ethiopian-calendar-api.p.rapidapi.com/convert?date=2024-05-05
{
  "status": "success",
  "ethiopian_date": {"year": 2016, "month": 8, "day": 27, "month_name": "Miyazia"},
  "gregorian_date": "2024-05-05",
  "gregorian": {"year": 2024, "month": 5, "day": 5},
  "day_of_week": "Sunday",
  "weekday": 6,
  "is_ec_leap_year": false,
  "days_in_ethiopian_month": 30
}

5. /convert-year — Year-Level Conversion

Year-level calendar conversion. For Ethiopian→Gregorian: returns the Gregorian year span. For Gregorian→Ethiopian: returns the Ethiopian years that overlap that Gregorian year.

Methods: GET, POST

Param Type Required Description Example
year int Yes Year to convert 2016
calendar string No "ethiopian" (default) or "gregorian" gregorian
lang string No Language code (default: en) am
GET https://ethiopian-calendar-api.p.rapidapi.com/convert-year?year=2024&calendar=gregorian
{
  "status": "success",
  "input": {"year": 2024, "calendar": "gregorian"},
  "gregorian_year": 2024,
  "ethiopian_years_covered": [2016, 2017],
  "is_gc_leap_year": true
}

6. /current-date — Today in Both Calendars

Get today's date in both Ethiopian and Gregorian calendars at the same time, including weekday and leap-year status.

Method: GET

Param Type Required Description Example
tz string No IANA timezone (default: UTC) Africa/Addis_Ababa
lang string No Language code (default: en) am
now string No Override "today" (YYYY-MM-DD) 2024-01-01
GET https://ethiopian-calendar-api.p.rapidapi.com/current-date?tz=Africa/Addis_Ababa
{
  "status": "success",
  "gregorian_today": "2024-01-01",
  "gregorian": {"year": 2024, "month": 1, "day": 1},
  "ethiopian_today": {"year": 2016, "month": 4, "day": 22, "month_name": "Tahsas"},
  "day_of_week": "Monday",
  "weekday": 0,
  "is_ec_leap_year": false,
  "time_zone": "Africa/Addis_Ababa"
}

7. /is-leap-year — Leap Year Check

Check whether an Ethiopian year is a leap year. Ethiopian leap years end in 3 (e.g. 2011, 2015, 2019, 2023) and have a 6-day Pagumen.

Method: GET

Param Type Required Description Example
year int Yes Ethiopian year to check 2015
GET https://ethiopian-calendar-api.p.rapidapi.com/is-leap-year?year=2015
{
  "status": "success",
  "year": 2015,
  "is_leap": true,
  "next_leap_year": 2019,
  "previous_leap_year": 2011,
  "explanation": "Ethiopian leap years occur every 4 years and have a 6-day 13th month (Pagumen). 2011, 2015, 2019, 2023 are leap years."
}

8. /calendar-info — Calendar Overview

General information about the Ethiopian calendar: current EC year, months, days per year, leap status, and the Gregorian date of Enkutatash (New Year).

Method: GET

Param Type Required Description Example
tz string No IANA timezone (default: UTC) Africa/Addis_Ababa
lang string No Language code (default: en) am
GET https://ethiopian-calendar-api.p.rapidapi.com/calendar-info
{
  "status": "success",
  "year": 2017,
  "months": [
    {"number": 1, "name": "Meskerem", "days": 30},
    {"number": 2, "name": "Tikimt", "days": 30},
    "...",
    {"number": 13, "name": "Pagumen", "days": 5}
  ],
  "is_leap": false,
  "days_in_year": 365,
  "new_year": {
    "ethiopian": {"year": 2017, "month": 1, "day": 1},
    "gregorian_date": "2024-09-11"
  },
  "epoch": "The Ethiopian calendar runs 7 years behind the Gregorian calendar from September to December and 8 years behind from January to August.",
  "description": "The Ethiopian calendar has 13 months, with the 13th month (Pagumen) having 5 or 6 days."
}

9. /full-month — Ethiopian Month View

Full Ethiopian calendar month: lists every day with its corresponding Gregorian date and weekday. Pagumen (month 13) has 5 or 6 days depending on leap year.

Methods: GET, POST

Param Type Required Description Example
year int Yes Ethiopian year 2016
month int Yes Ethiopian month (1–13, where 13 = Pagumen) 13
lang string No Language code (default: en) am
GET https://ethiopian-calendar-api.p.rapidapi.com/full-month?year=2016&month=13
{
  "status": "success",
  "ethiopian_year": 2016,
  "ethiopian_month": 13,
  "month_name": "Pagumen",
  "days_in_month": 5,
  "is_leap_year": false,
  "first_day_of_week": "Friday",
  "last_gregorian_date": "2023-09-10",
  "days": [
    {"ethiopian_day": 1, "gregorian_date": "2023-09-06", "day_of_week": "Wednesday"},
    {"ethiopian_day": 2, "gregorian_date": "2023-09-07", "day_of_week": "Thursday"},
    {"ethiopian_day": 3, "gregorian_date": "2023-09-08", "day_of_week": "Friday"},
    {"ethiopian_day": 4, "gregorian_date": "2023-09-09", "day_of_week": "Saturday"},
    {"ethiopian_day": 5, "gregorian_date": "2023-09-10", "day_of_week": "Sunday"}
  ]
}

10. /full-month/gregorian — Gregorian Month View

Full Gregorian calendar month: lists every day with its corresponding Ethiopian date and weekday.

Methods: GET, POST

Param Type Required Description Example
year int Yes Gregorian year 2024
month int Yes Gregorian month (1–12) 2
lang string No Language code (default: en) am
GET https://ethiopian-calendar-api.p.rapidapi.com/full-month/gregorian?year=2024&month=2
{
  "status": "success",
  "gregorian_year": 2024,
  "gregorian_month": 2,
  "month_name": "February",
  "days_in_month": 29,
  "is_gc_leap_year": true,
  "first_day_of_week": "Thursday",
  "days": [
    {
      "gregorian_day": 1,
      "gregorian_date": "2024-02-01",
      "day_of_week": "Thursday",
      "ethiopian_date": {"year": 2016, "month": 5, "day": 22, "month_name": "Tir"}
    },
    "..."
  ]
}

11. /year — Full Ethiopian Year

Full Ethiopian year overview: all 13 months with their Gregorian start and end dates. Optionally include day-level entries and holidays.

Methods: GET, POST

Param Type Required Description Example
year int Yes Ethiopian year 2016
lang string No Language code (default: en) am
include_days string No true/1/yes to include day-level entries true
include_holidays string No true/1/yes to include holidays list true
GET https://ethiopian-calendar-api.p.rapidapi.com/year?year=2016&include_holidays=true
{
  "status": "success",
  "ethiopian_year": 2016,
  "is_leap_year": false,
  "days_in_year": 365,
  "new_year_gregorian": "2023-09-12",
  "end_gregorian": "2024-09-10",
  "months": [
    {"month": 1, "name": "Meskerem", "days": 30, "first_gregorian_date": "2023-09-12", "last_gregorian_date": "2023-10-11"},
    "...",
    {"month": 13, "name": "Pagumen", "days": 5, "first_gregorian_date": "2023-09-06", "last_gregorian_date": "2023-09-10"}
  ]
}

12. /year/gregorian — Full Gregorian Year

Full Gregorian year overview: all 12 months with their Ethiopian start/end dates and leap-year status.

Methods: GET, POST

Param Type Required Description Example
year int Yes Gregorian year 2024
lang string No Language code (default: en) am
include_days string No true/1/yes to include day-level entries true
GET https://ethiopian-calendar-api.p.rapidapi.com/year/gregorian?year=2024
{
  "status": "success",
  "gregorian_year": 2024,
  "is_gc_leap_year": true,
  "days_in_year": 366,
  "months": [
    {
      "month": 1,
      "name": "January",
      "days": 31,
      "first_ethiopian_date": {"year": 2016, "month": 4, "day": 22, "month_name": "Tahsas"},
      "last_ethiopian_date": {"year": 2016, "month": 5, "day": 22, "month_name": "Tir"}
    },
    "..."
  ]
}

13. /date-range — Date Range Converter

Convert a range of Gregorian dates to Ethiopian dates, one entry per day. Maximum 366 days per request.

Methods: GET, POST

Param Type Required Description Example
from string Yes Start date (YYYY-MM-DD) 2024-01-01
to string Yes End date (YYYY-MM-DD, >= from) 2024-01-05
lang string No Language code (default: en) am
GET https://ethiopian-calendar-api.p.rapidapi.com/date-range?from=2024-01-01&to=2024-01-05
{
  "status": "success",
  "from": "2024-01-01",
  "to": "2024-01-05",
  "total_days": 5,
  "days": [
    {
      "gregorian_date": "2024-01-01",
      "ethiopian_date": {"year": 2016, "month": 4, "day": 22, "month_name": "Tahsas"},
      "day_of_week": "Monday"
    },
    "..."
  ]
}

14. /holidays — Holiday Calendar

List all public, religious and national holidays for an Ethiopian year (or Gregorian year). Includes fixed Ethiopian feasts, movable Orthodox holidays, fixed Gregorian national days, and approximate Islamic holidays.

Methods: GET, POST

Param Type Required Description Example
year int No Ethiopian year (default: current EC year) 2016
calendar string No "ethiopian" (default) or "gregorian" gregorian
lang string No Language code (default: en) am
tz string No IANA timezone Africa/Addis_Ababa
GET https://ethiopian-calendar-api.p.rapidapi.com/holidays?year=2016
{
  "status": "success",
  "year": 2016,
  "calendar": "ethiopian",
  "holidays": [
    {
      "name": "Enkutatash (Ethiopian New Year)",
      "type": "national",
      "is_public_holiday": true,
      "fixed": true,
      "approximate": false,
      "ethiopian_date": {"year": 2016, "month": 1, "day": 1, "month_name": "Meskerem"},
      "gregorian_date": "2023-09-12",
      "day_of_week": "Tuesday",
      "description": "First day of the Ethiopian year, celebrated with family gatherings and bouquets of yellow adey abeba flowers."
    },
    {
      "name": "Fasika (Ethiopian Easter)",
      "type": "religious",
      "is_public_holiday": false,
      "fixed": false,
      "approximate": false,
      "ethiopian_date": {"year": 2016, "month": 8, "day": 27, "month_name": "Miyazia"},
      "gregorian_date": "2024-05-05",
      "day_of_week": "Sunday",
      "description": "Commemorates the resurrection of Jesus Christ."
    },
    "..."
  ]
}

Holiday types included:

Category Holidays
Fixed Ethiopian Enkutatash (Mesk 1), Meskel (Mesk 17), Genna (Tahsas 29), Timkat (Tir 11), Adwa (Yekatit 23)
Movable Orthodox Siklet (Good Friday), Fasika (Easter), Rikbe Kahinat (Ascension)
Fixed Gregorian Labor Day (May 1), Patriots' Victory Day (May 5), Derg Downfall Day (May 28)
Islamic (approx.) Eid al-Fitr, Eid al-Adha, Mawlid

15. /next-holiday — Next Upcoming Holiday

Get the next upcoming holiday from today (or a given date). Returns the Ethiopian and Gregorian dates, days until the holiday, and its description.

Methods: GET, POST

Param Type Required Description Example
now string No Override "today" (YYYY-MM-DD) 2024-01-08
limit int No Number of holidays to return (1–10, default: 1) 3
lang string No Language code (default: en) am
tz string No IANA timezone Africa/Addis_Ababa
GET https://ethiopian-calendar-api.p.rapidapi.com/next-holiday?now=2024-01-08&limit=3
{
  "status": "success",
  "reference_date": "2024-01-08",
  "limit": 3,
  "holidays": [
    {
      "name": "Timkat (Ethiopian Epiphany)",
      "type": "religious",
      "is_public_holiday": false,
      "fixed": true,
      "approximate": false,
      "ethiopian_date": {"year": 2016, "month": 5, "day": 11, "month_name": "Tir"},
      "gregorian_date": "2024-01-20",
      "day_of_week": "Saturday",
      "days_until": 12,
      "description": "Commemorates the baptism of Jesus; celebrated with colorful processions of tabots."
    },
    "..."
  ]
}

16. /countdown — Countdown to a Date

Countdown from today (or a given start date) to a target date. The target can be given as a Gregorian or Ethiopian date. Returns days, hours, minutes, seconds and whether the target is in the future.

Methods: GET, POST

Param Type Required Description Example
date string Yes* Target Gregorian date (YYYY-MM-DD) 2024-09-12
year int Yes* Target Ethiopian year 2017
month int Yes* Target Ethiopian month (1–13) 1
day int Yes* Target Ethiopian day (1–30) 1
from string No Start date (YYYY-MM-DD, default: today) 2024-01-01
lang string No Language code (default: en) am
tz string No IANA timezone Africa/Addis_Ababa

*Either date (Gregorian) OR year+month+day (Ethiopian) must be provided.

GET https://ethiopian-calendar-api.p.rapidapi.com/countdown?date=2024-09-12&from=2024-01-01
{
  "status": "success",
  "target": {
    "ethiopian_date": {"year": 2017, "month": 1, "day": 1, "month_name": "Meskerem"},
    "gregorian_date": "2024-09-11"
  },
  "from": "2024-01-01",
  "is_future": true,
  "days": 254,
  "hours": 0,
  "minutes": 0,
  "seconds": 0,
  "total_days": 254
}

POST example (Ethiopian target):

POST https://ethiopian-calendar-api.p.rapidapi.com/countdown
Content-Type: application/json

{
  "year": 2017,
  "month": 1,
  "day": 1,
  "from": "2024-01-01"
}

17. /difference — Days Between Two Dates

Calculate the number of days between two dates. Supports Gregorian-to-Gregorian (GET query params) or Ethiopian-to-Ethiopian (POST JSON body with objects). Maximum span: 10 years.

Methods: GET, POST

Param Type Required Description Example
date1 string Yes* First Gregorian date (YYYY-MM-DD) 2024-01-01
date2 string Yes* Second Gregorian date (YYYY-MM-DD) 2024-12-31
from_ethiopian object Yes* First Ethiopian date {year, month, day} {"year":2016,"month":1,"day":1}
to_ethiopian object Yes* Second Ethiopian date {year, month, day} {"year":2017,"month":1,"day":1}
lang string No Language code (default: en) am

*Either date1/date2 (Gregorian) OR from_ethiopian/to_ethiopian (Ethiopian objects, POST body only) must be provided.

GET request (Gregorian dates):

GET https://ethiopian-calendar-api.p.rapidapi.com/difference?date1=2024-01-01&date2=2024-12-31
{
  "status": "success",
  "date1": {
    "gregorian_date": "2024-01-01",
    "ethiopian_date": {"year": 2016, "month": 4, "day": 22, "month_name": "Tahsas"}
  },
  "date2": {
    "gregorian_date": "2024-12-31",
    "ethiopian_date": {"year": 2017, "month": 4, "day": 21, "month_name": "Tahsas"}
  },
  "days_between": 365,
  "direction": "date1_before_date2"
}

POST request (Ethiopian dates):

POST https://ethiopian-calendar-api.p.rapidapi.com/difference
Content-Type: application/json

{
  "from_ethiopian": {"year": 2016, "month": 1, "day": 1},
  "to_ethiopian": {"year": 2017, "month": 1, "day": 1}
}
{
  "status": "success",
  "date1": {
    "gregorian_date": "2023-09-12",
    "ethiopian_date": {"year": 2016, "month": 1, "day": 1, "month_name": "Meskerem"}
  },
  "date2": {
    "gregorian_date": "2024-09-11",
    "ethiopian_date": {"year": 2017, "month": 1, "day": 1, "month_name": "Meskerem"}
  },
  "days_between": 365,
  "direction": "date1_before_date2"
}

18. /time — Ethiopian Time

Convert standard 24-hour clock time to the Ethiopian 12-hour sunrise clock. The Ethiopian day starts at sunrise (6:00 AM = 12:00 Ethiopian). Includes "short minutes" (kets), where 1 kets = 30 standard minutes.

Methods: GET, POST

Param Type Required Description Example
time string No 24-hour time (HH:MM, default: current time) 09:30
tz string No IANA timezone Africa/Addis_Ababa
lang string No Language code (default: en) am
GET https://ethiopian-calendar-api.p.rapidapi.com/time?time=09:30
{
  "status": "success",
  "standard_time": "09:30",
  "ethiopian_time": {
    "hour": 3,
    "minute": 30,
    "short_minutes": 1,
    "minute_remainder": 0,
    "period": "morning",
    "display": "3:30 morning"
  },
  "explanation": "The Ethiopian day starts at sunrise (6:00 AM standard time = 12:00 Ethiopian). Standard 6 AM is 12 o'clock; standard noon is 6 o'clock. A 'short minute' (kets) equals 30 standard minutes."
}

POST request (current time in Addis Ababa):

POST https://ethiopian-calendar-api.p.rapidapi.com/time
Content-Type: application/json

{
  "timezone": "Africa/Addis_Ababa"
}
{
  "status": "success",
  "standard_time": "14:30",
  "ethiopian_time": {
    "hour": 8,
    "minute": 30,
    "short_minutes": 1,
    "minute_remainder": 0,
    "period": "afternoon",
    "display": "8:30 afternoon"
  },
  "date": {
    "gregorian_date": "2026-08-26",
    "ethiopian_date": {"year": 2018, "month": 12, "day": 3, "month_name": "Nehase"},
    "time_zone": "Africa/Addis_Ababa"
  },
  "explanation": "The Ethiopian day starts at sunrise (6:00 AM standard time = 12:00 Ethiopian)."
}

19. /month-names — Month & Day Names

Ethiopian month and weekday names in English, Ge'ez/Amharic, romanized Oromo, and romanized Tigrinya.

Method: GET

Param Type Required Description Example
lang string No Filter: all (default), en, am, om, or ti am
GET https://ethiopian-calendar-api.p.rapidapi.com/month-names?lang=am
{
  "status": "success",
  "months": [
    {"number": 1, "en": "Meskerem", "am": "መስከረም", "om": "Sadaasa", "ti": "Meskereem", "days": 30},
    {"number": 2, "en": "Tikimt", "am": "ጥቅምት", "om": "Onkololeessa", "ti": "Tkeme", "days": 30},
    "...",
    {"number": 13, "en": "Pagumen", "am": "ጳጉሜ", "om": "Qarramaa", "ti": "Pagumeen", "days": "5 or 6"}
  ],
  "days": [
    {"number": 1, "en": "Monday", "am": "ሰኞ"},
    {"number": 2, "en": "Tuesday", "am": "ማክሰኞ"},
    "...",
    {"number": 7, "en": "Sunday", "am": "እሑድ"}
  ]
}

20. /batch — Batch Conversion

Batch-convert up to 100 dates in a single request. Choose a direction: "to-gregorian" (Ethiopian→Gregorian) or "to-ethiopian" (Gregorian→Ethiopian). Each item is converted independently — one invalid item fails only that item.

Method: POST only

Body Field Type Required Description Example
direction string Yes "to-gregorian" or "to-ethiopian" to-ethiopian
dates array Yes Array of date objects (max 100) see below
lang string No Language code (default: en) am

For to-gregorian, each item: {"year": 2016, "month": 1, "day": 1} For to-ethiopian, each item: {"date": "2024-01-01"}

POST https://ethiopian-calendar-api.p.rapidapi.com/batch
Content-Type: application/json

{
  "direction": "to-ethiopian",
  "dates": [
    {"date": "2024-01-01"},
    {"date": "2024-05-05"},
    {"date": "2024-09-11"}
  ]
}
{
  "status": "success",
  "direction": "to-ethiopian",
  "count": 3,
  "failed": 0,
  "results": [
    {
      "index": 0,
      "input": {"date": "2024-01-01"},
      "ethiopian_date": {"year": 2016, "month": 4, "day": 22, "month_name": "Tahsas"},
      "day_of_week": "Monday"
    },
    {
      "index": 1,
      "input": {"date": "2024-05-05"},
      "ethiopian_date": {"year": 2016, "month": 8, "day": 27, "month_name": "Miyazia"},
      "day_of_week": "Sunday"
    },
    {
      "index": 2,
      "input": {"date": "2024-09-11"},
      "ethiopian_date": {"year": 2017, "month": 1, "day": 1, "month_name": "Meskerem"},
      "day_of_week": "Wednesday"
    }
  ]
}

Batch with a failed item:

POST https://ethiopian-calendar-api.p.rapidapi.com/batch
Content-Type: application/json

{
  "direction": "to-gregorian",
  "dates": [
    {"year": 2016, "month": 1, "day": 1},
    {"year": 2015, "month": 13, "day": 6},
    {"year": 2016, "month": 0, "day": 1}
  ]
}
{
  "status": "success",
  "direction": "to-gregorian",
  "count": 3,
  "failed": 1,
  "results": [
    {
      "index": 0,
      "input": {"year": 2016, "month": 1, "day": 1},
      "gregorian_date": "2023-09-12",
      "day_of_week": "Tuesday"
    },
    {
      "index": 1,
      "input": {"year": 2015, "month": 13, "day": 6},
      "gregorian_date": "2023-09-10",
      "day_of_week": "Sunday"
    },
    {
      "index": 2,
      "input": {"year": 2016, "month": 0, "day": 1},
      "error": "'month' must be >= 1",
      "code": "INVALID_PARAMETER"
    }
  ]
}

Rate Limits

RapidAPI enforces per-plan rate limits before requests reach the API. The API itself does not enforce rate limits — all throttling is handled by the RapidAPI gateway.


License

Copyright © 2026 Dakidarts Web Services (DWS). All rights reserved.


Support

About

REST API for converting between Ethiopian and Gregorian calendars, detecting leap years, and retrieving full calendar info. ⚡ Production-ready, multilingual, timezone-aware. Use exclusively on RapidAPI . GitHub repo is for issues, bug reports, and follow-up.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors