This doesn't work as it should. There needs to be an option for session times to be static and for the buffer to apply after a session time slot even if a session hasn't been booked yet.
As an example, I want to have 90-minute sessions with a 30-minute buffer *after* each session, but with a set amount of 4 sessions per day starting at 10am, 12pm, 2pm & 4pm.
The method above creates 4 possible sessions, but ignores the 30 minute buffer when no sessions have been booked yet for that day, so although the first available session is 10am, if nothing has been booked for 10am, the next session is set at 11:30am, not 12pm.
If someone then books the 11:30am session in a day before anyone else books the 10am one, because of the business hours and session limits of the calendar, both the 10am and 1pm sessions are then unable to be booked.