'Constructor
@param start: start of the time frame (datetime.datetime)
@param end: end of the time frame (datetime.datetime)
@param slot: length of time slots within the event frame,
format: "{n }[hour|day|week|month|year]{s}",
examples: "1 week", "3 months", "years"'

def __init__(self, start, end, slots=None):

    if (start is None):
        raise SyntaxError('start    time    required')
    self.start = tp_tzsafe(start)
    if (end is None):
        end = datetime.datetime.utcnow()
    self.end = tp_tzsafe(end)
    self.empty = True
    self.baseline = None
    self.slots = slots
    self.periods = {}
    self.rule = self.get_rule()
