diff --git a/erpnext/crm/doctype/appointment/appointment.py b/erpnext/crm/doctype/appointment/appointment.py
index ac2e0a8..6d23f2a 100644
--- a/erpnext/crm/doctype/appointment/appointment.py
+++ b/erpnext/crm/doctype/appointment/appointment.py
@@ -21,6 +21,9 @@
 
 	def before_insert(self):
 		self.lead = _find_lead_by_email(self.lead).name
+
+
+	def after_insert(self):
 		appointment_event = frappe.get_doc({
 			'doctype': 'Event',
 			'subject': ' '.join(['Appointment with', self.customer_name]),
@@ -31,9 +34,7 @@
 		})
 		appointment_event.insert(ignore_permissions=True)
 		self.calendar_event = appointment_event.name
-
-	def after_insert(self):
-		available_agents = _get_agents_sorted_by_asc_workload()
+		available_agents = _get_agents_sorted_by_asc_workload(self.scheduled_time.date())
 		for agent in available_agents:
 			if(_check_agent_availability(agent, self.scheduled_time)):
 				agent = agent[0]
@@ -51,7 +52,7 @@
 					calendar_event.save()
 				break
 
-def _get_agents_sorted_by_asc_workload():
+def _get_agents_sorted_by_asc_workload(date):
 	appointments = frappe.db.get_list('Appointment', fields='*')
 	agent_list = _get_agent_list_as_strings()	
 	if not appointments:
@@ -61,7 +62,7 @@
 		assigned_to = frappe.parse_json(appointment._assign)
 		if not assigned_to:
 			continue
-		if assigned_to[0] in agent_list:
+		if (assigned_to[0] in agent_list) and appointment.scheduled_time.date() == date:
 			appointment_counter[assigned_to[0]] += 1
 	sorted_agent_list = appointment_counter.most_common()
 	sorted_agent_list.reverse()
@@ -69,7 +70,7 @@
 	return sorted_agent_list
 
 def _find_lead_by_email(email):
-    lead_list = frappe.get_list('Lead',filters={'email_id':email},ignore_permissions=True)
+    lead_list = frappe.get_list('Lead', filters={'email_id':email}, ignore_permissions=True)
     if lead_list:
         return lead_list[0]
     frappe.throw('Email ID not associated with any Lead. Please make sure to use the email address you got this mail on')
@@ -92,7 +93,7 @@
 
 
 def _get_employee_from_user(user):
-	employee_docname = frappe.db.exists({'doctype':'Employee','user_id':user})
+	employee_docname = frappe.db.exists({'doctype':'Employee', 'user_id':user})
 	if employee_docname:
-		return frappe.get_doc('Employee',employee_docname[0][0]) # frappe.db.exists returns a tuple of a tuple
+		return frappe.get_doc('Employee', employee_docname[0][0]) # frappe.db.exists returns a tuple of a tuple
 	return None
