Also, using
if (Bars.SessionBreak)
Print(Time[0] + " NextBeginTime= " + Bars.Session.NextBeginTime);
On the first tick it returns the start time of the previous session, then on subsequent ticks returns the start time of the current session.
Therefore on historical bars, the first bar of a new session returns the start time of the previous session.
Yet with one exception - on the first bar of the chart, it returns the start time for the next session based on real time, not the historical bar time.
Comment