Set weekly availability per staff member. Add time off for holidays and business closures for days the whole shop is shut.
Availability is calculated across every service a staff member offers, so a booking on one service blocks the same time on all the others.