   loadToListing: (plan) ->
     TeacherTaskPlanActions.addPublishingPlan(plan, @props.params.courseId)
 
-  getDateFromParams: ->
+  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
-    TimeHelper.getMomentPreserveDate(date or new Date, @props.dateFormat)
+
+    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

      displayAs: 'month'

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

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

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

    {courseId} = params

    {displayAs} = @state
    {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, termStart, termEnd
    }
    loadingCalendarProps = if hasPeriods
      {
        loadPlansList,
