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.
https://api.dharun.devNo key needed for most600 units a minute, 3000 with a free keyThis page as MarkdownOne date in Indian calendars
GET/v1/dates/{date}
| Parameter | Description |
|---|---|
datepath, required | YYYY-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).
| Parameter | Description |
|---|---|
fromquery, required | Start date, YYYY-MM-DD (a date of birth for an age). |
toquery | End 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.