There are two possible options for this:
Admin-based setting
Provider-based setting
But your system is currently fully provider-based, so I will explain it in that way.
Provider-Based Time Slot Settings
In the provider panel and app, you can create a new page called Time Slot Settings.
I will explain the advance booking system. You can design and implement it in your own way.
At a minimum, the following fields are required:
  1. Slot Duration
This field defines the duration of each slot.
Example:
If the provider sets 1 hour, slots will be shown every 1 hour.
If the provider sets 5 minutes, slots will be shown every 5 minutes.
  1. Break Time (in minutes)
This field defines the gap between slots.
Example:
If slot duration is 1 hour, slots will normally show as:
9:00, 10:00, 11:00
If the provider sets a 30-minute break, slots will show as:
9:00, 10:30, 12:00
  1. Booking Delay (in hours)
This controls how much delay is required for same-day bookings.
Example:
If the current time is 1:00 PM
And the provider sets a 1-hour booking delay
The first available slot will be shown from 2:00 PM
This is a mandatory field. At least this option is required.
  1. Multiple Bookings (Optional)
Provide an Enable / Disable option.
If enabled, show a field where the provider can set the number of allowed bookings (e.g., 1, 2, 3, 4).
Example:
If set to 2, the same time slot (e.g., 9:00 AM) can be booked twice.
After two bookings, that slot will be blocked and the next slot (10:00 AM) will be shown.
This is useful for providers who have multiple workers, so they can handle more than one job at the same time.
  1. Working Hours
This option already exists in your system.
All these options are already implemented in my website (brobookme.com). You can check it for reference.