I'm not in love with having `self.generate` and `generate` methods in Calendar, but I could easily be convinced that it's a good idea