@Override
  public CalendarEventModel.CalendarEventTime apply(
      Map<String, String> time, TransformerContext context) {
    if (time == null) {
      return null;
    }

    String dateTimeValue = time.get("dateTime");
    String timeZone = time.get("timeZone");
    if (dateTimeValue == null || timeZone == null) {
      return null;
    }

    try {
      OffsetDateTime dateTime =
          ZonedDateTime.of(LocalDateTime.parse(dateTimeValue), ZoneId.of(timeZone))
              .toOffsetDateTime();
      return new CalendarEventModel.CalendarEventTime(dateTime, false);
    } catch (DateTimeException e) {
      context.problem(e.getMessage());
      return null;
    }
  }
Maps from a Graph API dateTimeTimeZone resource as defined by microsoft.graph.dateTimeTimeZone
defined at
https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/resources/dateTimeTimeZone
extensions/data-transfer/portability-data-transfer-microsoft/src/main/java/org/datatransferproject/transfer/microsoft/transformer/calendar/ToCalendarEventTimeTransformer.java