Hardware design is in FreeCAD 1.0, with heavy use of the gears workbench.

The interesting part was working out how to make a printable gear train when the prime factors of 365 (days) are 5 and 73.  Then it hit me: don't need to use integer ratios, so the fun gear in the year train is 18.25:1.

Software is Arduino, using the Adafruit_STSPIN220 library.

Of course I had to make it too complicated, so wound up with the ability to tell it to seek from one day/hour/minute/second to another.  Didn't implement going in reverse, though there's a hack commented out that'll do that if you really have to.  Part of the reason for this is that I glued the retainers in place so they wouldn't get shrugged off by the gears.