docs: def _getLocalWhen(self, date_from, num_days=1):
          """
          Returns a string describing when the event occurs (in the local time zone).
          """
          dateFrom, timeFrom = getLocalDateAndTime(date_from, self.time_from,
                                                   self.tz, dt.time.min)
          if num_days > 1 or self.time_to is not None:
              daysDelta = dt.timedelta(days=self.num_days - 1)
              dateTo, timeTo = getLocalDateAndTime(date_from + daysDelta,
                                                   self.time_to, self.tz)
          else:
              dateTo = dateFrom
              timeTo = None
  
          if dateFrom == dateTo:
              retval = _("{date} {atTime}").format(
                      date=dateFormat(dateFrom),
                      atTime=timeFormat(timeFrom, timeTo, gettext("at ")))
          else:
              # Friday the 10th of April for 3 days at 1pm to 10am
              localNumDays = (dateTo - dateFrom).days + 1
              retval = _("{date} for {n} days {startTime}").format(
                      date=dateFormat(dateFrom),
                      n=localNumDays,
                      startTime=timeFormat(timeFrom, prefix=gettext("starting at ")))
              retval = _("{dateAndStartTime} {finishTime}").format(
                      dateAndStartTime=retval.strip(),
                      finishTime=timeFormat(timeTo, prefix=gettext("finishing at ")))
          return retval.strip()