Definitely. Compared to any examples I have, you would just need to add some other items to your Data and Searches.
For Use Case #1
- Add a Status field to a Booking
- When searching for Booked Times to insert into the TopCal Get Available Time element, add the parameter to only find Bookings with a Confirmed Status
- In the List of Available Time Slots, or when a Time Slot is selected, have a Condition which is a search for Bookings with the exact same time and the Status is Pending, and show the warning as you would like
Use Case #2
This is more advanced and there could be different ways to do it. I know a couple of ways and maybe others can come up with other creative ways.
One way is to use logic like is described here, which essentially pulls the list of rooms all at once, and runs the Get Available Times for each room and then you can use logic to say when there is at least one time slot on that day.
Another is to run the Get Available Times workflow in a Backend Workflow and to save every available time slot on a piece of data - this will also require that you make sure you properly edit the Available Time list every time a booking is made, cancelled, availability changes, etc. But is more optimal for advanced searching of times.