code: def end(self):
          
  
          if self._duration:  # if end is duration defined
              # return the beginning + duration
              return self.begin + self._duration
          elif self._end_time:  # if end is time defined
              if self.all_day:
                  return self._end_time
              else:
                  return self._end_time
          elif self._begin:  # if end is not defined
              if self.all_day:
                  return self._begin + timedelta(days=1)
              else:
                  # instant event
                  return self._begin
          else:
              return None
docs: Get or set the end of the event.
  
          |  Will return an :class:`Arrow` object.
          |  May be set to anything that :func:`Arrow.get` understands.
          |  If set to a non null value, removes any already
              existing duration.
          |  Setting to None will have unexpected behavior if
              begin is not None.
          |  Must not be set to an inferior value than self.begin.