
Ganesh Chaturthi falls in late August some years and early September in others. Diwali drifts across a three- to four-week window depending on the year. To anyone used to a fixed Gregorian holiday calendar โ where Christmas is always December 25 โ this looks almost arbitrary. It isn't. It's the direct, predictable result of how the underlying calendar is built, which is worth actually understanding rather than just looking up each year as a black box.
The calendar runs on two clocks at once
The Gregorian calendar tracks one thing: the Earth's position around the sun, divided into fixed-length months that don't correspond to anything the moon is doing. The traditional Hindu calendar is lunisolar โ it tracks the moon's phase for most festival timing, while still keeping the solar year in view for seasonal and transit-based observances. Most of the date-shifting confusion comes from not realizing two different clocks are running simultaneously, each producing a different kind of festival.
The tithi: the unit most festivals are actually pinned to
A tithi is the core time unit for the lunar side of the calendar, and it isn't a fixed 24-hour day โ it's defined by the angular distance between the sun and moon (each tithi covers 12 degrees of that angle), and its length varies with the moon's actual orbital speed rather than staying constant. Because of that, a tithi doesn't line up cleanly with a civil calendar day at all. Festivals like Ganesh Chaturthi or Rama Navami aren't assigned to "August 27" โ they're assigned to a specific tithi (Chaturthi, Navami, Ekadashi, Purnima, Amavasya) within a specific lunar month. Because that tithi drifts relative to the Gregorian calendar year over year, the festival's civil date drifts along with it.
Festivals that move noticeably from year to year on the Gregorian calendar are, almost without exception, tithi-based: Rama Navami, Ganesh Chaturthi, Janmashtami, Maha Shivaratri, Ekadashi fasts, Guru Purnima, Raksha Bandhan, Karva Chauth among them.
Solar transits: the festivals that barely move
Not every observance runs on the lunar clock. Some are tied to the sun's movement through the zodiac โ most notably Sankranti, the sun's entry into a new sign โ and these track much more closely with the solar year we already use day to day. That's why Makara Sankranti lands around mid-January almost every year, while a tithi-based festival in the same season can shift by two or three weeks. Vishu, Tamil New Year, and several regional harvest festivals fall into this more solar-anchored category.
So the useful mental shortcut is: a festival that moves a lot year to year is almost certainly lunar/tithi-based; a festival that stays close to the same date is almost certainly solar-transit based. Once that distinction clicks, the calendar stops feeling random.
Why two trustworthy sources can still disagree
It's common to see a temple calendar, a relative's message, and an app all list slightly different dates for the same festival, and that's not usually a sign that someone made an error. A few structural reasons drive this: panchangs differ by region, sunrise times shift the calculation depending on location, some traditions follow amanta (new-moon-ending) lunar months while others follow purnimanta (full-moon-ending) ones, and different authorities apply different rules for which civil day "owns" an observance when a tithi spans two days. None of that means the underlying system is broken โ it means several legitimate calendrical traditions are being applied through different lenses.
What this means practically for home puja
The practical takeaway is simple even if the mechanics aren't: a festival's name and significance stay constant year to year, but its Gregorian date has to be checked fresh each year against a panchang or a source your family trusts, rather than assumed from memory or last year's date. This matters most for festival pujas, tithi-based vrats, Ekadashi fasting, and Purnima or Amavasya observances โ exactly the category of festival most prone to shifting.
For families abroad, this gets an extra layer of friction: time zone differences can shift which civil day a tithi falls on relative to India, on top of the usual regional calendar variation. Seeing three different dates from three different sources is normal in that situation, not a sign that the calendar itself is unreliable.
If you do end up acting on a date that turns out to be off, see what if I miss a festival date for how to handle that without treating it as a bigger problem than it is.
The pattern underneath the apparent randomness
None of this is arbitrary, even though it can look that way from outside a fixed Gregorian framework. Tithi-based festivals move because they're tracking the moon's relationship to the sun, not a civil month. Solar-transit festivals barely move because they're tracking the same solar year the Gregorian calendar approximates. Regional differences in published dates usually trace back to genuinely different, equally valid calendrical traditions rather than to error. Once those three things are visible, "why does this date keep moving" stops being a mystery and starts being just how a lunisolar calendar works.

