code: def _gen_dtend_rrule(dtstarts, vevent):
          
          interval = Remind._interval(dtstarts)
          if interval > 0 and interval % 7 == 0:
              rset = rrule.rruleset()
              rset.rrule(rrule.rrule(freq=rrule.WEEKLY, interval=interval // 7, count=len(dtstarts)))
              vevent.rruleset = rset
          elif interval > 1:
              rset = rrule.rruleset()
              rset.rrule(rrule.rrule(freq=rrule.DAILY, interval=interval, count=len(dtstarts)))
              vevent.rruleset = rset
          elif interval > 0:
              if isinstance(dtstarts[0], datetime):
                  rset = rrule.rruleset()
                  rset.rrule(rrule.rrule(freq=rrule.DAILY, count=len(dtstarts)))
                  vevent.rruleset = rset
              else:
                  vevent.add('dtend').value = dtstarts[-1] + timedelta(days=1)
          else:
              rset = rrule.rruleset()
              if isinstance(dtstarts[0], datetime):
                  for dat in dtstarts:
                      rset.rdate(dat)
              else:
                  for dat in dtstarts:
                      rset.rdate(datetime(dat.year, dat.month, dat.day))
              # temporary set dtstart to a different date, so it's not
              # removed from rset by python-vobject works around bug in
              # Android:
              # https://github.com/rfc2822/davdroid/issues/340
              vevent.dtstart.value = dtstarts[0] - timedelta(days=1)
              vevent.rruleset = rset
              vevent.dtstart.value = dtstarts[0]
              if not isinstance(dtstarts[0], datetime):
                  vevent.add('dtend').value = dtstarts[0] + timedelta(days=1)
docs: Generate an rdate or rrule from a list of dates and add it to the vevent