void createStartAndEndDate(Task task, ContentValues values) {
   long dueDate = task.getDueDate();
   long tzCorrectedDueDate = dueDate + TimeZone.getDefault().getOffset(dueDate);
   long tzCorrectedDueDateNow =
       DateUtilities.now() + TimeZone.getDefault().getOffset(DateUtilities.now());
   // FIXME: doesnt respect timezones, see story 17443653
   if (task.hasDueDate()) {
     if (task.hasDueTime()) {
       long estimatedTime = task.getEstimatedSeconds() * 1000;
       if (estimatedTime <= 0) {
         estimatedTime = DEFAULT_CAL_TIME;
       }
       if (preferences.getBoolean(R.string.p_end_at_deadline, true)) {
         values.put("dtstart", dueDate);
         values.put("dtend", dueDate + estimatedTime);
       } else {
         values.put("dtstart", dueDate - estimatedTime);
         values.put("dtend", dueDate);
       }
       // setting a duetime to a previously timeless event requires explicitly setting allDay=0
       values.put("allDay", "0");
       values.put("eventTimezone", TimeZone.getDefault().getID());
     } else {
       values.put("dtstart", tzCorrectedDueDate);
       values.put("dtend", tzCorrectedDueDate);
       values.put("allDay", "1");
     }
   } else {
     values.put("dtstart", tzCorrectedDueDateNow);
     values.put("dtend", tzCorrectedDueDateNow);
     values.put("allDay", "1");
   }
   adjustDateForIcs(values);
 }