LifeAstroAPILifeAstroAPI

Why Hindu festival dates differ by city

Published 2026-10-11

In 2027, Diwali falls on 29 October in New Delhi but on 28 October in Toronto and London. Neither date is a mistake. Hindu festivals are fixed by the Moon and the Sun as seen from a particular place, and the same sky gives different civil dates in different cities. If your app shows one city's dates to everyone, some of your users are fasting or celebrating on the wrong day.

The same festival, two cities, 2027

FestivalNew DelhiTorontoWhat decides it
Diwali29 Oct28 OctAmavasya must cover the evening pradosh kaal
Ganesh Chaturthi4 Sep3 SepChaturthi must be current at midday
Rama Navami15 Apr14 AprNavami must be current at madhyahna
Raksha Bandhan17 Aug16 Augthe afternoon must be free of Bhadra
Jaya Ekadashi17 Feb16 Febthe tithi current at local sunrise
Makara Sankranti15 Jan14 Janthe Sun’s ingress, moved to the next day if after sunset

All dates in this article come from LifeAstroAPI for New Delhi (Asia/Kolkata), Toronto (America/Toronto) and Sydney (Australia/Sydney). You can check every one on the free city calendars.

1. A tithi is a moment in the sky, not a date

A tithi is a 12° step in the Moon's lead over the Sun. It starts and ends at the same instant everywhere on Earth. What changes from city to city is the local clock: Amavasya that begins at 20:49 in New Delhi begins at 11:19 the same day in Toronto. Whether that instant lands before or after the moment a festival “looks at” decides the date.

2. Each festival looks at a different moment of the day

Most vrats take the tithi current at local sunrise. Many festivals do not. Their classical rules look at the tithi during the evening twilight (pradosh), at midday (madhyahna), in the afternoon (aparahna), at midnight (nishita) or at moonrise. Sunrise, sunset and moonrise are local, so every one of these moments moves with the city.

Diwali: Amavasya must cover pradosh kaal

Lakshmi Puja is performed in the evening twilight, so Diwali is the day Amavasya covers the pradosh kaal. In 2027:

  • New Delhi: Amavasya runs from 20:49 on 28 October to 19:07 on 29 October. On the 28th it starts after that evening's window (17:39–19:15) has ended; on the 29th it covers 17:39–19:07 of the window. Diwali is on 29 October.
  • Toronto: the same Amavasya starts at 11:19 on 28 October, so it covers that evening's whole pradosh kaal (18:14–19:50). Diwali is on 28 October.

Ganesh Chaturthi: Chaturthi at midday

Ganesh puja is done around midday. In New Delhi, Shukla Chaturthi begins at 14:20 on 3 September, after midday, and lasts until 12:26 on the 4th, so the festival is on 4 September. In Toronto the same tithi begins at 04:50 on 3 September and covers that midday: 3 September.

Jaya Ekadashi: the tithi at sunrise, and a tithi that skips a sunrise

Ekadashi follows the tithi at local sunrise. In New Delhi, Ekadashi runs from 20:20 on 16 February to 17:32 on the 17th, so it is current at sunrise on the 17th: 17 February. In Toronto it runs from 09:50 on 16 February to 07:02 on the 17th, ending a few minutes before sunrise. It never touches a sunrise (a kshaya tithi), so it is observed on the day it begins: 16 February. The parana windows differ too: 06:57–10:43 on the 18th in New Delhi, 14:18–17:51 on the 17th in Toronto.

Makara Sankranti: the Sun's ingress and the sunset rule

Sankranti is the moment the Sun enters a sidereal sign, which is again one instant worldwide. In January 2027 the Sun enters Makara at 21:06 on 14 January in New Delhi, after sunset, so the observance moves to the next day: 15 January. In Toronto that instant is 10:36 in the morning of 14 January: 14 January.

Raksha Bandhan: the Bhadra rule

The rakhi is tied in the afternoon on Purnima, but not during Bhadra (Vishti karana). In Toronto, Purnima begins at 00:59 on 16 August and Bhadra ends at 14:14, before that afternoon's window (14:45–17:33): 16 August. In New Delhi, Purnima begins at 10:29 on 16 August and Bhadra lasts until 23:44, covering the whole afternoon, so the festival moves to 17 August, while Purnima is still current that morning.

Holi in Sydney: a day later than New Delhi

Holika Dahan is the evening Purnima covers pradosh kaal, and Holi is the next day. In New Delhi, Purnima begins at 18:22 on 21 March and covers that evening (18:33–20:09): Holika Dahan on 21 March, Holi on 22 March. In Sydney, Purnima begins at 23:52 on 21 March, after that evening's window, so Holika Dahan is on 22 March and Holi on 23 March.

3. Eclipses depend on where you stand

The total solar eclipse of 2 August 2027 is visible (partially) from London and New Delhi but not from Toronto, where it happens at night. Sutak is observed only where an eclipse is visible, so a calendar for Toronto should not list a sutak for it. LifeAstroAPI judges visibility for the requested location.

What this means if you build a calendar

  • Never hard-code one city's dates. Compute them for each user's latitude, longitude and timezone.
  • Use IANA timezones, such as America/Toronto, not fixed offsets, so daylight saving is handled.
  • Show the reason. Users trust a date more when they can see the window that decided it.

One call returns a month of festivals for any place, each with the window that decided its date:

curl -H "Authorization: Bearer $LIFEASTRO_API_KEY" \
  "https://api.lifeastroapi.com/v1/festivals/month?year=2027&month=10&lat=43.6532&lon=-79.3832&tz=America/Toronto"

A complete example in TypeScript is in the tutorial Build a Hindu calendar feature in TypeScript. The rules behind every date are described on Hindu calendar, festivals and vrat, and Accuracy explains how the dates are checked against printed panchang calendars of 14 cities.

Correct festival dates for every user

One call returns a month of festivals for any city, each with the window that decided its date.

curl -H "Authorization: Bearer $LIFEASTRO_API_KEY" \
  "https://api.lifeastroapi.com/v1/festivals/month?year=2027&month=10&lat=43.6532&lon=-79.3832&tz=America/Toronto"