Hi, here comes a somewhat 'quick and dirty' way:
thePlot =
DateListPlot[data, Joined -> True, PlotRange -> {Automatic, {80, 180}},
GridLines -> {None, {60, 85, 100, 140}}, GridLinesStyle -> Directive[Gray, Thin], ImageSize -> 540];
gr = Graphics[{Opacity[.1], Blue, Rectangle @@
Transpose[{First[PlotRange /. AbsoluteOptions[thePlot, PlotRange]], {100, 140}}]}];
Show[thePlot, gr]
giving:

Regards -- Henrik
EDIT:
... well, the above is probably too quick and too dirty! Here a hopefully cleaner solution (which gives the same):
dateMinMax = {"Mon 23 Jan 2017 12:41 PM", "Wed 1 Feb 2017 12:28 PM"};
dl1 = {#, 100} & /@ dateMinMax;
dl2 = {#, 140} & /@ dateMinMax;
thePlot =
DateListPlot[{data, dl1, dl2}, Joined -> True,
PlotRange -> {Automatic, {80, 180}}, GridLines -> None,
PlotStyle -> {Blue, Black, Black}, Filling -> {2 -> {3}},
FillingStyle -> Directive[Opacity[0.1], Blue], ImageSize -> 540]