'True if the event should be rendered for the given date and hour'

def is_renderable(self, date, hour=None):

    if hour:
        if (date in self.rendered):
            return False
        if (self.start and (self.start.date() == date) and (self.start.hour == hour)):
            return True
        elif (self.start and (self.start.date() < date) and (self.end.date() == date)):
            return True
        elif (self.start and (self.start.date() < date) and (self.end.date() > date)):
            return True
        elif ((not self.start) and (self.end.date() == date) and (self.end.hour == hour)):
            return True
    elif (self.start and (self.start.date() == date)):
        return True
    elif (self.end and (self.end.date() == date)):
        return True
    elif (self.start and self.end and (self.start.date() < date < self.end.date())):
        return True
    return False
