LifeAstroAPILifeAstroAPI

Festival and vrat dates you can print.

We took the printed Hindu calendars of 14 cities on four continents — 4,427 festival, vrat, Sankranti, Ekadashi, Pradosh, Purnima, Amavasya and eclipse entries for a full year — and checked that LifeAstroAPI produces every one of them on the same civil date. It does. The check runs as an automated test on every change, so it stays true.

4,427 / 4,427
printed entries reproduced
14
cities, −38° to +52° latitude
±1 min
tithi & nakshatra end-times vs print
100 %
enforced by the test suite

The 14 cities

Chosen to cover both month conventions, both hemispheres, daylight-saving zones and the latitudes where crescent sighting and moonrise-based vrats are hardest.

CityCountryTimezoneMonth conventionResult
DelhiIndiaISTPurnimanta every entry
ChennaiIndiaISTAmanta every entry
BengaluruIndiaISTAmanta every entry
HyderabadIndiaISTAmanta every entry
PuneIndiaISTAmanta every entry
DubaiUAEGSTAmanta every entry
SingaporeSingaporeSGTAmanta every entry
LondonUKGMT / BSTAmanta every entry
MelbourneAustraliaAEST / AEDTAmanta every entry
SydneyAustraliaAEST / AEDTAmanta every entry
San FranciscoUSAPST / PDTAmanta every entry
SeattleUSAPST / PDTAmanta every entry
TorontoCanadaEST / EDTAmanta every entry
BramptonCanadaEST / EDTAmanta every entry

Two entries a printed calendar itself lists inconsistently between two neighbouring cities on identical inputs, and one observance that needs the heliacal rising of Canopus, are excluded from the count and documented.

What is covered

  • Every named Ekadashi — smarta, plus the Vaishnava and Gauna day when they differ, each with its parana window
  • Pradosh Vrat named by weekday (Soma, Bhauma, Shani …)
  • Sankashti and Vinayaka Chaturthi with their monthly names, Angarki
  • Every Purnima and Amavasya: Somavati, Shani, Darsha, Anvadhan, Ishti
  • Chandra Darshana, Masik Shivaratri, Durgashtami, Kalashtami, Skanda Shashthi, Masik Karthigai
  • All 12 Sankrantis with the correct day for Makara and Karka
  • Diwali, Holi, Navratri, Dussehra, Janmashtami, Raksha Bandhan (with the Bhadra rule), Karwa Chauth, Ganesh Chaturthi, Maha Shivaratri …
  • Regional observances: Tamil, Kerala, Marathi, Telugu, Kannada, Bengali, Odia, Assamese, Gujarati, Punjabi
  • Shraddha dates — all 16 Pitru Paksha tithis, Bharani, Matri Navami, Magha
  • Lunar and fixed-date jayantis, national days, solar and lunar eclipses with local contact times and sutak

How the dates are computed

Everything is formula-based — nothing is looked up from a table for a given year. The same rules run for 1800–2200, with or without an adhik maas, at any latitude and longitude.

Civil day
Anchored at local sunrise. Tithis and nakshatras are time segments matched to the day by the moment each vrat demands.
Observance moments
Udaya (sunrise) by default; pradosh, nishita, moonrise, aparahna, madhyahna, arunodaya or sunset where the classical rule asks for it.
Kshaya & vriddhi
A tithi that skips a sunrise is observed on the day it occurs; one that spans two sunrises resolves per rule (first day, or the second for Ekadashi and Janmashtami).
Adhik maas
Detected astronomically. Regular festivals move to the nija month; Padmini / Parama Ekadashi and Vibhuvana Sankashti appear in the adhik month.
Month naming
Amanta is computed astronomically; purnimanta (North India) or amanta (South, West, East) labels on request. Dates never change with the convention.
Location
Sunrise, sunset, moonrise and pradosh kaal for the given latitude, longitude and timezone — so Karwa Chauth or a Sankashti can legitimately fall on different days in Delhi, London and Toronto.

Astronomy checked against NASA and JPL

Festival dates are only as good as the astronomy under them, so we also compare the API with independent public references: NASA JPL Horizons (the DE441 ephemeris) for planet positions and rise/set times, and NASA's Five Millennium Canon of eclipses. The script, its output and every individual comparison are published below, so you can rerun it with your own key.

0.05″
median planet difference, 240 positions
9 s
largest sunrise / sunset difference, 48 events
44 / 44
eclipses 2021–2030 found, same type
6.8 s
median eclipse-time difference
CheckReferenceComparedMedianLargest
Sun longitudeJPL Horizons24 moments, 1950–20500.056″0.192″
Moon longitudeJPL Horizons24 moments, 1950–20500.122″2.769″
Mercury longitudeJPL Horizons24 moments, 1950–20500.056″0.238″
Venus longitudeJPL Horizons24 moments, 1950–20500.056″0.168″
Mars longitudeJPL Horizons24 moments, 1950–20500.051″0.095″
Jupiter longitudeJPL Horizons24 moments, 1950–20500.048″0.092″
Saturn longitudeJPL Horizons24 moments, 1950–20500.048″0.093″
Uranus longitudeJPL Horizons24 moments, 1950–20500.048″0.092″
Neptune longitudeJPL Horizons24 moments, 1950–20500.048″0.093″
Pluto longitudeJPL Horizons24 moments, 1950–20500.054″0.094″
sunriseJPL Horizons, upper limb24 events, 6 cities4.7 s8.4 s
sunsetJPL Horizons, upper limb24 events, 6 cities4.9 s8.6 s
moonriseJPL Horizons, upper limb24 events, 6 cities4.7 s9.5 s
moonsetJPL Horizons, upper limb24 events, 6 cities5.1 s9.6 s
Greatest eclipseNASA eclipse canon44 eclipses, 2021–20306.8 s11.7 s
  • Planets are geocentric apparent ecliptic longitudes of date. For the Vedic grahas the check adds the returned ayanamsa back to the sidereal longitude, so it tests the same values your app receives. 1″ is 1/3600 of a degree; a nakshatra pada is 12,000″ wide.
  • The Moon after 2030 drifts to about 3″ by 2050. That is not an ephemeris error. Future dates depend on a forecast of Earth's rotation (ΔT), and JPL and the Swiss Ephemeris use different forecasts. 3″ of Moon is about 6 seconds of time.
  • Rise and set are compared with the moment JPL puts the top edge of the disc on the refracted horizon, the standard civil definition. The remaining seconds come from the two atmospheric refraction models.
  • Eclipse times differ by a few seconds mainly because NASA's catalog converts its times with ΔT values forecast years ago (for example 76 s for 2027), while the measured value is about 69 s. Every eclipse in the decade is found and classified the same way.
  • Not covered here: ayanamsa is a convention, not a measurement (Lahiri is the default), and jyotish rules are covered by the festival check above.
export LIFEASTRO_API_KEY=YOUR_API_KEY
python3 accuracy_benchmark.py --only planets   # 480 credits; --only riseset (480) and --only eclipses (80) fit the free tier on other days

Last run: 2026-10-11, on a local copy of the exact build that serves api.lifeastroapi.com, so it used no credits. The code and ephemeris files are the same, so a run against the public API should give the same numbers.

What we measure, honestly

  • Dates: 100 % of supported entries, in every city, on the same civil date.
  • Tithi, nakshatra and moon-sign end-times: the engine agrees with printed values to the minute in 92 % of cells and within one minute in the rest; printed calendars round a few seconds differently.
  • Sunrise and sunset: to the printed minute in 77–95 % of cells depending on the city, within one minute otherwise.
  • Ephemeris: Swiss Ephemeris, Lahiri ayanamsa by default. Planet positions agree with NASA JPL Horizons to well under one arc-second (see the astronomy check).

Build a calendar your users can trust.

One call per month returns the printable calendar page — tithi, nakshatra, moon-sign end-times, moonrise, samvat and every festival of each day — for any place on earth, in Hindi and seven regional languages.