def employee_free_time(schedules):
    busy = sorted(interval for schedule in schedules for interval in schedule
                  if interval[0] < interval[1])
    if not busy:
        return []
    end = busy[0][1]
    gaps = []
    for start, next_end in busy[1:]:
        if start > end:
            gaps.append([end, start])
        end = max(end, next_end)
    return gaps
