     {courseId} = params
 
     {displayAs} = @state
-    {date, startAt, endAt} = @getDateStates()
+    {date, startAt, endAt, termStart, termEnd} = @getDateStates()
 
     course  = CourseStore.get(courseId)
     hasPeriods = PH.hasPeriods(course)
 
     loadPlansList = _.partial(TeacherTaskPlanStore.getActiveCoursePlans, courseId)
-    loadedCalendarProps = {loadPlansList, courseId, date, displayAs, hasPeriods, params}
+    loadedCalendarProps = {
+      loadPlansList, courseId, date, displayAs, hasPeriods, params, termStart, termEnd
+    }
     loadingCalendarProps = if hasPeriods
       {
         loadPlansList,

      displayAs: 'month'

  getDateStates: (state) ->
    date = @getDateFromParams()

    bounds = @getBoundsForDate(date, state)
    _.extend({date}, bounds)

  getBoundsForDate: (date, state) ->
    state ?= @state

  loadToListing: (plan) ->
    TeacherTaskPlanActions.addPublishingPlan(plan, @props.params.courseId)

  getBoundsForCourse: ->
    course = CourseStore.get(@props.params.courseId)

    termStart = TimeHelper.getMomentPreserveDate(course.starts_at, @props.dateFormat)
    termEnd = TimeHelper.getMomentPreserveDate(course.ends_at, @props.dateFormat)

    {termStart, termEnd}

  getDateFromParams: ({termStart, termEnd}) ->
    {date} = @props.params

    if date
      TimeHelper.getMomentPreserveDate(date, @props.dateFormat)
    else
      now = TimeHelper.getMomentPreserveDate(TimeStore.getNow(), @props.dateFormat)
      if termStart.isAfter(now) then termStart else now

  isLoadingOrLoad: ->
    courseId = @props.params.courseId
