bug fix: isAvailable now catches conflicting appointments that start before and end after existing appointments.