logger->debug('Intervals before extrapolating:' . count($availabilityIntervals), ['app' => 'calendar-appointments']); if (empty($availabilityIntervals)) { return []; } foreach ($availabilityIntervals as $availabilityInterval) { $this->logger->debug('Interval start: ' . $availabilityInterval->getStart() . ', interval end: ' . $availabilityInterval->getEnd(), ['app' => 'calendar-appointments']); } $increment = $config->getIncrement(); $length = $config->getLength(); $slots = []; foreach ($availabilityIntervals as $available) { $from = $available->getStart(); $to = $available->getEnd(); for ($t = $from; ($t + $length) <= $to; $t += $increment) { $slots[] = new Interval($t, $t + $length); } } $this->logger->debug('Slots after extrapolating:' . count($slots), ['app' => 'calendar-appointments']); return $slots; } }