diff --git a/erpnext/crm/doctype/appointment/appointment.json b/erpnext/crm/doctype/appointment/appointment.json
index 356cbea..b2fe7b9 100644
--- a/erpnext/crm/doctype/appointment/appointment.json
+++ b/erpnext/crm/doctype/appointment/appointment.json
@@ -11,7 +11,9 @@
   "customer_name",
   "customer_phone_number",
   "customer_skype",
-  "customer_details"
+  "customer_details",
+  "lead",
+  "calender_event"
  ],
  "fields": [
   {
@@ -56,9 +58,23 @@
    "label": "Status",
    "options": "Open\nClosed",
    "reqd": 1
+  },
+  {
+   "fieldname": "lead",
+   "fieldtype": "Link",
+   "label": "Lead",
+   "options": "Lead",
+   "reqd": 1
+  },
+  {
+   "fieldname": "calender_event",
+   "fieldtype": "Link",
+   "label": "Calender Event",
+   "options": "Event",
+   "reqd": 1
   }
  ],
- "modified": "2019-09-10 11:17:20.200603",
+ "modified": "2019-09-12 10:42:47.841841",
  "modified_by": "Administrator",
  "module": "CRM",
  "name": "Appointment",
diff --git a/erpnext/crm/doctype/appointment/appointment.py b/erpnext/crm/doctype/appointment/appointment.py
index 30d1019..4c95c6e 100644
--- a/erpnext/crm/doctype/appointment/appointment.py
+++ b/erpnext/crm/doctype/appointment/appointment.py
@@ -14,7 +14,7 @@
 		if(number_of_appointments_in_same_slot>=settings.number_of_agents):
 			frappe.throw('Time slot is not available')
 	
-	def after_insert(self):
+	def before_insert(self):
 		appointment_event = frappe.new_doc('Event')
 		appointment_event.subject = 'Appointment with ' + self.customer_name
 		appointment_event.starts_on = self.scheduled_time
@@ -23,4 +23,5 @@
 		settings = frappe.get_doc('Appointment Booking Settings')
 		appointment_event.ends_on = self.scheduled_time + timedelta(minutes=settings.appointment_duration)
 		appointment_event.insert()
+		self.calender_event = appointment_event.name
 
diff --git a/erpnext/www/book-appointment/index.html b/erpnext/www/book-appointment/index.html
index 43275eb..2e03213 100644
--- a/erpnext/www/book-appointment/index.html
+++ b/erpnext/www/book-appointment/index.html
@@ -51,10 +51,12 @@
                 placeholder="Contact Number" required>
             <input class="form-control mt-3" type="text" name="customer_skype" id="customer_skype" placeholder="Skype"
                 required>
+            <input class="form-control mt-3"type="email" name="customer_email" id="customer_email" 
+                placeholder="Email Address">
             <textarea class="form-control mt-3" name="customer_notes" id="customer_notes" cols="30" rows="10"
                 placeholder="Notes"></textarea>
             <div class="row mt-3 ">
-                <div class="col-md"><button class="btn btn-dark form-control" onclick="initialize_select_date()">Go back</button></div>
+                <div class="col-md"><button class="btn btn-dark form-control" onclick="initialise_select_date()">Go back</button></div>
                 <div class="col-md"><button class="btn btn-primary form-control " onclick="submit()" id="submit-button">Submit</button></div>
             </div>
         </div>
diff --git a/erpnext/www/book-appointment/index.js b/erpnext/www/book-appointment/index.js
index 90572fb..f9d9b6e 100644
--- a/erpnext/www/book-appointment/index.js
+++ b/erpnext/www/book-appointment/index.js
@@ -5,7 +5,7 @@
 window.holiday_list = [];
 
 async function initialise_select_date() {
-    document.getElementById('enter-details').style.display = 'none';
+    navigate_to_page(1);
     await get_global_variables();
     setup_date_picker();
     setup_timezone_selector();
@@ -115,7 +115,6 @@
         timeslot_container.appendChild(timeslot_div);
     });
     set_default_timeslot();
-    show_next_button();
 }
 
 function clear_time_slots() {
@@ -146,6 +145,7 @@
     window.selected_time = this.id
     selected_element.classList.remove("selected");
     this.classList.add("selected");
+    show_next_button();
 }
 
 function set_default_timeslot() {
@@ -159,11 +159,25 @@
     }
 }
 
-function setup_details_page(){
+function navigate_to_page(page_number){
     let page1 = document.getElementById('select-date-time');
     let page2 = document.getElementById('enter-details');
-    page1.style.display = 'none';
-    page2.style.display = 'block';
+    switch(page_number){
+        case 1: 
+            page1.style.display = 'block';
+            page2.style.display = 'none';
+            break;
+        case 2:
+            page1.style.display = 'none';
+            page2.style.display = 'block';
+            break;
+        default:
+            console.log("That's not a valid page")
+    }
+}
+
+function setup_details_page(){
+    navigate_to_page(2)
     let date_container = document.getElementsByClassName('date-span')[0];
     let time_container = document.getElementsByClassName('time-span')[0];
     date_container.innerHTML = moment(window.selected_date).format("MMM Do YYYY");
@@ -196,6 +210,7 @@
     contact.number = document.getElementById('customer_number').value;
     contact.skype = document.getElementById('customer_skype').value;
     contact.notes = document.getElementById('customer_notes').value;
+    contact.email = document.getElementById('customer_email').value;
     window.contact = contact
     console.log({ date, time, contact });
 }
diff --git a/erpnext/www/book-appointment/index.py b/erpnext/www/book-appointment/index.py
index 1b87b86..530445f 100644
--- a/erpnext/www/book-appointment/index.py
+++ b/erpnext/www/book-appointment/index.py
@@ -94,8 +94,16 @@
     appointment.customer_skype = contact['skype']
     appointment.customer_details = contact['notes']
     appointment.status = 'Open'
+    appointment.lead = find_lead_by_email(contact['email']).name
     appointment.insert()
 
+def find_lead_by_email(email):
+    if frappe.db.exists({
+        'doctype':'Lead',
+        'email_id':email
+    }):
+        return frappe.get_list('Lead',filters={'email_id':email})[0]
+    frappe.throw('Email ID not associated with any Lead. Please make sure to use the email address you got this mail on')
 
 # Helper Functions
 def filter_timeslots(date, timeslots):
