event = Event.create
event.status # nil
event.scheduled_at = Time.now
event.save!
event.status # scheduled
event.started_at = Time.now
event.save!
event.status # started
For those events created before adding smart status, there is 'force_update_status' which is setting up the first value
event = Event.find 1
event.finished_at # '2015-07-08 18:21:23'
event.status # nil, created before smart status
event.force_update_status
event.save # true
event.satus # finished