add month controller and refactor common calendar code to calendar utils