         $.fudgeDateForProfileTimezone(new Date)
 
     setCurrentView: (view) ->
-      @updateFragment view_name: view
+      @updateFragment
+        view_name: view
+        replaceState: !_.has(@dataFromDocumentHash(), 'view_name') # use replaceState if view_name wasn't set before
+
       @currentView = view
       userSettings.set('calendar_view', view)
 

      @setCurrentDate(start)

    setCurrentDate: (d) ->
      @updateFragment view_start: d.toISOString()
      $.publish('Calendar/currentDate', d)

    getCurrentDate: () ->

      (new EditEventDetailsDialog(event)).show()

    updateFragment: (opts) ->
      replaceState = !!opts.replaceState
      opts = _.omit(opts, 'replaceState')

      data = @dataFromDocumentHash()
      changed = false
      for k, v of opts
