Methodology and accuracy

How fatcalendar calculates panchang and traditional dates: jotish.ai ephemeris, rule arithmetic, permanent caching, and accuracy caveats including provisional Hijri dates.

Principles

  1. One source of astronomy. Sunrise, sunset, moonrise, tithi, nakshatra, yoga, karana, lunar months and solar ingresses (sankranti) come from the jotish.ai ephemeris API. We never substitute our own planetary theory.
  2. Rules on top, documented. Everything else is rule arithmetic over that output: Choghadiya, Rahu Kalam, Yamagandam, Gulika, Durmuhurtham, Varjyam and Amrita windows; Tamil, Malayalam, Bengali and Punjabi solar dates; festival dates; Hijri estimates.
  3. Exceptions. Four things jotish cannot supply and are computed locally: the Easter computus, fixed Nanakshahi arithmetic, the tabular Hijri fallback, and prayer-time twilight geometry.
  4. Never recompute. Astronomical results are immutable. Each calculation is cached permanently in Cloudflare KV keyed by the canonical request (endpoint, date and location quantised to 0.1 degree and time zone), with in-flight de-duplication, so the same question is never asked twice.

Tradition semantics

IdNameRegionDefault languageVariants
gregorianGregorianWorldwideen-
teluguTeluguAndhra Pradesh, Telanganate-
tamilTamilTamil Nadutathirukanitha, vakya
kannadaKannadaKarnatakaknsmarta, madhva
malayalamMalayalamKeralamldefault, nazhika
marathiMarathiMaharashtramr-
gujaratiGujaratiGujaratgu-
punjabiPunjabiPunjabpananakshahi, desi, hindu
bengaliBengaliWest Bengal, Bangladeshbnwest-bengal-bisuddha, west-bengal-gupta, bangladesh
hindiNorth Indian (Hindi)North Indiahipurnimanta, amanta, varanasi, braj, awadh
muslimIndian Muslim (Hijri)Indiaurindia, astronomical, tabular, hanafi, shia
christianChristianWorldwideenwestern, orthodox, catholic, protestant

Variants change the rule set within a tradition (for example punjabi: nanakshahi / desi / hindu). Pass the id as variant. Variant ids: tamil: thirukanitha|vakya; kannada: smarta|madhva; malayalam: default|nazhika; punjabi: nanakshahi|desi|hindu; bengali: west-bengal-bisuddha|west-bengal-gupta|bangladesh; hindi: purnimanta|amanta|varanasi|braj|awadh; muslim: india|astronomical|tabular|hanafi|shia; christian: western|orthodox|catholic|protestant.

The panchang day

A panchang day runs from sunrise to the next sunrise at your location. The tithi, nakshatra, yoga and karana "of the day" are those prevailing at sunrise; because they change during the day we also list every one that touches it, with end times. A tithi can be skipped (kshaya) or repeated (adhika) - the data flags this.

Lunar and solar months

  • Amanta months end on Amavasya (Telugu, Kannada, Marathi, Gujarati-Vikram conventions per tradition table). Purnimanta months end on Purnima (North India).
  • Solar calendars (Tamil, Malayalam, Bengali, Punjabi Desi) change month at sankranti; the civil day on which a month begins follows the tradition's local rule (for example, sankranti before or after a sunset cut-off).

Festival dates

Each festival has a rule stating why it falls on that date, such as "Kartika Amavasya at pradosha". Almanacs and sects (for example Smarta and Madhva Ekadashi) sometimes differ; use variant where supported.

Hijri calendar and moon sighting

Hijri days begin at sunset. The start of a month depends on the physical sighting of the crescent, which varies by country and cannot be known in advance. fatcalendar therefore shows provisional Hijri dates (hijri.provisional = true) based on a stated convention (hijri.convention: india, umm-al-qura, tabular). Treat dates for Ramadan and the two Eids as estimates until announced locally.

Accuracy caveats

  • Times are computed for the coordinates you supply, quantised to 0.1 degree (up to about 1 minute difference in sunrise).
  • Elevation and atmospheric refraction follow jotish.ai defaults.
  • Different almanacs can disagree by a day on festivals when a tithi straddles the cut-off time.
  • Historical and far-future years are computed but have not been checked against printed almanacs.
  • Not a substitute for a religious authority.

Caching and freshness

Responses carry Cache-Control: public, max-age=300, s-maxage=86400, stale-while-revalidate=604800 when the location was explicit, and private, max-age=60 when it was inferred from your IP.

How to cite

fatcalendar.com - multi-tradition calendar and panchang (data: jotish.ai ephemeris). Example: "Telugu calendar for 8 November 2026, fatcalendar.com, retrieved 2026-11-08."