{
  "openapi": "3.1.0",
  "info": {
    "title": "Ethiopian Calendar API",
    "version": "0.0.2",
    "description": "Convert Ethiopian and Gregorian dates, build calendars, check holidays and localize calendar names.",
    "x-pricing-model": "payg",
    "x-free-tier-calls": 0,
    "x-docs-url": "",
    "x-dakidarts-contract-status": "published",
    "x-dakidarts-execution-status": "source-only"
  },
  "servers": [
    {
      "url": "https://api.dakidarts.com/ethiopian-calendar",
      "description": "Dakidarts direct gateway"
    }
  ],
  "tags": [
    {
      "name": "Operations",
      "description": "Operations endpoints sourced from the Ethiopian Calendar API implementation."
    },
    {
      "name": "About",
      "description": "About endpoints sourced from the Ethiopian Calendar API implementation."
    },
    {
      "name": "To Gregorian",
      "description": "To Gregorian endpoints sourced from the Ethiopian Calendar API implementation."
    },
    {
      "name": "To Ethiopian",
      "description": "To Ethiopian endpoints sourced from the Ethiopian Calendar API implementation."
    },
    {
      "name": "Current Date",
      "description": "Current Date endpoints sourced from the Ethiopian Calendar API implementation."
    },
    {
      "name": "Is Leap Year",
      "description": "Is Leap Year endpoints sourced from the Ethiopian Calendar API implementation."
    },
    {
      "name": "Calendar Info",
      "description": "Calendar Info endpoints sourced from the Ethiopian Calendar API implementation."
    },
    {
      "name": "Full Month",
      "description": "Full Month endpoints sourced from the Ethiopian Calendar API implementation."
    },
    {
      "name": "Convert",
      "description": "Convert endpoints sourced from the Ethiopian Calendar API implementation."
    },
    {
      "name": "Convert Year",
      "description": "Convert Year endpoints sourced from the Ethiopian Calendar API implementation."
    },
    {
      "name": "Date Range",
      "description": "Date Range endpoints sourced from the Ethiopian Calendar API implementation."
    },
    {
      "name": "Year",
      "description": "Year endpoints sourced from the Ethiopian Calendar API implementation."
    },
    {
      "name": "Holidays",
      "description": "Holidays endpoints sourced from the Ethiopian Calendar API implementation."
    },
    {
      "name": "Next Holiday",
      "description": "Next Holiday endpoints sourced from the Ethiopian Calendar API implementation."
    },
    {
      "name": "Countdown",
      "description": "Countdown endpoints sourced from the Ethiopian Calendar API implementation."
    },
    {
      "name": "Difference",
      "description": "Difference endpoints sourced from the Ethiopian Calendar API implementation."
    },
    {
      "name": "Time",
      "description": "Time endpoints sourced from the Ethiopian Calendar API implementation."
    },
    {
      "name": "Month Names",
      "description": "Month Names endpoints sourced from the Ethiopian Calendar API implementation."
    },
    {
      "name": "Batch operations",
      "description": "Batch operations endpoints sourced from the Ethiopian Calendar API implementation."
    }
  ],
  "paths": {
    "/status": {
      "get": {
        "summary": "Status",
        "description": "Check API status, version, uptime, and list all available endpoints.",
        "operationId": "ethiopian-calendar_get_status",
        "tags": [
          "Operations"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true
      },
      "post": {
        "summary": "Status",
        "description": "Check API status, version, uptime, and list all available endpoints.",
        "operationId": "ethiopian-calendar_post_status",
        "tags": [
          "Operations"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true
      }
    },
    "/health": {
      "get": {
        "summary": "Health",
        "description": "Health check with uptime, memory (max RSS kB), translation-cache size and a UTC timestamp. Returns HTTP 200 with `\"status_text\": \"healthy\"` when the process is alive. Suitable for load balancer / uptime checks.",
        "operationId": "ethiopian-calendar_get_health",
        "tags": [
          "Operations"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true
      }
    },
    "/about": {
      "get": {
        "summary": "About",
        "description": "Human-readable description, version, API author and the list of user-facing endpoints.",
        "operationId": "ethiopian-calendar_get_about",
        "tags": [
          "About"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true
      }
    },
    "/to-gregorian": {
      "get": {
        "summary": "To Gregorian",
        "description": "Convert an Ethiopian date to its Gregorian (Western) equivalent. The Ethiopian calendar has 13 months \u2014 month 13 (Pagumen) has 5 days or 6 in leap years.",
        "operationId": "ethiopian-calendar_get_to-gregorian",
        "tags": [
          "To Gregorian"
        ],
        "parameters": [
          {
            "name": "year",
            "in": "query",
            "required": true,
            "description": "Ethiopian year",
            "schema": {
              "type": "integer",
              "example": 2016
            },
            "example": 2016
          },
          {
            "name": "month",
            "in": "query",
            "required": true,
            "description": "Ethiopian month (1\u201313)",
            "schema": {
              "type": "integer",
              "example": 1
            },
            "example": 1
          },
          {
            "name": "day",
            "in": "query",
            "required": true,
            "description": "Ethiopian day (1\u201330; 1\u20136 for Pagumen)",
            "schema": {
              "type": "integer",
              "example": 1
            },
            "example": 1
          },
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language code (default: `en`)",
            "schema": {
              "type": "string",
              "default": "en",
              "example": "am"
            },
            "example": "am"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "input": {
                      "day": 1,
                      "year": 2016,
                      "month": 1
                    },
                    "status": "success",
                    "weekday": 1,
                    "gregorian": {
                      "day": 12,
                      "year": 2023,
                      "month": 9
                    },
                    "month_name": "Meskerem",
                    "day_of_week": "Tuesday",
                    "gregorian_date": "2023-09-12",
                    "is_ec_leap_year": false
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true,
        "x-dakidarts-sample-response": {
          "input": {
            "day": 1,
            "year": 2016,
            "month": 1
          },
          "status": "success",
          "weekday": 1,
          "gregorian": {
            "day": 12,
            "year": 2023,
            "month": 9
          },
          "month_name": "Meskerem",
          "day_of_week": "Tuesday",
          "gregorian_date": "2023-09-12",
          "is_ec_leap_year": false
        }
      },
      "post": {
        "summary": "To Gregorian",
        "description": "Convert an Ethiopian date to its Gregorian (Western) equivalent. The Ethiopian calendar has 13 months \u2014 month 13 (Pagumen) has 5 days or 6 in leap years.",
        "operationId": "ethiopian-calendar_post_to-gregorian",
        "tags": [
          "To Gregorian"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "year": {
                    "type": "integer",
                    "example": 2016
                  },
                  "month": {
                    "type": "integer",
                    "example": 1
                  },
                  "day": {
                    "type": "integer",
                    "example": 1
                  },
                  "lang": {
                    "type": "string",
                    "default": "en",
                    "example": "am"
                  }
                },
                "required": [
                  "day",
                  "month",
                  "year"
                ]
              }
            }
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true
      }
    },
    "/to-ethiopian": {
      "get": {
        "summary": "To Ethiopian",
        "description": "Convert a Gregorian (Western) date to its Ethiopian calendar equivalent. Returns the Ethiopian year, month (1\u201313), day, and translated month name.",
        "operationId": "ethiopian-calendar_get_to-ethiopian",
        "tags": [
          "To Ethiopian"
        ],
        "parameters": [
          {
            "name": "date",
            "in": "query",
            "required": true,
            "description": "Gregorian date (YYYY-MM-DD)",
            "schema": {
              "type": "string",
              "example": "2024-09-11"
            },
            "example": "2024-09-11"
          },
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language code (default: `en`)",
            "schema": {
              "type": "string",
              "default": "en",
              "example": "am"
            },
            "example": "am"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "input": "2024-09-11",
                    "status": "success",
                    "weekday": 2,
                    "day_of_week": "Wednesday",
                    "ethiopian_date": {
                      "day": 1,
                      "year": 2017,
                      "month": 1,
                      "month_name": "Meskerem"
                    },
                    "is_ec_leap_year": false,
                    "days_in_ethiopian_month": 30
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true,
        "x-dakidarts-sample-response": {
          "input": "2024-09-11",
          "status": "success",
          "weekday": 2,
          "day_of_week": "Wednesday",
          "ethiopian_date": {
            "day": 1,
            "year": 2017,
            "month": 1,
            "month_name": "Meskerem"
          },
          "is_ec_leap_year": false,
          "days_in_ethiopian_month": 30
        }
      },
      "post": {
        "summary": "To Ethiopian",
        "description": "Convert a Gregorian (Western) date to its Ethiopian calendar equivalent. Returns the Ethiopian year, month (1\u201313), day, and translated month name.",
        "operationId": "ethiopian-calendar_post_to-ethiopian",
        "tags": [
          "To Ethiopian"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "date": {
                    "type": "string",
                    "example": "2024-09-11"
                  },
                  "lang": {
                    "type": "string",
                    "default": "en",
                    "example": "am"
                  }
                },
                "required": [
                  "date"
                ]
              }
            }
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true
      }
    },
    "/current-date": {
      "get": {
        "summary": "Current Date",
        "description": "Get today's date in both Ethiopian and Gregorian calendars at the same time, including weekday and leap-year status.",
        "operationId": "ethiopian-calendar_get_current-date",
        "tags": [
          "Current Date"
        ],
        "parameters": [
          {
            "name": "tz",
            "in": "query",
            "required": false,
            "description": "IANA timezone (default: UTC)",
            "schema": {
              "type": "string",
              "default": "UTC",
              "example": "Africa/Addis_Ababa"
            },
            "example": "Africa/Addis_Ababa"
          },
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language code (default: `en`)",
            "schema": {
              "type": "string",
              "default": "en",
              "example": "am"
            },
            "example": "am"
          },
          {
            "name": "now",
            "in": "query",
            "required": false,
            "description": "Override \"today\" (YYYY-MM-DD)",
            "schema": {
              "type": "string",
              "example": "2024-01-01"
            },
            "example": "2024-01-01"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "status": "success",
                    "weekday": 0,
                    "gregorian": {
                      "day": 1,
                      "year": 2024,
                      "month": 1
                    },
                    "time_zone": "Africa/Addis_Ababa",
                    "day_of_week": "Monday",
                    "ethiopian_today": {
                      "day": 22,
                      "year": 2016,
                      "month": 4,
                      "month_name": "Tahsas"
                    },
                    "gregorian_today": "2024-01-01",
                    "is_ec_leap_year": false
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true,
        "x-dakidarts-sample-response": {
          "status": "success",
          "weekday": 0,
          "gregorian": {
            "day": 1,
            "year": 2024,
            "month": 1
          },
          "time_zone": "Africa/Addis_Ababa",
          "day_of_week": "Monday",
          "ethiopian_today": {
            "day": 22,
            "year": 2016,
            "month": 4,
            "month_name": "Tahsas"
          },
          "gregorian_today": "2024-01-01",
          "is_ec_leap_year": false
        }
      }
    },
    "/is-leap-year": {
      "get": {
        "summary": "Is Leap Year",
        "description": "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.",
        "operationId": "ethiopian-calendar_get_is-leap-year",
        "tags": [
          "Is Leap Year"
        ],
        "parameters": [
          {
            "name": "year",
            "in": "query",
            "required": true,
            "description": "Ethiopian year to check",
            "schema": {
              "type": "integer",
              "example": 2015
            },
            "example": 2015
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "year": 2015,
                    "status": "success",
                    "is_leap": true,
                    "explanation": "Ethiopian leap years occur every 4 years and have a 6-day 13th month (Pagumen). 2011, 2015, 2019, 2023 are leap years.",
                    "next_leap_year": 2019,
                    "previous_leap_year": 2011
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true,
        "x-dakidarts-sample-response": {
          "year": 2015,
          "status": "success",
          "is_leap": true,
          "explanation": "Ethiopian leap years occur every 4 years and have a 6-day 13th month (Pagumen). 2011, 2015, 2019, 2023 are leap years.",
          "next_leap_year": 2019,
          "previous_leap_year": 2011
        }
      }
    },
    "/calendar-info": {
      "get": {
        "summary": "Calendar Info",
        "description": "General information about the Ethiopian calendar: current EC year, months, days per year, leap status, and the Gregorian date of Enkutatash (New Year).",
        "operationId": "ethiopian-calendar_get_calendar-info",
        "tags": [
          "Calendar Info"
        ],
        "parameters": [
          {
            "name": "tz",
            "in": "query",
            "required": false,
            "description": "IANA timezone (default: UTC)",
            "schema": {
              "type": "string",
              "default": "UTC",
              "example": "Africa/Addis_Ababa"
            },
            "example": "Africa/Addis_Ababa"
          },
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language code (default: `en`)",
            "schema": {
              "type": "string",
              "default": "en",
              "example": "am"
            },
            "example": "am"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true
      }
    },
    "/full-month": {
      "get": {
        "summary": "Full Month",
        "description": "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.",
        "operationId": "ethiopian-calendar_get_full-month",
        "tags": [
          "Full Month"
        ],
        "parameters": [
          {
            "name": "year",
            "in": "query",
            "required": true,
            "description": "Ethiopian year",
            "schema": {
              "type": "integer",
              "example": 2016
            },
            "example": 2016
          },
          {
            "name": "month",
            "in": "query",
            "required": true,
            "description": "Ethiopian month (1\u201313, where 13 = Pagumen)",
            "schema": {
              "type": "integer",
              "example": 13
            },
            "example": 13
          },
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language code (default: `en`)",
            "schema": {
              "type": "string",
              "default": "en",
              "example": "am"
            },
            "example": "am"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "days": [
                      {
                        "day_of_week": "Wednesday",
                        "ethiopian_day": 1,
                        "gregorian_date": "2023-09-06"
                      },
                      {
                        "day_of_week": "Thursday",
                        "ethiopian_day": 2,
                        "gregorian_date": "2023-09-07"
                      },
                      {
                        "day_of_week": "Friday",
                        "ethiopian_day": 3,
                        "gregorian_date": "2023-09-08"
                      },
                      {
                        "day_of_week": "Saturday",
                        "ethiopian_day": 4,
                        "gregorian_date": "2023-09-09"
                      },
                      {
                        "day_of_week": "Sunday",
                        "ethiopian_day": 5,
                        "gregorian_date": "2023-09-10"
                      }
                    ],
                    "status": "success",
                    "month_name": "Pagumen",
                    "is_leap_year": false,
                    "days_in_month": 5,
                    "ethiopian_year": 2016,
                    "ethiopian_month": 13,
                    "first_day_of_week": "Friday",
                    "last_gregorian_date": "2023-09-10"
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true,
        "x-dakidarts-sample-response": {
          "days": [
            {
              "day_of_week": "Wednesday",
              "ethiopian_day": 1,
              "gregorian_date": "2023-09-06"
            },
            {
              "day_of_week": "Thursday",
              "ethiopian_day": 2,
              "gregorian_date": "2023-09-07"
            },
            {
              "day_of_week": "Friday",
              "ethiopian_day": 3,
              "gregorian_date": "2023-09-08"
            },
            {
              "day_of_week": "Saturday",
              "ethiopian_day": 4,
              "gregorian_date": "2023-09-09"
            },
            {
              "day_of_week": "Sunday",
              "ethiopian_day": 5,
              "gregorian_date": "2023-09-10"
            }
          ],
          "status": "success",
          "month_name": "Pagumen",
          "is_leap_year": false,
          "days_in_month": 5,
          "ethiopian_year": 2016,
          "ethiopian_month": 13,
          "first_day_of_week": "Friday",
          "last_gregorian_date": "2023-09-10"
        }
      },
      "post": {
        "summary": "Full Month",
        "description": "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.",
        "operationId": "ethiopian-calendar_post_full-month",
        "tags": [
          "Full Month"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "year": {
                    "type": "integer",
                    "example": 2016
                  },
                  "month": {
                    "type": "integer",
                    "example": 13
                  },
                  "lang": {
                    "type": "string",
                    "default": "en",
                    "example": "am"
                  }
                },
                "required": [
                  "month",
                  "year"
                ]
              }
            }
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true
      }
    },
    "/full-month/gregorian": {
      "get": {
        "summary": "Full Month Gregorian",
        "description": "Full Gregorian calendar month: lists every day with its corresponding Ethiopian date and weekday.",
        "operationId": "ethiopian-calendar_get_full-month_gregorian",
        "tags": [
          "Full Month"
        ],
        "parameters": [
          {
            "name": "year",
            "in": "query",
            "required": true,
            "description": "Gregorian year",
            "schema": {
              "type": "integer",
              "example": 2024
            },
            "example": 2024
          },
          {
            "name": "month",
            "in": "query",
            "required": true,
            "description": "Gregorian month (1\u201312)",
            "schema": {
              "type": "integer",
              "example": 2
            },
            "example": 2
          },
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language code (default: `en`)",
            "schema": {
              "type": "string",
              "default": "en",
              "example": "am"
            },
            "example": "am"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true
      },
      "post": {
        "summary": "Full Month Gregorian",
        "description": "Full Gregorian calendar month: lists every day with its corresponding Ethiopian date and weekday.",
        "operationId": "ethiopian-calendar_post_full-month_gregorian",
        "tags": [
          "Full Month"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "year": {
                    "type": "integer",
                    "example": 2024
                  },
                  "month": {
                    "type": "integer",
                    "example": 2
                  },
                  "lang": {
                    "type": "string",
                    "default": "en",
                    "example": "am"
                  }
                },
                "required": [
                  "month",
                  "year"
                ]
              }
            }
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true
      }
    },
    "/convert": {
      "get": {
        "summary": "Convert",
        "description": "Single-date converter that accepts either a Gregorian date or Ethiopian year/month/day and returns both calendars.",
        "operationId": "ethiopian-calendar_get_convert",
        "tags": [
          "Convert"
        ],
        "parameters": [
          {
            "name": "date",
            "in": "query",
            "required": false,
            "description": "Gregorian date (YYYY-MM-DD)",
            "schema": {
              "type": "string",
              "example": "2024-05-05"
            },
            "example": "2024-05-05",
            "x-required-group": "gregorian-or-ethiopian-date"
          },
          {
            "name": "year",
            "in": "query",
            "required": false,
            "description": "Ethiopian year",
            "schema": {
              "type": "integer",
              "example": 2016
            },
            "example": 2016,
            "x-required-group": "gregorian-or-ethiopian-date"
          },
          {
            "name": "month",
            "in": "query",
            "required": false,
            "description": "Ethiopian month (1\u201313)",
            "schema": {
              "type": "integer",
              "example": 1
            },
            "example": 1,
            "x-required-group": "gregorian-or-ethiopian-date"
          },
          {
            "name": "day",
            "in": "query",
            "required": false,
            "description": "Ethiopian day (1\u201330)",
            "schema": {
              "type": "integer",
              "example": 1
            },
            "example": 1,
            "x-required-group": "gregorian-or-ethiopian-date"
          },
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language code (default: `en`)",
            "schema": {
              "type": "string",
              "default": "en",
              "example": "am"
            },
            "example": "am"
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Target calendar for conversion.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "calendar",
            "in": "query",
            "required": false,
            "description": "Calendar system selector (`ethiopian` or `gregorian`).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Starting calendar/date for conversion.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "time",
            "in": "query",
            "required": false,
            "description": "Time value to convert or use with the calendar date.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "status": "success",
                    "weekday": 6,
                    "gregorian": {
                      "day": 5,
                      "year": 2024,
                      "month": 5
                    },
                    "day_of_week": "Sunday",
                    "ethiopian_date": {
                      "day": 27,
                      "year": 2016,
                      "month": 8,
                      "month_name": "Miyazia"
                    },
                    "gregorian_date": "2024-05-05",
                    "is_ec_leap_year": false,
                    "days_in_ethiopian_month": 30
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true,
        "x-dakidarts-sample-response": {
          "status": "success",
          "weekday": 6,
          "gregorian": {
            "day": 5,
            "year": 2024,
            "month": 5
          },
          "day_of_week": "Sunday",
          "ethiopian_date": {
            "day": 27,
            "year": 2016,
            "month": 8,
            "month_name": "Miyazia"
          },
          "gregorian_date": "2024-05-05",
          "is_ec_leap_year": false,
          "days_in_ethiopian_month": 30
        }
      },
      "post": {
        "summary": "Convert",
        "description": "Single-date converter that accepts either a Gregorian date or Ethiopian year/month/day and returns both calendars.",
        "operationId": "ethiopian-calendar_post_convert",
        "tags": [
          "Convert"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "date": {
                    "type": "string",
                    "example": "2024-05-05",
                    "x-required-group": "gregorian-or-ethiopian-date"
                  },
                  "year": {
                    "type": "integer",
                    "example": 2016,
                    "x-required-group": "gregorian-or-ethiopian-date"
                  },
                  "month": {
                    "type": "integer",
                    "example": 1,
                    "x-required-group": "gregorian-or-ethiopian-date"
                  },
                  "day": {
                    "type": "integer",
                    "example": 1,
                    "x-required-group": "gregorian-or-ethiopian-date"
                  },
                  "lang": {
                    "type": "string",
                    "default": "en",
                    "example": "am"
                  },
                  "to": {
                    "type": "string"
                  },
                  "calendar": {
                    "type": "string"
                  },
                  "from": {
                    "type": "string"
                  },
                  "time": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "x-required-groups": {
          "gregorian-or-ethiopian-date": [
            "date",
            "year",
            "month",
            "day"
          ]
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true
      }
    },
    "/convert-year": {
      "get": {
        "summary": "Convert Year",
        "description": "Year-level calendar conversion. For Ethiopian\u2192Gregorian: returns the Gregorian year span. For Gregorian\u2192Ethiopian: returns the Ethiopian years that overlap that Gregorian year.",
        "operationId": "ethiopian-calendar_get_convert-year",
        "tags": [
          "Convert Year"
        ],
        "parameters": [
          {
            "name": "year",
            "in": "query",
            "required": true,
            "description": "Year to convert",
            "schema": {
              "type": "integer",
              "example": 2016
            },
            "example": 2016
          },
          {
            "name": "calendar",
            "in": "query",
            "required": false,
            "description": "`\"ethiopian\"` (default) or `\"gregorian\"`",
            "schema": {
              "type": "string",
              "example": "gregorian"
            },
            "example": "gregorian"
          },
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language code (default: `en`)",
            "schema": {
              "type": "string",
              "default": "en",
              "example": "am"
            },
            "example": "am"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "input": {
                      "year": 2024,
                      "calendar": "gregorian"
                    },
                    "status": "success",
                    "gregorian_year": 2024,
                    "is_gc_leap_year": true,
                    "ethiopian_years_covered": [
                      2016,
                      2017
                    ]
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true,
        "x-dakidarts-sample-response": {
          "input": {
            "year": 2024,
            "calendar": "gregorian"
          },
          "status": "success",
          "gregorian_year": 2024,
          "is_gc_leap_year": true,
          "ethiopian_years_covered": [
            2016,
            2017
          ]
        }
      },
      "post": {
        "summary": "Convert Year",
        "description": "Year-level calendar conversion. For Ethiopian\u2192Gregorian: returns the Gregorian year span. For Gregorian\u2192Ethiopian: returns the Ethiopian years that overlap that Gregorian year.",
        "operationId": "ethiopian-calendar_post_convert-year",
        "tags": [
          "Convert Year"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "year": {
                    "type": "integer",
                    "example": 2016
                  },
                  "calendar": {
                    "type": "string",
                    "example": "gregorian"
                  },
                  "lang": {
                    "type": "string",
                    "default": "en",
                    "example": "am"
                  }
                },
                "required": [
                  "year"
                ]
              }
            }
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true
      }
    },
    "/date-range": {
      "get": {
        "summary": "Date Range",
        "description": "Convert a range of Gregorian dates to Ethiopian dates, one entry per day. Maximum 366 days per request.",
        "operationId": "ethiopian-calendar_get_date-range",
        "tags": [
          "Date Range"
        ],
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": true,
            "description": "Start date (YYYY-MM-DD)",
            "schema": {
              "type": "string",
              "example": "2024-01-01"
            },
            "example": "2024-01-01"
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "description": "End date (YYYY-MM-DD, >= from)",
            "schema": {
              "type": "string",
              "example": "2024-01-05"
            },
            "example": "2024-01-05"
          },
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language code (default: `en`)",
            "schema": {
              "type": "string",
              "default": "en",
              "example": "am"
            },
            "example": "am"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true
      },
      "post": {
        "summary": "Date Range",
        "description": "Convert a range of Gregorian dates to Ethiopian dates, one entry per day. Maximum 366 days per request.",
        "operationId": "ethiopian-calendar_post_date-range",
        "tags": [
          "Date Range"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "from": {
                    "type": "string",
                    "example": "2024-01-01"
                  },
                  "to": {
                    "type": "string",
                    "example": "2024-01-05"
                  },
                  "lang": {
                    "type": "string",
                    "default": "en",
                    "example": "am"
                  }
                },
                "required": [
                  "from",
                  "to"
                ]
              }
            }
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true
      }
    },
    "/year": {
      "get": {
        "summary": "Year View",
        "description": "Full Ethiopian year overview: all 13 months with their Gregorian start and end dates. Optionally include day-level entries and holidays.",
        "operationId": "ethiopian-calendar_get_year",
        "tags": [
          "Year"
        ],
        "parameters": [
          {
            "name": "year",
            "in": "query",
            "required": true,
            "description": "Ethiopian year",
            "schema": {
              "type": "integer",
              "example": 2016
            },
            "example": 2016
          },
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language code (default: `en`)",
            "schema": {
              "type": "string",
              "default": "en",
              "example": "am"
            },
            "example": "am"
          },
          {
            "name": "include_days",
            "in": "query",
            "required": false,
            "description": "`true`/`1`/`yes` to include day-level entries",
            "schema": {
              "type": "string",
              "example": true
            },
            "example": true
          },
          {
            "name": "include_holidays",
            "in": "query",
            "required": false,
            "description": "`true`/`1`/`yes` to include holidays list",
            "schema": {
              "type": "string",
              "example": true
            },
            "example": true
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true
      },
      "post": {
        "summary": "Year View",
        "description": "Full Ethiopian year overview: all 13 months with their Gregorian start and end dates. Optionally include day-level entries and holidays.",
        "operationId": "ethiopian-calendar_post_year",
        "tags": [
          "Year"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "year": {
                    "type": "integer",
                    "example": 2016
                  },
                  "lang": {
                    "type": "string",
                    "default": "en",
                    "example": "am"
                  },
                  "include_days": {
                    "type": "string",
                    "example": true
                  },
                  "include_holidays": {
                    "type": "string",
                    "example": true
                  }
                },
                "required": [
                  "year"
                ]
              }
            }
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true
      }
    },
    "/year/gregorian": {
      "get": {
        "summary": "Year View Gregorian",
        "description": "Full Gregorian year overview: all 12 months with their Ethiopian start/end dates and leap-year status.",
        "operationId": "ethiopian-calendar_get_year_gregorian",
        "tags": [
          "Year"
        ],
        "parameters": [
          {
            "name": "year",
            "in": "query",
            "required": true,
            "description": "Gregorian year",
            "schema": {
              "type": "integer",
              "example": 2024
            },
            "example": 2024
          },
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language code (default: `en`)",
            "schema": {
              "type": "string",
              "default": "en",
              "example": "am"
            },
            "example": "am"
          },
          {
            "name": "include_days",
            "in": "query",
            "required": false,
            "description": "`true`/`1`/`yes` to include day-level entries",
            "schema": {
              "type": "string",
              "example": true
            },
            "example": true
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true
      },
      "post": {
        "summary": "Year View Gregorian",
        "description": "Full Gregorian year overview: all 12 months with their Ethiopian start/end dates and leap-year status.",
        "operationId": "ethiopian-calendar_post_year_gregorian",
        "tags": [
          "Year"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "year": {
                    "type": "integer",
                    "example": 2024
                  },
                  "lang": {
                    "type": "string",
                    "default": "en",
                    "example": "am"
                  },
                  "include_days": {
                    "type": "string",
                    "example": true
                  }
                },
                "required": [
                  "year"
                ]
              }
            }
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true
      }
    },
    "/holidays": {
      "get": {
        "summary": "Holidays",
        "description": "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.",
        "operationId": "ethiopian-calendar_get_holidays",
        "tags": [
          "Holidays"
        ],
        "parameters": [
          {
            "name": "year",
            "in": "query",
            "required": false,
            "description": "Ethiopian year (default: current EC year)",
            "schema": {
              "type": "integer",
              "example": 2016
            },
            "example": 2016
          },
          {
            "name": "calendar",
            "in": "query",
            "required": false,
            "description": "`\"ethiopian\"` (default) or `\"gregorian\"`",
            "schema": {
              "type": "string",
              "example": "gregorian"
            },
            "example": "gregorian"
          },
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language code (default: `en`)",
            "schema": {
              "type": "string",
              "default": "en",
              "example": "am"
            },
            "example": "am"
          },
          {
            "name": "tz",
            "in": "query",
            "required": false,
            "description": "IANA timezone",
            "schema": {
              "type": "string",
              "example": "Africa/Addis_Ababa"
            },
            "example": "Africa/Addis_Ababa"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true
      },
      "post": {
        "summary": "Holidays",
        "description": "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.",
        "operationId": "ethiopian-calendar_post_holidays",
        "tags": [
          "Holidays"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "year": {
                    "type": "integer",
                    "example": 2016
                  },
                  "calendar": {
                    "type": "string",
                    "example": "gregorian"
                  },
                  "lang": {
                    "type": "string",
                    "default": "en",
                    "example": "am"
                  },
                  "tz": {
                    "type": "string",
                    "example": "Africa/Addis_Ababa"
                  }
                }
              }
            }
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true
      }
    },
    "/next-holiday": {
      "get": {
        "summary": "Next Holiday",
        "description": "Get the next upcoming holiday from today (or a given date). Returns the Ethiopian and Gregorian dates, days until the holiday, and its description.",
        "operationId": "ethiopian-calendar_get_next-holiday",
        "tags": [
          "Next Holiday"
        ],
        "parameters": [
          {
            "name": "now",
            "in": "query",
            "required": false,
            "description": "Override \"today\" (YYYY-MM-DD)",
            "schema": {
              "type": "string",
              "example": "2024-01-08"
            },
            "example": "2024-01-08"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of holidays to return (1\u201310, default: 1)",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 3
            },
            "example": 3
          },
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language code (default: `en`)",
            "schema": {
              "type": "string",
              "default": "en",
              "example": "am"
            },
            "example": "am"
          },
          {
            "name": "tz",
            "in": "query",
            "required": false,
            "description": "IANA timezone",
            "schema": {
              "type": "string",
              "example": "Africa/Addis_Ababa"
            },
            "example": "Africa/Addis_Ababa"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true
      },
      "post": {
        "summary": "Next Holiday",
        "description": "Get the next upcoming holiday from today (or a given date). Returns the Ethiopian and Gregorian dates, days until the holiday, and its description.",
        "operationId": "ethiopian-calendar_post_next-holiday",
        "tags": [
          "Next Holiday"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "now": {
                    "type": "string",
                    "example": "2024-01-08"
                  },
                  "limit": {
                    "type": "integer",
                    "default": 1,
                    "example": 3
                  },
                  "lang": {
                    "type": "string",
                    "default": "en",
                    "example": "am"
                  },
                  "tz": {
                    "type": "string",
                    "example": "Africa/Addis_Ababa"
                  }
                }
              }
            }
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true
      }
    },
    "/countdown": {
      "get": {
        "summary": "Countdown",
        "description": "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.",
        "operationId": "ethiopian-calendar_get_countdown",
        "tags": [
          "Countdown"
        ],
        "parameters": [
          {
            "name": "date",
            "in": "query",
            "required": false,
            "description": "Target Gregorian date (YYYY-MM-DD)",
            "schema": {
              "type": "string",
              "example": "2024-09-12"
            },
            "example": "2024-09-12",
            "x-required-group": "target-date"
          },
          {
            "name": "year",
            "in": "query",
            "required": false,
            "description": "Target Ethiopian year",
            "schema": {
              "type": "integer",
              "example": 2017
            },
            "example": 2017,
            "x-required-group": "target-date"
          },
          {
            "name": "month",
            "in": "query",
            "required": false,
            "description": "Target Ethiopian month (1\u201313)",
            "schema": {
              "type": "integer",
              "example": 1
            },
            "example": 1,
            "x-required-group": "target-date"
          },
          {
            "name": "day",
            "in": "query",
            "required": false,
            "description": "Target Ethiopian day (1\u201330)",
            "schema": {
              "type": "integer",
              "example": 1
            },
            "example": 1,
            "x-required-group": "target-date"
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Start date (YYYY-MM-DD, default: today)",
            "schema": {
              "type": "string",
              "default": "today",
              "example": "2024-01-01"
            },
            "example": "2024-01-01"
          },
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language code (default: `en`)",
            "schema": {
              "type": "string",
              "default": "en",
              "example": "am"
            },
            "example": "am"
          },
          {
            "name": "tz",
            "in": "query",
            "required": false,
            "description": "IANA timezone",
            "schema": {
              "type": "string",
              "example": "Africa/Addis_Ababa"
            },
            "example": "Africa/Addis_Ababa"
          },
          {
            "name": "event",
            "in": "query",
            "required": false,
            "description": "Optional event label included with the countdown result.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "event_date",
            "in": "query",
            "required": false,
            "description": "Target date for the event countdown (YYYY-MM-DD).",
            "schema": {
              "type": "string"
            },
            "x-required-group": "target-date"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "days": 254,
                    "from": "2024-01-01",
                    "hours": 0,
                    "status": "success",
                    "target": {
                      "ethiopian_date": {
                        "day": 1,
                        "year": 2017,
                        "month": 1,
                        "month_name": "Meskerem"
                      },
                      "gregorian_date": "2024-09-11"
                    },
                    "minutes": 0,
                    "seconds": 0,
                    "is_future": true,
                    "total_days": 254
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true,
        "x-dakidarts-sample-response": {
          "days": 254,
          "from": "2024-01-01",
          "hours": 0,
          "status": "success",
          "target": {
            "ethiopian_date": {
              "day": 1,
              "year": 2017,
              "month": 1,
              "month_name": "Meskerem"
            },
            "gregorian_date": "2024-09-11"
          },
          "minutes": 0,
          "seconds": 0,
          "is_future": true,
          "total_days": 254
        }
      },
      "post": {
        "summary": "Countdown",
        "description": "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.",
        "operationId": "ethiopian-calendar_post_countdown",
        "tags": [
          "Countdown"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "date": {
                    "type": "string",
                    "example": "2024-09-12",
                    "x-required-group": "target-date"
                  },
                  "year": {
                    "type": "integer",
                    "example": 2017,
                    "x-required-group": "target-date"
                  },
                  "month": {
                    "type": "integer",
                    "example": 1,
                    "x-required-group": "target-date"
                  },
                  "day": {
                    "type": "integer",
                    "example": 1,
                    "x-required-group": "target-date"
                  },
                  "from": {
                    "type": "string",
                    "default": "today",
                    "example": "2024-01-01"
                  },
                  "lang": {
                    "type": "string",
                    "default": "en",
                    "example": "am"
                  },
                  "tz": {
                    "type": "string",
                    "example": "Africa/Addis_Ababa"
                  },
                  "event": {
                    "type": "string"
                  },
                  "event_date": {
                    "type": "string",
                    "x-required-group": "target-date"
                  }
                }
              }
            }
          }
        },
        "x-required-groups": {
          "target-date": [
            "date",
            "year",
            "month",
            "day",
            "event_date"
          ]
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true
      }
    },
    "/difference": {
      "get": {
        "summary": "Difference",
        "description": "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.",
        "operationId": "ethiopian-calendar_get_difference",
        "tags": [
          "Difference"
        ],
        "parameters": [
          {
            "name": "date1",
            "in": "query",
            "required": false,
            "description": "First Gregorian date (YYYY-MM-DD)",
            "schema": {
              "type": "string",
              "example": "2024-01-01"
            },
            "example": "2024-01-01",
            "x-required-group": "conditional"
          },
          {
            "name": "date2",
            "in": "query",
            "required": false,
            "description": "Second Gregorian date (YYYY-MM-DD)",
            "schema": {
              "type": "string",
              "example": "2024-12-31"
            },
            "example": "2024-12-31",
            "x-required-group": "conditional"
          },
          {
            "name": "from_ethiopian",
            "in": "query",
            "required": false,
            "description": "First Ethiopian date `{year, month, day}`",
            "schema": {
              "type": "object",
              "example": {
                "day": 1,
                "year": 2016,
                "month": 1
              }
            },
            "example": {
              "day": 1,
              "year": 2016,
              "month": 1
            },
            "x-required-group": "conditional"
          },
          {
            "name": "to_ethiopian",
            "in": "query",
            "required": false,
            "description": "Second Ethiopian date `{year, month, day}`",
            "schema": {
              "type": "object",
              "example": {
                "day": 1,
                "year": 2017,
                "month": 1
              }
            },
            "example": {
              "day": 1,
              "year": 2017,
              "month": 1
            },
            "x-required-group": "conditional"
          },
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language code (default: `en`)",
            "schema": {
              "type": "string",
              "default": "en",
              "example": "am"
            },
            "example": "am"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "date1": {
                      "ethiopian_date": {
                        "day": 22,
                        "year": 2016,
                        "month": 4,
                        "month_name": "Tahsas"
                      },
                      "gregorian_date": "2024-01-01"
                    },
                    "date2": {
                      "ethiopian_date": {
                        "day": 21,
                        "year": 2017,
                        "month": 4,
                        "month_name": "Tahsas"
                      },
                      "gregorian_date": "2024-12-31"
                    },
                    "status": "success",
                    "direction": "date1_before_date2",
                    "days_between": 365
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true,
        "x-dakidarts-sample-response": {
          "date1": {
            "ethiopian_date": {
              "day": 22,
              "year": 2016,
              "month": 4,
              "month_name": "Tahsas"
            },
            "gregorian_date": "2024-01-01"
          },
          "date2": {
            "ethiopian_date": {
              "day": 21,
              "year": 2017,
              "month": 4,
              "month_name": "Tahsas"
            },
            "gregorian_date": "2024-12-31"
          },
          "status": "success",
          "direction": "date1_before_date2",
          "days_between": 365
        }
      },
      "post": {
        "summary": "Difference",
        "description": "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.",
        "operationId": "ethiopian-calendar_post_difference",
        "tags": [
          "Difference"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "date1": {
                    "type": "string",
                    "example": "2024-01-01",
                    "x-required-group": "conditional"
                  },
                  "date2": {
                    "type": "string",
                    "example": "2024-12-31",
                    "x-required-group": "conditional"
                  },
                  "from_ethiopian": {
                    "type": "object",
                    "example": {
                      "day": 1,
                      "year": 2016,
                      "month": 1
                    },
                    "x-required-group": "conditional"
                  },
                  "to_ethiopian": {
                    "type": "object",
                    "example": {
                      "day": 1,
                      "year": 2017,
                      "month": 1
                    },
                    "x-required-group": "conditional"
                  },
                  "lang": {
                    "type": "string",
                    "default": "en",
                    "example": "am"
                  }
                }
              }
            }
          }
        },
        "x-required-groups": {
          "conditional": [
            "date1",
            "date2",
            "from_ethiopian",
            "to_ethiopian"
          ]
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true
      }
    },
    "/time": {
      "get": {
        "summary": "Ethiopian Time",
        "description": "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.",
        "operationId": "ethiopian-calendar_get_time",
        "tags": [
          "Time"
        ],
        "parameters": [
          {
            "name": "time",
            "in": "query",
            "required": false,
            "description": "24-hour time (HH:MM, default: current time)",
            "schema": {
              "type": "string",
              "default": "current time",
              "example": "09:30"
            },
            "example": "09:30"
          },
          {
            "name": "tz",
            "in": "query",
            "required": false,
            "description": "IANA timezone",
            "schema": {
              "type": "string",
              "example": "Africa/Addis_Ababa"
            },
            "example": "Africa/Addis_Ababa"
          },
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language code (default: `en`)",
            "schema": {
              "type": "string",
              "default": "en",
              "example": "am"
            },
            "example": "am"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "status": "success",
                    "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.",
                    "standard_time": "09:30",
                    "ethiopian_time": {
                      "hour": 3,
                      "minute": 30,
                      "period": "morning",
                      "display": "3:30 morning",
                      "short_minutes": 1,
                      "minute_remainder": 0
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true,
        "x-dakidarts-sample-response": {
          "status": "success",
          "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.",
          "standard_time": "09:30",
          "ethiopian_time": {
            "hour": 3,
            "minute": 30,
            "period": "morning",
            "display": "3:30 morning",
            "short_minutes": 1,
            "minute_remainder": 0
          }
        }
      },
      "post": {
        "summary": "Ethiopian Time",
        "description": "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.",
        "operationId": "ethiopian-calendar_post_time",
        "tags": [
          "Time"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "time": {
                    "type": "string",
                    "default": "current time",
                    "example": "09:30"
                  },
                  "tz": {
                    "type": "string",
                    "example": "Africa/Addis_Ababa"
                  },
                  "lang": {
                    "type": "string",
                    "default": "en",
                    "example": "am"
                  }
                }
              }
            }
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true
      }
    },
    "/month-names": {
      "get": {
        "summary": "Month Names",
        "description": "Ethiopian month and weekday names in English, Ge'ez/Amharic, romanized Oromo, and romanized Tigrinya.",
        "operationId": "ethiopian-calendar_get_month-names",
        "tags": [
          "Month Names"
        ],
        "parameters": [
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Filter: `all` (default), `en`, `am`, `om`, or `ti`",
            "schema": {
              "type": "string",
              "example": "am"
            },
            "example": "am"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true
      }
    },
    "/batch": {
      "post": {
        "summary": "Batch",
        "description": "Batch-convert up to 100 dates in a single request. Choose a direction: `\"to-gregorian\"` (Ethiopian\u2192Gregorian) or `\"to-ethiopian\"` (Gregorian\u2192Ethiopian). Each item is converted independently \u2014 one invalid item fails only that item.",
        "operationId": "ethiopian-calendar_post_batch",
        "tags": [
          "Batch operations"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "dates": {
                    "type": "array",
                    "example": [
                      "2016-01-01"
                    ],
                    "items": {
                      "type": "string"
                    }
                  },
                  "direction": {
                    "type": "string",
                    "example": "ethiopian_to_gregorian"
                  }
                },
                "required": [
                  "dates",
                  "direction"
                ],
                "example": {
                  "dates": [
                    "2024-01-01"
                  ],
                  "direction": "gregorian_to_ethiopian"
                }
              }
            }
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true
      }
    }
  },
  "components": {
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "X-API-Key"
      }
    }
  },
  "security": [
    {
      "ApiKeyAuth": []
    }
  ]
}