code: def duration(self):
          
          if self._duration:
              return self._duration
          elif self.end:
              # because of the clever getter for end, this also takes care of all_day events
              return self.end - self.begin
          else:
              # event has neither start, nor end, nor duration
              return None
docs: Get or set the duration of the event.
  
          |  Will return a timedelta object.
          |  May be set to anything that timedelta() understands.
          |  May be set with a dict ({"days":2, "hours":6}).
          |  If set to a non null value, removes any already
              existing end time.