Slim calendar

I have refactored calendar to share more code with itself. I hope it's okay with you :smile: