.then((tbEvents) => {
      if (tbEvents.length === 0) {
        return Promise.reject(new Error('未找到任何日程,请在项目中新建'))
      }

      for (let tbEvent of tbEvents) {
        let event = {
          id: tbEvent._id,
          title: tbEvent.title,
          start: tbEvent.startDate,
          end: tbEvent.endDate,
          memberIds: Vue._.intersection(tbEvent.involveMembers, Vue._.keys(members)),
          url: `https://www.teambition.com/project/${state.params.id}/events/event/${tbEvent._id}`
        }

        if (Vue._.isEmpty(tbEvent.tagIds)) {
          if (tbEvent.location) {
            ensureResource(tbEvent.location)
            event.resourceIds = [tbEvent.location]
          } else {
            ensureResource('null', { title: '其他资源', level_0: '其他资源' })
            event.resourceIds = ['null']
          }
        } else {
          event.resourceIds = tbEvent.tagIds
        }

        for (let id of event.memberIds) members[id].eventCount += 1
        for (let id of event.resourceIds) resources[id].eventCount += 1

        events.push(event)
      }
    })