How can I allow someone to book a user/business based on their availability?

Hi!

Curious on how you recommend I could allow users to schedule someone based on their availability?

For example if someone is trying to book a business they would only be available based on the days they are open and hours?

ie: How can I allow someone to book a user/business based on their availability?
-Alex