InDesign is best. The only thing that changes is the starting day of the month. The dates don't change (exception Leap Year). Draw your grids how you like. I just use a table. Then layer tabbed text over it with line spacing set for row height. Each year strip line returns from the month and add or remove tabs to start on the correct day of week. Then run a GREP: FIND \t\d*\t\d*\t\d*\t\d*\t\d*\t\d*\t\d* and CHANGE TO $0\r. That will put returns back in after every 7th tab and date*. Be sure to put your cursor at the very beginning of the paragraph before running the GREP. You can reflow a whole year in a few minutes.
*NOTE: GREP shown assumes dates tabbed with leading tab ^tNN ^tNN.