Calendar

This is a huge pull request. This adds an events calendar that was extracted from [aelogica/aat](https://github.com/aelogica/aat).