Principles:

1. If there is an event during a time, that time should be marked
2. If there are two congruent events, they should be in one box

Can we do what I've just drawn?

Basically, each box must consist of a table taking up 100% of its space.  Is that possible?  Must try it.  Nope -- height problems


		<TD style="background-color: cccccc; padding: 0">
<table cellpadding="0" cellspacing="0" width="100%" ><tr>
<td width="10px" class="scheduleBlank" style="height: auto; border-color: black; border-width: 0px 0px 5px 1px;">&nbsp;</td>
<td class="scheduleEventHRSFA">Fleem SIG</td>
</tr></table>
</td>

Ok, so let's say that a cell's background is an image, and then its
padding is chosen well...?

This works except for borders.  Let's experiment with doing bottom
borders as images?

Then, we set a cell's bottom border according to what's below it -- there 
are no top borders at all.

Nice.

We only need two shades of each BG color.  Roxor.

So, the algorithm is as follows:

each column is an array of elements.  Each element represents N minutes.

For each event:
add it to each segment which will contain it.

For each segment:

build the cell.  A cell has: (1) a background, chosen based on how
many events it contains (or past cellse contained) and what type each
event is. (2) a padding, which is 7 (or so) * number of items this
*group* contains.


Let's say a minimized table has the fewest number of cells necessary
to support all events.  Cells will have length.

Let's contemplate unminimized
Find the first event from all columns.  That event's time is the start time of the calendar as a whole.  

I think ideally we actually do want to have a consistent time
standard.  So let's call it the 0:30 standard

Go across the days.  If the content of the cell is the same as the
previous, increment the row count.  Put a nil into that spot in the
output matrix.  Else, put the cell into the output matrix (hehe, using
reference!).  Huh?  don't we already have that data?

Spit out the output matrix row-by-row.  

What's the border algorithm?

Let's say you have two cells, containing l1 and l2.  

When should dummies be created or destroyed?

A dummy is needed when otherwise there would be a position change.  In
other words, something is in l1, but not in l2, and not in the last 2
positions.

Also, deal with starting at same time by splitting? Need to do this early.
