public static ExDate parseExDateString(String exDateString) {
    ExDate.Builder builder = ExDate.builder();
    Preconditions.checkArgument(exDateString != null, "Input is null");
    StringTokenizer stringTokenizer = new StringTokenizer(exDateString, ":;");
    String token = stringTokenizer.nextToken();
    while (stringTokenizer.hasMoreTokens()) {
      Preconditions.checkArgument(token.contains("="), "Cannot parse " + token);
      String[] split = token.split("=");
      String key = split[0];
      String value = split[1];
      if (key.equals(VALUE)) {
        builder.value(TimeType.valueOf(value));
      } else if (key.equals(TZID)) {
        builder.tzidparam(value);
      }
      token = stringTokenizer.nextToken();
    }
    builder.exdtval(Arrays.asList(token.split(",")));

    return builder.build();
  }
A method for parsing an ExDate string in an {@link ExDate}

@param exDateString a string containing ExDate information, excluding the EXDATE prefix
@return an {@link ExDate}
portability-types-common/src/main/java/org/datatransferproject/types/common/models/calendar/RecurrenceRule.java