Appointment controller