Bug 1027725 - Make calendar app async operations use promises

**protip:** `Array#forEach` accepts `this` as second argument