docs: function controller($$mdEventCalendarUtil, $element, $attrs) {
      /*jshint validthis:true*/
      var vm = this;
  
      vm.$element = $element;
      vm.labelProperty = $attrs.mdLabel || 'title';
      vm.selectedEvents = [];
      vm.today = $$mdEventCalendarUtil.createDateAtMidnight();
      vm.date = $$mdEventCalendarUtil.createDateAtMidnight();
      vm.isToday = $$mdEventCalendarUtil.isSameDay(vm.date, new Date());
      vm.monthDisplay = $$mdEventCalendarUtil.months[vm.date.getMonth()];
      vm.yearDisplay = vm.date.getFullYear();
      vm.isTodayDisabled = true;
      vm.showCreateLink = $attrs.mdShowCreateLink !== undefined && $attrs.mdShowCreateLink !== 'false';
      vm.nextMonth = nextMonth;
      vm.previousMonth = previousMonth;
      vm.selectEvent = selectEvent;
      vm.setToday = setToday;
      vm.autoHeight = $attrs.autoHeight !== undefined;
      vm.fitted = $attrs.fitted !== undefined;
      vm.offset = vm.autoHeight === false || $attrs.autoHeight === '' || isNaN($attrs.autoHeight.replace('px', '')) ? 0 : parseInt($attrs.autoHeight.replace('px', ''));
  
  
      function nextMonth() {
        vm.date = $$mdEventCalendarUtil.getDateInNextMonth(vm.date);
        vm.monthDisplay = $$mdEventCalendarUtil.months[vm.date.getMonth()];
        vm.yearDisplay = vm.date.getFullYear();
        vm.isTodayDisabled = vm.date.getMonth() === (new Date()).getMonth();
      }
  
  
      function previousMonth() {
        vm.date = $$mdEventCalendarUtil.getDateInPreviousMonth(vm.date);
        vm.monthDisplay = $$mdEventCalendarUtil.months[vm.date.getMonth()];
        vm.yearDisplay = vm.date.getFullYear();
        vm.isTodayDisabled = vm.date.getMonth() === (new Date()).getMonth();
      }
  
      function setToday() {
        vm.date = new Date();
        vm.monthDisplay = $$mdEventCalendarUtil.months[vm.date.getMonth()];
        vm.yearDisplay = vm.date.getFullYear();
        vm.isTodayDisabled = true;
      }
  
  
      function selectEvent(e, id) {
        // TODO create hashkeys for all events and store in reference object
        var value = vm.events.filter(function (item) {
          return item.$$mdEventId === id;
        });
  
        if (vm.ngModelCtrl) {
          vm.ngModelCtrl.$setViewValue(value[0]);
          vm.ngModelCtrl.$render();
        }
        vm.callEventClick(e, value[0]);
  
        return true;
      }
    }