Add event creation library and implement in scheduler.

Need to pass context to these like the other method.  I know you take issue with use of context in client, and I think your position is valid.  But consistency please while we sort out that separate debate.