code: def replace(self, **kwargs):
          
          new_kwargs = {"interval": self._interval,
                        "count": self._count,
                        "dtstart": self._dtstart,
                        "freq": self._freq,
                        "until": self._until,
                        "wkst": self._wkst,
                        "cache": False if self._cache is None else True}
          new_kwargs.update(self._original_rule)
          new_kwargs.update(kwargs)
          return rrule(**new_kwargs)
docs: Return new rrule with same attributes except for those attributes given new
             values by whichever keyword arguments are specified.