Limit front facing information

Hi. Can I set this up as follows:

1. on the front end, client cannot see free dates (all dates shown on calendar, and customer just gets an error alert if they select one which is already booked)

2. There is no time displayed. Only dates (People only book dates not times)

3. Black out non-available dates (I think this one is possible)

4. Set how many days from current the first available date is – and also do that individually for different services.

Thanks for your time.