I would like to create a consultant book system

I would like to create a consultant book system

 Looking for a template to modify for the following application

I would like a user to check a calendar for a particular geographical location to see whether a consultant is available for that town at a particular time and date for one of 4 training courses. The consultant must be able to modify an online calendar to say whether they are available or not and which courses they are qualified to deliver etc.

Once the user tries to select a date and time it should be reserved and the consultant will need to confirm this booking themselves.

I would like automated emails to handle the communication between the parties.

It would also be good to auto generate invoices so the consultant can print out and bring with them to the training.