The solution to track time slots and booking, you would first have to create a Time slot sheet.
In that sheet you would have all the blocks laid out with the formula “Today()” in one column and the the "Time block in another column, the third column would concatenate them together to create a daily block that will update each day.
The summary column will be used as a kind of key that changes each day according to Google’s clock.
The next thing you will need is a registration sheet with a form that pulls all the available time slots as a drop down list.
In order to create the dropdown list for available slots you will need to create a third sheet called “Availalbe Slots” Run a query and carry over all the times that meet the filter of being available.
How you make a time unavailable>
The way you do is is to run an arrayformula combined with a lookup in the registration column to see if any times in the registration sheet matches the time listed in the slot sheet. if there is a match you can display “Unavailable” otherwise “Available”.
Once a timesslot is changed to “Unavailable” your filter will eliminate from the list of possible dropdown options so no one else will see it.
Since the app takes approx 20 seconds to refresh content, it is possible for someone to double book a time If everyone is trying to book the same time. There is a way around it though but more complex.