A
diff --git a/erpnext/crm/doctype/appointment/appointment.py b/erpnext/crm/doctype/appointment/appointment.py
index 204b066..cce6a1d 100644
--- a/erpnext/crm/doctype/appointment/appointment.py
+++ b/erpnext/crm/doctype/appointment/appointment.py
@@ -3,8 +3,13 @@
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
-# import frappe
+import frappe
 from frappe.model.document import Document
 
 class Appointment(Document):
-	pass
+	def validate(self):
+		number_of_appointments_in_same_slot = frappe.db.count('Appointment',filters={'scheduled_time':self.scheduled_time})
+		settings = frappe.get_doc('Appointment Booking Settings')
+		if(number_of_appointments_in_same_slot>=settings.number_of_agents):
+			frappe.throw('Time slot is not available')
+
diff --git a/erpnext/crm/doctype/appointment_booking_settings/appointment_booking_settings.json b/erpnext/crm/doctype/appointment_booking_settings/appointment_booking_settings.json
index d54b568..cf27f77 100644
--- a/erpnext/crm/doctype/appointment_booking_settings/appointment_booking_settings.json
+++ b/erpnext/crm/doctype/appointment_booking_settings/appointment_booking_settings.json
@@ -48,7 +48,7 @@
   }
  ],
  "issingle": 1,
- "modified": "2019-09-01 10:20:06.935115",
+ "modified": "2019-09-03 12:27:09.763730",
  "modified_by": "Administrator",
  "module": "CRM",
  "name": "Appointment Booking Settings",
diff --git a/erpnext/crm/doctype/appointment_booking_settings/appointment_booking_settings.py b/erpnext/crm/doctype/appointment_booking_settings/appointment_booking_settings.py
index 3307636..8f1fb14 100644
--- a/erpnext/crm/doctype/appointment_booking_settings/appointment_booking_settings.py
+++ b/erpnext/crm/doctype/appointment_booking_settings/appointment_booking_settings.py
@@ -3,8 +3,28 @@
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
-# import frappe
+import frappe
+from frappe import _
+import datetime
 from frappe.model.document import Document
 
 class AppointmentBookingSettings(Document):
-	pass
+	def validate(self):
+		# Day of week should not be repeated
+		list_of_days = []
+		date = '01/01/1970 '
+		format_string = "%d/%m/%Y %H:%M:%S"
+		for record in self.availability_of_slots:
+			list_of_days.append(record.day_of_week)
+			# Difference between from_time and to_time is multiple of appointment_duration
+			from_time = datetime.datetime.strptime(date+record.from_time,format_string)
+			to_time = datetime.datetime.strptime(date+record.to_time,format_string)
+			timedelta = to_time-from_time
+			if(from_time>to_time):
+				frappe.throw('From Time cannot be later than To Time for '+record.day_of_week)
+			if timedelta.total_seconds() % (self.appointment_duration*60):
+				frappe.throw('The difference between from time and To Time must be a multiple of Appointment ')
+		set_of_days = set(list_of_days)
+		if len(list_of_days) > len(set_of_days):
+			frappe.throw(_('Days of week must be unique'))
+