The Events module out of the box is not for resource scheduling. At my work place, we have to tweak it make it work. We have been using the Events module, with some customization, to schedule job interview appointment. The scenario is some what close to yours.
We used the Events module manages interview appointments which consist of hiring managers (people who conduct the interview), job candidates, interview rooms and interview time slots. A sub calendars was set up for each hiring manager. Appointments must be entered into sub calendars. The master calendar was setup to show appointments from all sub calendars. HR admin can see all appointment from the master calendar. Individual hiring manager can see interview times in his/her own calendar.
For this to work, we had to customize the module so that the combination of appointment times and location across all sub calendars are unique. This prevents scheduling of two interviews in the same room at the same time. The Event module out of the box can only prevents time conflict.
We do not allow the job candidates to enter appointment themselves. Scheduling appointments are done by HR admin. Since the job candidates have registered and applied for the job, their registration data (username, full name, email) are in the system. We customized the Event entry screen to allow HR admin to select registered user data to create event. We put the job candidates full name in the Event title. Once the Event is created, the program also enrolls the job candidate into the created Event. An email is then sent to the job candidate to let them know the interview date time.
We do not allow the job candidates to see the Events master or sub calendar. Thus job candidates can not get to the enrollment listing screen from the Event module. The work around was to create a new custom module to display schedule interview time when job candidates log in the system. This custom module simply shows the candidates enrollment records.