\documentclass[a4paper]{article}
\usepackage[latin1]{inputenc}
\begin{document}
\sf
\begin{flushleft}
\section*{\sf 08-29 (Wednesday)}
\begin{tabular}{r@{--}lp{0.7\textwidth}r} 
\smallskip
00:05 &  &
{ \small \raggedright
\&
} & bbc2.bbc.co.uk \\
\end{tabular} \\ 
\section*{\sf 10-10 (Thursday)}
\begin{tabular}{r@{--}lp{0.7\textwidth}r} 
\smallskip
09:00 +0100 & 09:55 +0100 &
{ \small \raggedright
News
} & TA \\
\end{tabular} \\ 
\section*{\sf 04-20 (Saturday)}
\begin{tabular}{r@{--}lp{0.7\textwidth}r} 
\smallskip
17:25 UTC & 18:00 UTC &
{ \small \raggedright
First in clump
} & foo \\
\smallskip
17:25 & 18:00 &
{ \small \raggedright
Second in clump
} & foo \\
\end{tabular} \\ 
\section*{\sf 12-28 (Friday)}
\begin{tabular}{r@{--}lp{0.7\textwidth}r} 
\smallskip
11:31 &  &
{ \small \raggedright
A
} & 1 \\
\smallskip
11:31 &  &
{ \small \raggedright
B
} & 1 \\
\smallskip
11:31 &  &
{ \small \raggedright
A
} & 1 \\
\smallskip
11:31 &  &
{ \small \raggedright
D
} & 1 \\
\smallskip
11:31 & 11:31 &
{ \small \raggedright
B
} & 1 \\
\end{tabular} \\ 
\section*{\sf 05-17 (Friday)}
\begin{tabular}{r@{--}lp{0.7\textwidth}r} 
\smallskip
02:02 BST &  &
{ \small \raggedright
t
} & c \\
\smallskip
02:02 &  &
{ \small \raggedright
t
} & c \\
\end{tabular} \\ 
\section*{\sf 08-29 (Wednesday)}
\begin{tabular}{r@{--}lp{0.7\textwidth}r} 
\smallskip
00:05 & 00:30 &
{ \small \raggedright
Attrib Rameau
} & bbc2.bbc.co.uk \\
\end{tabular} \\ 
\section*{\sf 10-04 (Friday)}
\begin{tabular}{r@{--}lp{0.7\textwidth}r} 
\smallskip
09:00 & 10:00 &
{ \small \raggedright
Kilroy
} & south-east.bbc1.bbc.co.uk \\
\smallskip
09:00 & 10:00 &
{ \small \raggedright
BBC News; Weather
} & south-east.bbc1.bbc.co.uk \\
\end{tabular} \\ 
\section*{\sf 01-01 (Monday)}
\begin{tabular}{r@{--}lp{0.7\textwidth}r} 
\smallskip
23:59 UTC & 23:59 UTC &
{ \small \raggedright
A
} & c \\
\smallskip
23:59 & 23:59 &
{ \small \raggedright
news
} & c \\
\smallskip
23:59 & 23:59 &
{ \small \raggedright
news
} & c \\
\end{tabular} \\ 
\section*{\sf 02-16 (Sunday)}
\begin{tabular}{r@{--}lp{0.7\textwidth}r} 
\smallskip
13:00 &  &
{ \small \raggedright
On 'before' but not 'after' 13:30.
} & 0 \\
\smallskip
13:00 & 14:00 &
{ \small \raggedright
On both 'before' and 'after' 13:30.
} & 0 \\
\smallskip
13:30 & 13:30 &
{ \small \raggedright
On 'before' but not 'after' 13:30.
} & 0 \\
\smallskip
13:00 & 13:10 &
{ \small \raggedright
Straightforward 'before' but not 'after' 13:30.
} & 0 \\
\smallskip
13:30 & 14:00 &
{ \small \raggedright
On both 'before' and 'after' 13:30.
} & 0 \\
\smallskip
13:40 & 14:00 &
{ \small \raggedright
Straightforward 'after' but not 'before' 13:30.
} & 0 \\
\end{tabular} \\ 
\section*{\sf 02-24 (Sunday)}
\begin{tabular}{r@{--}lp{0.7\textwidth}r} 
\smallskip
00:00 +0100 & 00:30 +0100 &
{ \small \raggedright
News
} & CNN \\
\end{tabular} \\ 
\section*{\sf 12-28 (Friday)}
\begin{tabular}{r@{--}lp{0.7\textwidth}r} 
\smallskip
11:31 UTC &  &
{ \small \raggedright
A
} & 1 \\
\smallskip
11:31 &  &
{ \small \raggedright
B
} & 1 \\
\smallskip
11:31 &  &
{ \small \raggedright
C
} & 1 \\
\smallskip
11:31 &  &
{ \small \raggedright
D
} & 1 \\
\smallskip
11:31 &  &
{ \small \raggedright
E
} & 1 \\
\smallskip
11:31 &  &
{ \small \raggedright
F
} & 1 \\
\smallskip
11:31 & 00:00 &
{ \small \raggedright
G
} & 2 \\
\smallskip
11:31 & 00:00 &
{ \small \raggedright
H
} & 2 \\
\smallskip
11:31 & 00:00 &
{ \small \raggedright
I
} & 4 \\
\smallskip
11:31 & 00:00 &
{ \small \raggedright
J
} & 5 \\
\smallskip
11:31 & 00:00 &
{ \small \raggedright
K
} & 5 \\
\end{tabular} \\ 
\section*{\sf 01-01 (Saturday)}
\begin{tabular}{r@{--}lp{0.7\textwidth}r} 
\smallskip
00:00 & 00:00 &
{ \small \raggedright
Zero length, should not overlap with one starting at same time
} & a \\
\smallskip
00:00 & 01:00 &
{ \small \raggedright
One hour long
} & a \\
\smallskip
00:30 & 00:30 &
{ \small \raggedright
Zero length in the middle
} & a \\
\end{tabular} \\ 
\section*{\sf 08-29 (Wednesday)}
\begin{tabular}{r@{--}lp{0.7\textwidth}r} 
\smallskip
00:05 BST &  &
{ \small \raggedright
The Phil Silvers Show
} & bbc2.bbc.co.uk \\
\smallskip
09:55 &  &
{ \small \raggedright
King of the Hill // Meet the Propaniacs
} & channel4.com \\
\end{tabular} \\ 
\section*{\sf 12-18 (Tuesday)}
\begin{tabular}{r@{--}lp{0.7\textwidth}r} 
\smallskip
04:05 UTC &  &
{ \small \raggedright
ITV Nightscreen
} & carlton.com \\
\smallskip
04:05 & 04:30 &
{ \small \raggedright
Motorsport Mundial
} & channel5.co.uk \\
\end{tabular} \\ 
\section*{\sf 05-12 (Monday)}
\begin{tabular}{r@{--}lp{0.7\textwidth}r} 
\smallskip
23:35 -0400 &  &
{ \small \raggedright
A
} & 2 \\
\end{tabular} \\ 
\section*{\sf 05-13 (Tuesday)}
\begin{tabular}{r@{--}lp{0.7\textwidth}r} 
\smallskip
00:06 & 01:06 &
{ \small \raggedright
B
} & 2 \\
\end{tabular} \\ 
\section*{\sf 01-01 (Saturday)}
\begin{tabular}{r@{--}lp{0.7\textwidth}r} 
\smallskip
00:00 UTC & 02:00 UTC &
{ \small \raggedright
A
} & 1 \\
\smallskip
03:00 &  &
{ \small \raggedright
B
} & 1 \\
\smallskip
03:00 &  &
{ \small \raggedright
C
} & 1 \\
\smallskip
00:00 &  &
{ \small \raggedright
D
} & 1 \\
\smallskip
00:00 &  &
{ \small \raggedright
E
} & 1 \\
\smallskip
00:00 & 01:00 &
{ \small \raggedright
F
} & 1 \\
\end{tabular} \\ 
\section*{\sf 01-01 (Friday)}
\begin{tabular}{r@{--}lp{0.7\textwidth}r} 
\smallskip
00:00 &  &
{ \small \raggedright
A
} & 2 \\
\smallskip
00:00 & 01:00 &
{ \small \raggedright
B
} & 2 \\
\smallskip
00:00 &  &
{ \small \raggedright
C
} & 2 \\
\end{tabular} \\ 
\section*{\sf 06-03 (Saturday)}
\begin{tabular}{r@{--}lp{0.7\textwidth}r} 
\smallskip
16:33 &  &
{ \small \raggedright
blah
} & 3SAT \\
\end{tabular} \\ 
\section*{\sf 04-20 (Saturday)}
\begin{tabular}{r@{--}lp{0.7\textwidth}r} 
\smallskip
13:10 &  &
{ \small \raggedright
A programme with empty stuff that should not be written out again
} & foo.com \\
\end{tabular} \\ 
\section*{\sf 10-25 (Saturday)}
\begin{tabular}{r@{--}lp{0.7\textwidth}r} 
\smallskip
07:00 & 07:45 &
{ \small \raggedright
Container A
} & 3 \\
\smallskip
07:00 & 07:05 &
{ \small \raggedright
Contained A 0
} & 3 \\
\smallskip
07:05 & 07:15 &
{ \small \raggedright
Contained A 1
} & 3 \\
\smallskip
07:15 & 07:45 &
{ \small \raggedright
Contained A 2
} & 3 \\
\smallskip
08:00 & 08:05 &
{ \small \raggedright
Contained B 0
} & 3 \\
\smallskip
08:00 & 08:15 &
{ \small \raggedright
Container B
} & 3 \\
\smallskip
08:05 & 08:15 &
{ \small \raggedright
Contained B 1
} & 3 \\
\smallskip
09:00 & 10:00 &
{ \small \raggedright
Overlap 0
} & 3 \\
\smallskip
09:00 & 10:00 &
{ \small \raggedright
Overlap 1
} & 3 \\
\smallskip
10:00 & 10:15 &
{ \small \raggedright
Container C
} & 3 \\
\smallskip
10:00 & 10:05 &
{ \small \raggedright
Contained C 0
} & 3 \\
\smallskip
10:05 & 10:15 &
{ \small \raggedright
Contained C 1
} & 3 \\
\end{tabular} \\ 
\section*{\sf 02-16 (Sunday)}
\begin{tabular}{r@{--}lp{0.7\textwidth}r} 
\smallskip
00:00 &  &
{ \small \raggedright
A
} & 0 \\
\smallskip
00:30 & 00:30 &
{ \small \raggedright
B
} & 0 \\
\smallskip
00:00 & 00:10 &
{ \small \raggedright
C
} & 0 \\
\end{tabular} \\ 
\section*{\sf 08-29 (Wednesday)}
\begin{tabular}{r@{--}lp{0.7\textwidth}r} 
\smallskip
00:05 BST &  &
{ \small \raggedright
T
} & foo.tv \\
\smallskip
00:05 &  &
{ \small \raggedright
T
} & foo.tv \\
\smallskip
00:05 &  &
{ \small \raggedright
T
} & foo.tv \\
\smallskip
00:05 &  &
{ \small \raggedright
T
} & foo.tv \\
\smallskip
00:05 &  &
{ \small \raggedright
T
} & foo.tv \\
\smallskip
00:05 &  &
{ \small \raggedright
The Phil Silvers Show
} & bbc2.bbc.co.uk \\
\smallskip
09:55 &  &
{ \small \raggedright
King of the Hill // Meet the Propaniacs
} & channel4.com \\
\end{tabular} \\ 
\end{flushleft}
\end{document}
