diff --git a/erpnext/crm/doctype/availability_of_slots/availability_of_slots.py b/erpnext/crm/doctype/availability_of_slots/availability_of_slots.py
index 8258471..94fb0c9 100644
--- a/erpnext/crm/doctype/availability_of_slots/availability_of_slots.py
+++ b/erpnext/crm/doctype/availability_of_slots/availability_of_slots.py
@@ -6,5 +6,6 @@
 # import frappe
 from frappe.model.document import Document
 
+
 class AvailabilityOfSlots(Document):
-	pass
+    pass
diff --git a/erpnext/www/book-appointment/index.html b/erpnext/www/book-appointment/index.html
index b915484..f407427 100644
--- a/erpnext/www/book-appointment/index.html
+++ b/erpnext/www/book-appointment/index.html
@@ -3,8 +3,8 @@
 {% block title %}{{ _("Book Appointment") }}{% endblock %}
 
 {% block script %}
-    <script src="assets/js/moment-bundle.min.js"></script>
-    <script src="book-appointment/index.js"></script>
+<script src="assets/js/moment-bundle.min.js"></script>
+<script src="book-appointment/index.js"></script>
 {% endblock %}
 
 {% block page_content %}
@@ -18,15 +18,16 @@
         <div class="row justify-content-center mt-3">
             <div class="col-md-6 align-self-center ">
                 <div class="row">
-                    <input type="date" oninput="on_date_or_timezone_select()" name="appointment-date" id="appointment-date"
-                        class="form-control mt-3 col-md m-3">
-                    <select name="appointment-timezone" oninput="on_date_or_timezone_select()" id="appointment-timezone" class="form-control mt-3 col-md">
+                    <input type="date" oninput="on_date_or_timezone_select()" name="appointment-date"
+                        id="appointment-date" class="form-control mt-3 col-md m-3">
+                    <select name="appointment-timezone" oninput="on_date_or_timezone_select()" id="appointment-timezone"
+                        class="form-control mt-3 col-md">
                     </select>
                 </div>
             </div>
         </div>
-        <div class="row mt-3" id="timeslot-container" >
-            
+        <div class="row mt-3" id="timeslot-container">
+
         </div>
         <div class="row justify-content-center mt-3">
             <div class="col-md-4">
diff --git a/erpnext/www/book-appointment/index.py b/erpnext/www/book-appointment/index.py
index 9c37fb0..f4e96b4 100644
--- a/erpnext/www/book-appointment/index.py
+++ b/erpnext/www/book-appointment/index.py
@@ -4,50 +4,62 @@
 
 no_cache = 1
 
+
 @frappe.whitelist(allow_guest=True)
 def get_appointment_settings():
     settings = frappe.get_doc('Appointment Booking Settings')
     return settings
 
+
 @frappe.whitelist(allow_guest=True)
 def get_holiday_list(holiday_list_name):
-    holiday_list = frappe.get_doc('Holiday List',holiday_list_name)
+    holiday_list = frappe.get_doc('Holiday List', holiday_list_name)
     return holiday_list
 
+
 @frappe.whitelist(allow_guest=True)
 def get_timezones():
-    timezones = frappe.get_list('Timezone',fields='*')
+    timezones = frappe.get_list('Timezone', fields='*')
     return timezones
 
+
 @frappe.whitelist(allow_guest=True)
-def get_appointment_slots(date,timezone):
+def get_appointment_slots(date, timezone):
     timezone = int(timezone)
     format_string = '%Y-%m-%d %H:%M:%S'
-    query_start_time = datetime.datetime.strptime(date + ' 00:00:00',format_string)
-    query_end_time = datetime.datetime.strptime(date + ' 23:59:59',format_string)
-    query_start_time = _convert_to_ist(query_start_time,timezone)
-    query_end_time = _convert_to_ist(query_end_time,timezone) 
+    query_start_time = datetime.datetime.strptime(
+        date + ' 00:00:00', format_string)
+    query_end_time = datetime.datetime.strptime(
+        date + ' 23:59:59', format_string)
+    query_start_time = _convert_to_ist(query_start_time, timezone)
+    query_end_time = _convert_to_ist(query_end_time, timezone)
     # Database queries
     settings = frappe.get_doc('Appointment Booking Settings')
     holiday_list = frappe.get_doc('Holiday List', settings.holiday_list)
-    timeslots = get_available_slots_between(query_start_time, query_end_time, settings)
-    
+    timeslots = get_available_slots_between(
+        query_start_time, query_end_time, settings)
+
     # Filter timeslots based on date
     converted_timeslots = []
     for timeslot in timeslots:
         # Check if holiday
-        if _is_holiday(timeslot.date(),holiday_list):
-            converted_timeslots.append(dict(time=_convert_to_tz(timeslot,timezone),availability=False))
+        if _is_holiday(timeslot.date(), holiday_list):
+            converted_timeslots.append(
+                dict(time=_convert_to_tz(timeslot, timezone), availability=False))
             continue
         # Check availability
-        if check_availabilty(timeslot,settings):
-            converted_timeslots.append(dict(time=_convert_to_tz(timeslot,timezone),availability=True))
+        if check_availabilty(timeslot, settings):
+            converted_timeslots.append(
+                dict(time=_convert_to_tz(timeslot, timezone), availability=True))
         else:
-            converted_timeslots.append(dict(time=_convert_to_tz(timeslot,timezone),availability=False))
-    date_required = datetime.datetime.strptime(date + ' 00:00:00',format_string).date()
-    converted_timeslots = filter_timeslots(date_required,converted_timeslots)
+            converted_timeslots.append(
+                dict(time=_convert_to_tz(timeslot, timezone), availability=False))
+    date_required = datetime.datetime.strptime(
+        date + ' 00:00:00', format_string).date()
+    converted_timeslots = filter_timeslots(date_required, converted_timeslots)
     return converted_timeslots
 
+
 def get_available_slots_between(query_start_time, query_end_time, settings):
     records = _get_records(query_start_time, query_end_time, settings)
     timeslots = []
@@ -59,7 +71,7 @@
                 query_start_time, record.from_time)
             end_time = _deltatime_to_datetime(
                 query_start_time, record.to_time)
-        else :
+        else:
             current_time = _deltatime_to_datetime(
                 query_end_time, record.from_time)
             end_time = _deltatime_to_datetime(
@@ -69,11 +81,13 @@
             current_time += appointment_duration
     return timeslots
 
-@frappe.whitelist(allow_guest=True) 
-def create_appointment(date,time,contact):
+
+@frappe.whitelist(allow_guest=True)
+def create_appointment(date, time, contact):
     appointment = frappe.new_doc('Appointment')
     format_string = '%Y-%m-%d %H:%M:%S'
-    appointment.scheduled_time = datetime.datetime.strptime(date+" "+time,format_string)
+    appointment.scheduled_time = datetime.datetime.strptime(
+        date+" "+time, format_string)
     contact = json.loads(contact)
     appointment.customer_name = contact['name']
     appointment.customer_phone_number = contact['number']
@@ -83,15 +97,17 @@
 
 
 # Helper Functions
-def filter_timeslots(date,timeslots):
+def filter_timeslots(date, timeslots):
     filtered_timeslots = []
     for timeslot in timeslots:
         if(timeslot['time'].date() == date):
             filtered_timeslots.append(timeslot)
     return filtered_timeslots
 
-def check_availabilty(timeslot,settings):
-    return frappe.db.count('Appointment',{'scheduled_time':timeslot})<settings.number_of_agents
+
+def check_availabilty(timeslot, settings):
+    return frappe.db.count('Appointment', {'scheduled_time': timeslot}) < settings.number_of_agents
+
 
 def _is_holiday(date, holiday_list):
     for holiday in holiday_list.holidays:
@@ -99,6 +115,7 @@
             return True
     return False
 
+
 def _get_records(start_time, end_time, settings):
     records = []
     for record in settings.availability_of_slots:
@@ -106,14 +123,17 @@
             records.append(record)
     return records
 
+
 def _deltatime_to_datetime(date, deltatime):
     time = (datetime.datetime.min + deltatime).time()
     return datetime.datetime.combine(date.date(), time)
 
+
 def _datetime_to_deltatime(date_time):
-    midnight = datetime.datetime.combine(date_time.date(),datetime.time.min)
+    midnight = datetime.datetime.combine(date_time.date(), datetime.time.min)
     return (date_time-midnight)
 
+
 def _convert_to_ist(datetime_object, timezone):
     offset = datetime.timedelta(minutes=timezone)
     datetime_object = datetime_object + offset
@@ -121,6 +141,7 @@
     datetime_object = datetime_object - offset
     return datetime_object
 
+
 def _convert_to_tz(datetime_object, timezone):
     offset = datetime.timedelta(minutes=timezone)
     datetime_object = datetime_object - offset
@@ -128,5 +149,6 @@
     datetime_object = datetime_object + offset
     return datetime_object
 
+
 WEEKDAYS = ["Monday", "Tuesday", "Wednesday",
-            "Thursday", "Friday", "Saturday", "Sunday"]
\ No newline at end of file
+            "Thursday", "Friday", "Saturday", "Sunday"]
