[caldav] Set event dtEnd=dtStart if DTEND was not provided

The dtEnd must be present for the entry to be valid.
If dtEnd is missing, set it to dtStart and remove the dtEnd on upsync
if it is still the same as dtStart at that point.