def empty_table(start, partitions, n_cols):
    """Creates an empty schedule table.

    Args:
        start: The (active local) schedule start datetime.
        partitions: The set of row starts, as offsets from nlstart.
        n_cols: The number of schedule columns (days), usually 7.

    Returns:
        An empty schedule table ready for population with show data,
        implemented as a list of row lists.
        The table will contain len(partitions) rows, each containing the 
        time of their occurrence (on the first day of the schedule; add day
        offsets for the other days), then num_cols instances of None ready to
        be filled with schedule data.
    """
    # We don't want the last partition, as it marks the end of the day.
    return [[(start + i)] + ([None] * n_cols) for i in sorted(partitions)][:-1]