Automating jobs with job scheduler

This extends the Event service functionality to allow users to trigger jobs, not only in response to application-generated events, but also on a cron schedule or at a specific time. For example, they can have a job trigger every night at 11 PM, or at 12 AM on Sunday, 1st October.