Bookings are normally carried out with the BAT module. A fairly complex module created by the Roomify team. In Drupal 8 you have an interface that makes it easier because you can make any content type 'bookable'. Rooms in a B & B, premises, tools, ... You can book per day and per hour.
Install with composer... too many dependencies..
From all of these submodules, only this one is BEE
Now create a content type and click on BEE at the bottom. Make your choice. Per day or per hour. You can also choose whether you want to make everything available or occupied by default. Later you can adjust this in bulk.
If you now create a node (eg a room in a B & B) you save it as a node and you return to this node to edit. Only then do you see below that you can also set the number of 'participants'. You can also use this to rent equipment, for example. This allows you to set the number of available devices.
You will see a calendar at the bottom of the node. Note that I have provided three places here. on April 25 you can see that there are still 2 places available, 1 has already been booked.
When you click on a calendar item a popup opens.
You make a reservation by clicking this button. You must of course have set the rights for it.
As admin you can also perform bulk operations. Click on availability.
With a button to be available or not to set with a time range and if necessary repetition per week, month, ...
Finally you have to make a view yourself, if necessary, to get an overview of the bookings. There are a few relationships needed to do this, but you already know ... Below is a view that shows the bookings with the name of the user who booked.