code: private static String getCorrectedTimeZoneIdFrom(String value) {
          if (value != null) {
              value = value.contains("\"") ? value.replaceAll("\"", "") : value;
              if (TIMEZONE_REGISTRY.getTimeZone(value) != null) {
                  return TIMEZONE_REGISTRY.getTimeZone(value).getID();
              }
              String nameCandidate = MS_TIMEZONE_NAMES.get(value);
              if (nameCandidate != null) {
                  return TIMEZONE_REGISTRY.getTimeZone(nameCandidate) != null
                          ? TIMEZONE_REGISTRY.getTimeZone(nameCandidate).getID() : nameCandidate;
              }
              return MS_TIMEZONE_IDS.get(value);
          }
          return null;
      }
docs: Gets a valid timezoneId for the specified timezoneValue or <code>null</code> in case the specified time zone
  value does not match anything known.
  
  @param value
  time zone value read from ICS file. The value can be a Microsoft time zone id or an invalid time zone
  value
  @return a valid timezoneId for the specified timezoneValue or <code>null</code> in case the specified time zone
  value does not match anything known