I can get ListPlot to work with Callout. Here is toy code:
data = {0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 7, 7, 7};
val1L = ReplacePart[data, 9 -> Callout[0, "First Period End", {10, 1}]]
ListPlot[val1L, Joined -> True]
Producing:
If I create an EventSeries, and then rescale this to have a range of dates, like so:
es = EventSeries[val1L, Automatic]
rescaleTS =
Table[
{DatePlus[
DateObject["January 1, 2020"], {i - 1, "Month"}],
Normal[es][[i]][[2]]},
{i, 1, es["PathLength"]}]
The first part of the output looks like this:
When I plot this with DateListPlot it seems to ignore the Callout wrapper, producing:
For completeness the DateListPlot command is just:
DateListPlot[rescaleES]
Epilog
, e.g.,DateListPlot[rescaleTS, Epilog -> {Text["First Period End", {{2020, 9, 1}, 0}, {-1.25, -1.25}]}]
$\endgroup$