code: function(propName, time) {
        var prop = this.component.getFirstProperty(propName);
  
        if (!prop) {
          prop = new ICAL.Property(propName);
          this.component.addProperty(prop);
        }
  
        // utc and local don't get a tzid
        if (
          time.zone === ICAL.Timezone.localTimezone ||
          time.zone === ICAL.Timezone.utcTimezone
        ) {
          // remove the tzid
          prop.removeParameter('tzid');
        } else {
          prop.setParameter('tzid', time.zone.tzid);
        }
  
        prop.setValue(time);
      }
docs: Set/update a time property's value.
  This will also update the TZID of the property.
  
  TODO: this method handles the case where we are switching
  from a known timezone to an implied timezone (one without TZID).
  This does _not_ handle the case of moving between a known
  (by TimezoneService) timezone to an unknown timezone...
  
  We will not add/remove/update the VTIMEZONE subcomponents
  leading to invalid ICAL data...
  @private
  @param {String} propName     The property name
  @param {ICAL.Time} time      The time to set