Throw exception when the detail dates are invalid

Reasons are:
   (1) The start time is after the end time - The event would have a
   negative length.
   (2) The start date is after the end date - The event would never
   happen!