$ curl -H 'Accept: application/json' \
https://ahargana.org/delhi/festivals/2025/diwali-lakshmi-puja
{
"id": "/delhi/festivals/2025",
"place": {
"id": "1273294",
"slug": "delhi",
"name": "Delhi",
"region": "India",
"country": "IN",
"lat": 28.65195,
"lon": 77.23149,
"elevation_m": 227,
"tz": "Asia/Kolkata"
},
"year": 2025,
"tradition": "smarta",
"method": "pac-rp@2026.1",
"ruleset": "2026.3-draft",
"rulings": [
{
"id": "/delhi/festivals/2025/diwali-lakshmi-puja",
"festival": "diwali-lakshmi-puja",
"name": "Lakṣmī Pūjā",
"tradition": "smarta",
"place": "1273294",
"year": 2025,
"local_date": "2025-10-20",
"confidence": "boundary",
"boundary_reasons": [
"tie-break-unstated"
],
"boundary_margin_s": 601,
"anga": {
"type": "tithi",
"index": 29,
"key": "amavasya",
"name": "Amāvasyā",
"start": {
"local": "2025-10-20T15:45:27+05:30",
"utc": "2025-10-20T10:15:27Z",
"ms": 1760955327081.2507
},
"end": {
"local": "2025-10-21T17:55:10+05:30",
"utc": "2025-10-21T12:25:10Z",
"ms": 1761049510434.19
},
"month": {
"amanta": 6,
"purnimanta": 7,
"adhika": false,
"amanta_name": "Āśvina",
"purnimanta_name": "Kārtika"
}
},
"span": {
"of": "tithi",
"start": {
"local": "2025-10-20T15:45:27+05:30",
"utc": "2025-10-20T10:15:27Z",
"ms": 1760955327081.2507
},
"end": {
"local": "2025-10-21T17:55:10+05:30",
"utc": "2025-10-21T12:25:10Z",
"ms": 1761049510434.19
}
},
"kaala": "pradosha",
"days": [
{
"local_date": "2025-10-20",
"window": {
"start": {
"local": "2025-10-20T17:46:08+05:30",
"utc": "2025-10-20T12:16:08Z",
"ms": 1760962567859.264
},
"end": {
"local": "2025-10-20T19:27:26+05:30",
"utc": "2025-10-20T13:57:26Z",
"ms": 1760968645624.3972
}
},
"covered_min": 101,
"window_min": 101,
"qualifies": true
},
{
"local_date": "2025-10-21",
"window": {
"start": {
"local": "2025-10-21T17:45:10+05:30",
"utc": "2025-10-21T12:15:10Z",
"ms": 1761048909912.453
},
"end": {
"local": "2025-10-21T19:26:41+05:30",
"utc": "2025-10-21T13:56:41Z",
"ms": 1761055000579.7822
}
},
"covered_min": 10,
"window_min": 102,
"qualifies": true
}
],
"decided_by": "greater-coverage",
"explanation": [
{
"step": "anga",
"text": "Amāvasyā runs from 15:45 on Mon 20 Oct to 17:55 on Tue 21 Oct.",
"fact": "2025-10-20T10:15:27Z → 2025-10-21T12:25:10Z"
},
{
"step": "kaala",
"text": "Pradoṣa is 2 muhūrtas after sunset: 17:46–19:27 on the 20th, 17:45–19:27 on the 21st.",
"fact": "pradosha: night-muhurta-1-2 · sunrise and sunset: upper limb, 31′ + 16′"
},
{
"step": "rule",
"text": "Amāvasyā must be present during pradoṣa. It covers 101 of 101 minutes on the 20th and 10 of 102 on the 21st.",
"fact": "Calendar Reform Committee 1955, General Rules for Religious Festivals, p. 104"
},
{
"step": "tie_break",
"text": "Both evenings qualify and the rule marks neither. The one covered longer is ruled, as a boundary.",
"fact": "priority: unstated → greater-coverage · margin 601 s"
},
{
"step": "ruling",
"text": "Lakṣmī Pūjā, Delhi, 2025: Monday 20 October.",
"fact": "confidence: boundary (tie-break-unstated)"
}
],
"rule": {
"kind": "lunar",
"id": "diwali-lakshmi-puja",
"references": [
{
"text": "Calendar Reform Committee 1955, General Rules for Religious Festivals",
"locator": "p. 104",
"url": "https://archive.org/details/calendar_reform_comittee_report",
"quote": "K 30 Kali puja (nisithavyapini), Dipavali or Diwali (pradosa), Mahalaksmipuja (pradosa)"
}
],
"kaala": "pradosha",
"priority": "unstated",
"when_absent": "unstated"
},
"alternatives": [
{
"kind": "profile",
"profile": "classical@2026.1",
"local_date": "2025-10-20",
"confidence": "boundary"
},
{
"kind": "profile",
"profile": "compat-drikpanchang@2026.1",
"local_date": "2025-10-20",
"confidence": "boundary"
},
{
"kind": "institution",
"institution": {
"id": "nse",
"name": "National Stock Exchange"
},
"local_dates": [
"2025-10-21"
],
"statement": "Muhūrat trading, circular of 22 Sep 2025",
"source_url": "https://www.business-standard.com/markets/news/nse-to-hold-one-hour-diwali-muhurat-trading-session-on-october-21-125092200907_1.html",
"captured_at": "2026-09-11"
},
{
"kind": "institution",
"institution": {
"id": "google-calendar-in",
"name": "Google Calendar"
},
"local_dates": [
"2025-10-20"
],
"statement": "Holidays in India feed",
"source_url": "https://calendar.google.com/calendar/ical/en.indian%23holiday%40group.v.calendar.google.com/public/basic.ics",
"captured_at": "2026-09-11"
},
{
"kind": "institution",
"institution": {
"id": "apple-icloud-in",
"name": "Apple iCloud"
},
"local_dates": [
"2025-10-20",
"2025-10-21"
],
"statement": "India Holidays feed, listed twice",
"source_url": "https://calendars.icloud.com/holidays/in_en-in.ics",
"captured_at": "2026-09-11"
},
{
"kind": "institution",
"institution": {
"id": "rashtriya-panchang",
"name": "Rashtriya Panchang"
},
"local_dates": [
"2025-10-20"
],
"statement": "Principal festivals, 2025-26",
"source_url": "https://packolkata.imd.gov.in/rashtriya-panchang-english.php",
"captured_at": "2026-11-10"
}
],
"quote": "In Delhi, Lakṣmī Pūjā (Diwali) 2025 falls on Monday 20 October. Amāvasyā runs from 15:45 on Mon 20 Oct to 17:55 on Tue 21 Oct and covers all of pradoṣa that evening. It also reaches the next evening for 10 minutes; the rule does not say which to take, and the one covered longer is ruled: treat the date as contested. National Stock Exchange recorded 21 October (Muhūrat trading, circular of 22 Sep 2025). Apple iCloud recorded 20 October and 21 October (India Holidays feed, listed twice).",
"cite": "https://ahargana.org/delhi/festivals/2025/diwali-lakshmi-puja",
"method": "pac-rp@2026.1",
"engine": {
"version": "0.1.0",
"ruleset": "2026.3-draft",
"kernel": "de440-1900-2100",
"kernel_sha256": "7eef444f9e5bd8786b8b5b72e775ecc376991b953a6246ec7a49d2c37434ea74",
"tzdata": "2026f"
}
}
],
"engine": {
"version": "0.1.0",
"ruleset": "2026.3-draft",
"kernel": "de440-1900-2100",
"kernel_sha256": "7eef444f9e5bd8786b8b5b72e775ecc376991b953a6246ec7a49d2c37434ea74",
"tzdata": "2026f"
}
}Same resource, same bytes for the same inputs. ETag is the hash of engine, ruleset, kernel and request.