code: public static ZonedDateTimeIterator createDateTimeIterator(
              String rdata, ZonedDateTime start, ZoneId tzid, boolean strict)
              throws ParseException {
          return new RecurrenceIteratorWrapper(
                  RecurrenceIteratorFactory.createRecurrenceIterator(
                          rdata, zonedDateTimeToDateValue(start.withZoneSameInstant(tzid)),
                          TimeZoneConverter.toTimeZone(tzid), strict));
      }
docs: given a block of RRULE, EXRULE, RDATE, and EXDATE content lines, parse
  them into a single date time iterator.
  @param rdata RRULE, EXRULE, RDATE, and EXDATE lines.
  @param start the first occurrence of the series.
  @param tzid the local timezone -- used to interpret start and any dates in
  RDATE and EXDATE lines that don't have TZID params.
  @param strict true if any failure to parse should result in a
  ParseException.  false causes bad content lines to be logged and ignored.