this is one functionality that I will be needing in my project. I would like to understand more than just patch in the code.
Sample calendar from the link looks cool.