When the client books a new appointment, he can select an available time. This time is calculated verifying if the company works on the selected time (Business Hours) and if the selected provider has available time based on the selected service duration. All the Available Times Logic is inside the
Services\ServiceAvailableTimes.php and can be used in any part of the system, for example, an API.
The Company Business Hours can be set on the Settings page, and the
Services\BusinessHours.php file manages all the business hours.