recurrenceSetsToAndroidString

fun recurrenceSetsToAndroidString(dates: List<DateListProperty>, dtStart: Date): String

Concatenates, if necessary, multiple RDATE/EXDATE lists and converts them to a formatted string which Android calendar provider can process.

Android expects this format: "TZID;date1,date2,date3" where date is "yyyymmddThhmmss" (when TZID is given) or "yyyymmddThhmmssZ". We don't use the TZID format here because then we're limited to one time-zone, while an iCalendar may contain multiple EXDATE/RDATE lines with different time zones.

This method converts the values to the type of dtStart, if necessary:

  • DTSTART (DATE-TIME) and RDATE/EXDATE (DATE) → method converts RDATE/EXDATE to DATE-TIME with same time as DTSTART

  • DTSTART (DATE) and RDATE/EXDATE (DATE-TIME) → method converts RDATE/EXDATE to DATE (just drops time)

Return

formatted string for Android calendar provider

Parameters

dates

one more more lists of RDATE or EXDATE

dtStart

used to determine whether the event is an all-day event or not; also used to generate the date-time if the event is not all-day but the exception is