add 100% coverage to calendar and fix a minor bug