public function getTimezone($returnDateTimeZoneObject = false) {
    if (!empty($this->timezone)) {
      return $returnDateTimeZoneObject
        ? new DateTimeZone($this->timezone)
        : $this->timezone;
    }
    if (isset($this->group->guid) && !empty($this->group->timezone)) {
      return $returnDateTimeZoneObject
        ? new DateTimeZone($this->group->timezone)
        : $this->group->timezone;
    }
    foreach ((array) $this->groups as $curGroup) {
      if (!empty($curGroup->timezone)) {
        return $returnDateTimeZoneObject
          ? new DateTimeZone($curGroup->timezone)
          : $curGroup->timezone;
      }
    }
    $timezone = date_default_timezone_get();
    return $returnDateTimeZoneObject
      ? new DateTimeZone($timezone)
      : $timezone;
  }