seriously. I built an app before doing graffitigeo and it never launched because calendars are harder than they look to build (I wasn't using a framework, just building purely from scratch at the time in php and javascript).
i was building an online booking system, so it had a ton of custom calendar and payment capabilities built into the calendar. i hand-coded everything, right down to calculating whether it was a leap year or not, and how many days were in the existing month. stupid idea, should have just used a library to do it (although not many were available at the time).