The current version works like this:
The Scheduler doesn't create any event by itself. If users select a time range, the Scheduler fires he onTimeRangeSelected event (https://api.daypilot.org/daypilot-scheduler-ontimerangeselected/) which you can use to create a new event and send it to the database. The start and end dates of the selection (args.start and args.end) are always provided.
If this event handler displays a form where users can modify the start and end date it's necessary to check the input to make sure it's not empty.
The Scheduler requires the "start" date to be present in data source items. If it isn't, it will throw an exception ("Event data item must specify 'start' property") which prevents the Scheduler from rendering. If the end date isn't provided, it's treated as the current time.