Block locations for events and check conflicting location bookings
Ren, welcome to SE! I think you may need to be clearer about your use case. In particular you say user twice, when I suspect the first may be an admin and the other a general user.

There isn't a mechanism to stop a venue being bookable, but you can make individual events not active in Manage Events >> edit specific event >> location tab. Does that do what you want. You can also allow booking only for a specific time in the online booking tab which may also do what you need. Making some assumptions here of course without more detail.

UPDATE based on comments below. There is currently no facility in CiviCRM to manage allocation of locations. It just holds location as a simple list and does not hold any time information against locations so cannot manage availability. You could write and extension, but it would be quite substantial as you would be doing a room booking system. If you have an external room booking system you might be able to do an integration as an extension but again quite a bit of work. I would suggest something external to CiviCRM as being the easiest option. Maybe a shared calendar.