UserUserScheduling ClientScheduling ClientScheduling ServerScheduling ServerOpen clientGet available HealthcareServicesAvailable HealthcareServicesSelect HealthcareServiceGet available SchedulesAvailable SchedulesGet available SlotsAvailable SlotsSelect slotopt[holding appointment]Reserve slotReserve slot responseopt[Patient does not exist]Enter detailsCreate PatientCreate Patient responseBook appointmentBook appointment responseConfirm appointment booking