For those with v. 10, here's one way. I didn't overlap the bars because it looks nicer this way, imho.
schedule[{t1_, t2_}, {t3_, t4_}] :=
Module[{convert, ts = Flatten[{{t1, t2}, {t3, t4}}, 1][[All, 1]], hours},
convert[{h_, min_}] := h + min/60;
hours = Range[Min[ts] - 1, Max[ts] + 1];
NumberLinePlot[{
convert[t1] < x < convert[t2],
convert[t3] < x < convert[t4]}, x, PlotTheme -> "Business",
Ticks -> { hours /. {n_Integer :> {n, ToString[n] <> ":00"}}, None},
Prolog -> {
Text[TimeObject[t1], {convert[t1], 1}, {1, 0}],
Text[TimeObject@t2, {convert[t2], 1}, {-1, 0}],
Text[TimeObject@t3, {convert[t3], 2}, {1, 0}],
Text[TimeObject@t4, {convert[t4], 2}, {-1, 0}]},
GridLines -> {hours, {}},
GridLinesStyle -> Directive[Orange, Dashed],
ImageSize -> 500,
BaseStyle -> 12,
AspectRatio -> .3,
PlotRangePadding -> {{2.5, 1.5}, Automatic},
PlotStyle -> {Directive[Thickness[.06], Red, PointSize[Medium]],
Directive[Thickness[.06], Blue, PointSize[Medium]]}]]
schedule[{{5, 20}, {7, 20}}, {{6, 1}, {8, 7}}]

If you prefer to display times without the TimeObject wrapper, simply replace each instance of
TimeObject[], with
`.
These approaches should work on v.9.
It overlaps the bars, as requested.
Assuming two time intervals,
t1 = "5:20"; t2 = "7:20";
t3 = "6:01"; t4 = "8:07";
toMin[t_] := ToExpression /@ StringSplit[t, ":"] /. {h_, m_} :> 60 h + m
Graphics[{ {Opacity[.4], EdgeForm[Black],
Gray, Rectangle[{toMin@t1, 0}, {toMin@t2, 1}],
Red, Rectangle[{toMin@t3, .5}, {toMin@t4, 1.5}]},
Text[t1, Offset[{0, -20}, {toMin@t1, 0}]],
Text[t2, Offset[{0, -20}, {toMin@t2, 0}]],
Text[t3, Offset[{0, 50}, {toMin@t3, 0}]],
Text[t4, Offset[{0, 50}, {toMin@t4, 0}]]},
BaseStyle -> 20,
AspectRatio -> 1/12]

Alternative Format
This approach can accommodate a larger number of time intervals.
It should be easy to generalize the v.10 code to work in a similar fashion.
t1 = "5:20"; t2 = "7:20";
t3 = "6:01"; t4 = "8:07";
t5 = "1:23"; t6 = "4:19";
t7 = "3:14"; t8 = "4:51";
toMin[t_] := ToExpression /@ StringSplit[t, ":"] /. {h_, m_} :> 60 h + m;
seg[start_, end_, color_, ht_] := {EdgeForm[{Thickness[.003], color}],
Rectangle[{toMin@start, ht}, {toMin@end, ht + 1}],
Black,
Text[start <> " \[RightArrow] ", {toMin@start, ht + .5}, {1, 0}],
Text[" \[LeftArrow] " <> end, {toMin@end, ht + .5}, {-1, 0}]};
Graphics[{
{White,
seg @@@ {{t1, t2, Gray, 0}, {t3, t4, Red, 2}, {t5, t6, Blue, 4},
{t7, t8, Darker@Green, 6}}}},
GridLines -> {toMin /@ {t1, t2, t3, t4, t5, t6, t7, t8}, {}},
FrameTicks -> {Table[{60 k, k} /. {_Rational -> "", 0 -> 12}, {k, 0, 9, 1/4}], {}},
FrameLabel -> {"PM"},
ImageSize -> 600,
PlotRange -> {{0, 540}, Automatic},
PlotRangePadding -> 3,
Frame -> {True, False},
BaseStyle -> 16,
AspectRatio -> 1/6]
