Fasts & festivals of the month тАФ with tithi, paksha & masa
Hindu festivals are fixed not by the Gregorian date but by the tithi of the panchang тАФ which is why their dates change every year. Most fasts and festivals are based on the lunar month: each month is divided into the bright (Shukla) and dark (Krishna) fortnights, and the tithis from Pratipada to Purnima/Amavasya are formed by the Moon's motion. Thus Janmashtami always falls on Bhadrapada Krishna Ashtami, Diwali on Kartik Amavasya and Holi on Phalguna Purnima.
In fixing the date of a fast, the rule of Udaya Tithi (the tithi prevailing at sunrise) is primary тАФ the day belongs to the tithi current at sunrise. Some festivals are exceptions: for Janmashtami and Shivaratri the Nishita (midnight) tithi is taken, for Karwa Chauth the tithi at moonrise and for Ganesh Chaturthi the tithi at midday. This is why the same festival sometimes appears to be celebrated on two different days тАФ both calculations are correct by their own rule.
Note also that in North India the month is counted as Purnimanta (ending on the full moon) and in South and West India as Amanta (ending on the new moon) тАФ the name of the month changes but the festival's tithi stays the same. Sankranti-based festivals (Makar Sankranti, Pongal) follow the solar calendar, so they fall on almost the same Gregorian date every year.
The calendar below is generated from Swiss Ephemeris astronomical calculations тАФ every festival is shown with its tithi, paksha and month. You can also view the full Panchang, Shubh muhurat or Choghadiya for any day.