Add event creation library and implement in scheduler.

(copied from comment in your fork)
Are 'report' and 'record' being used as synonyms? If so, pick one. If not, explain the distinction.