Docs / Dates and calendars

Indian date tools API

Financial and assessment year, quarter, the Saka, Tamil and Hijri dates, and ages.

For a date: the financial year (April to March), its quarter and half, the assessment year, the ISO week, the Indian national (Saka) date, the Tamil solar date, the Vikram Samvat year and the tabular Hijri date. And the span between two dates in years, months and days, for ages and tenures.

Base URL https://api.dharun.devNo key needed for most600 units a minute, 3000 with a free keyThis page as Markdown

One date in Indian calendars

GET/v1/dates/{date}

ParameterDescription
datepath, requiredYYYY-MM-DD, or today.

curl

curl "https://api.dharun.dev/v1/dates/2026-11-11?utm_medium=docs"

JavaScript

const response = await fetch("https://api.dharun.dev/v1/dates/2026-11-11?utm_medium=docs");
const body = await response.json();
if (!response.ok) throw new Error(body.error.message);
console.log(body.data);

Python

import requests

response = requests.get("https://api.dharun.dev/v1/dates/2026-11-11?utm_medium=docs", timeout=10)
body = response.json()
if not response.ok:
    raise RuntimeError(body["error"]["message"])
print(body["data"])
Try it here

Change the values and send the request from your browser. Needs JavaScript.

Response, with lists and long text shortened

{
  "data": {
    "date": "2026-11-11",
    "weekday": "Wednesday",
    "isoWeek": "2026-W46",
    "dayOfYear": 315,
    "leapYear": false,
    "financialYear": {
      "year": "2026-27",
      "starts": "2026-04-01",
      "ends": "2027-03-31",
      "quarter": "Q3",
      "quarterStarts": "2026-10-01",
      "quarterEnds": "2026-12-31",
      "half": "H2",
      "assessmentYear": "2027-28",
      "dayOfYear": 225,
      "daysLeft": 140
    },
    "saka": {
      "year": 1948,
      "month": 8,
      "monthName": "Kartika",
      "day": 20,
      "text": "20 Kartika 1948 Saka"
    },
    "hijri": {
      "year": 1448,
      "month": 5,
      "monthName": "Jumada al-Ula",
      "day": 30,
      "text": "30 Jumada al-Ula 1448 AH"
    },
    "tamil": {
      "month": "Aippasi",
      "tamil": "ஐப்பசி",
      "day": 25,
      "year": "Parabhava"
    },
    "vikramSamvat": 2083,
    "unix": 1794335400,
    "fromToday": {
      "from": "2026-11-14",
      "to": "2026-11-11",
      "years": 0,
      "months": 0,
      "days": 3,
      "totalDays": 3,
      "weeks": 0,
      "weekDays": 3,
      "text": "0 years, 0 months, 3 days",
      "negative": true
    }
  },
  "meta": {
    "note": "Saka is the Indian national calendar. The Hijri date is the tabular one and may differ by a day or two from the date set by the sighting of the moon. The Tamil …"
  }
}

Age and the span between dates

GET/v1/dates/diff

Whole years, months and days from one date to another, the total days and weeks, and the next anniversary (a birthday, say).

ParameterDescription
fromquery, requiredStart date, YYYY-MM-DD (a date of birth for an age).
toqueryEnd date, YYYY-MM-DD. Default today in India.

curl

curl "https://api.dharun.dev/v1/dates/diff?from=1995-08-15&to=2026-11-11&utm_medium=docs"

JavaScript

const response = await fetch("https://api.dharun.dev/v1/dates/diff?from=1995-08-15&to=2026-11-11&utm_medium=docs");
const body = await response.json();
if (!response.ok) throw new Error(body.error.message);
console.log(body.data);

Python

import requests

response = requests.get("https://api.dharun.dev/v1/dates/diff?from=1995-08-15&to=2026-11-11&utm_medium=docs", timeout=10)
body = response.json()
if not response.ok:
    raise RuntimeError(body["error"]["message"])
print(body["data"])
Try it here

Change the values and send the request from your browser. Needs JavaScript.

Using an AI assistant? Connect the MCP server and it can call this API by itself. Want every endpoint on one bench? Open the playground.