diff --git a/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.js b/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.js
index f92f738..20503f9 100644
--- a/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.js
+++ b/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.js
@@ -1,20 +1,39 @@
 // Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors
 // For license information, please see license.txt
 
-cur_frm.add_fetch("student_group", "program", "program");
-cur_frm.add_fetch("student_group", "course", "course");
-cur_frm.add_fetch("student_group", "academic_year", "academic_year");
-cur_frm.add_fetch("student_group", "academic_term", "academic_term");
 
-frappe.ui.form.on("Course Scheduling Tool", {
-
-	refresh: function(frm) {
+frappe.ui.form.on('Course Scheduling Tool', {
+	setup(frm) {
+		frm.add_fetch('student_group', 'program', 'program');
+		frm.add_fetch('student_group', 'course', 'course');
+		frm.add_fetch('student_group', 'academic_year', 'academic_year');
+		frm.add_fetch('student_group', 'academic_term', 'academic_term');
+	},
+	refresh(frm) {
 		frm.disable_save();
-		frm.page.set_primary_action(__("Schedule Course"), function() {
-			frappe.call({
-				method: "schedule_course",
-				doc: frm.doc
-			})
+		frm.page.set_primary_action(__('Schedule Course'), () => {
+			frm.call('schedule_course')
+				.then(r => {
+					if (!r.message) {
+						frappe.throw(__('There were errors creating Course Schedule'));
+					}
+					const { course_schedules } = r.message;
+					if (course_schedules) {
+						const html = `
+						<table class="table table-bordered">
+							<caption>${__('Following course schedules were created')}</caption>
+							<thead><tr><th>${__("Course")}</th><th>${__("Date")}</th></tr></thead>
+							<tbody>
+								${course_schedules.map(
+									c => `<tr><td><a href="#Form/Course Schedule/${c.name}">${c.name}</a></td>
+									<td>${c.schedule_date}</td></tr>`
+								).join('')}
+							</tbody>
+						</table>`
+
+						frappe.msgprint(html);
+					}
+				});
 		});
 	}
 });
\ No newline at end of file
diff --git a/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.json b/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.json
index e0fc1e2..9bb99d7 100644
--- a/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.json
+++ b/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.json
@@ -476,7 +476,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
-   "fieldname": "rechedule", 
+   "fieldname": "reschedule", 
    "fieldtype": "Check", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
@@ -485,7 +485,7 @@
    "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 0, 
-   "label": "Rechedule", 
+   "label": "Reschedule", 
    "length": 0, 
    "no_copy": 0, 
    "permlevel": 0, 
@@ -602,7 +602,7 @@
  "istable": 0, 
  "max_attachments": 0, 
  "menu_index": 0, 
- "modified": "2017-06-30 08:21:47.696063", 
+ "modified": "2017-11-21 16:47:58.091740", 
  "modified_by": "Administrator", 
  "module": "Schools", 
  "name": "Course Scheduling Tool", 
diff --git a/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.py b/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.py
index 4e07922..647d34b 100644
--- a/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.py
+++ b/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.py
@@ -10,71 +10,85 @@
 from frappe.utils import add_days, getdate
 from erpnext.schools.utils import OverlapError
 
+
 class CourseSchedulingTool(Document):
+
 	def schedule_course(self):
-		"""Creates course schedules as per specified parametes"""
-		
-		course_schedules= []
-		course_schedules_errors= []
-		rescheduled= []
-		reschedule_errors= []
-		
+		"""Creates course schedules as per specified parameters"""
+
+		course_schedules = []
+		course_schedules_errors = []
+		rescheduled = []
+		reschedule_errors = []
+
 		self.validate_mandatory()
 		self.validate_date()
-		self.instructor_name= frappe.db.get_value("Instructor", self.instructor, "instructor_name")
+		self.instructor_name = frappe.db.get_value(
+			"Instructor", self.instructor, "instructor_name")
 
-		group_based_on, course = frappe.db.get_value("Student Group", self.student_group, ["group_based_on", "course"])
+		group_based_on, course = frappe.db.get_value(
+			"Student Group", self.student_group, ["group_based_on", "course"])
+
 		if group_based_on == "Course":
-			self.course = course	
+			self.course = course
 
-		if self.rechedule:
-			rescheduled, reschedule_errors = self.delete_course_schedule(rescheduled, reschedule_errors)
-		
+		if self.reschedule:
+			rescheduled, reschedule_errors = self.delete_course_schedule(
+				rescheduled, reschedule_errors)
+
 		date = self.course_start_date
-		while(date < self.course_end_date):
+		while date < self.course_end_date:
 			if self.day == calendar.day_name[getdate(date).weekday()]:
 				course_schedule = self.make_course_schedule(date)
 				try:
+					print('pass')
 					course_schedule.save()
 				except OverlapError:
+					print('fail')
 					course_schedules_errors.append(date)
 				else:
-					course_schedules.append(course_schedule.name + " on " + date)
-				
+					course_schedules.append(course_schedule)
+
 				date = add_days(date, 7)
 			else:
 				date = add_days(date, 1)
-			
-		frappe.local.message_log = []
-		if course_schedules:
-			frappe.msgprint(_("Course Schedules created:") + "\n" + "\n".join(course_schedules))
-		if course_schedules_errors:
-			frappe.msgprint(_("There were errors while scheduling course on :") + "\n" + "\n".join(course_schedules_errors))
-		if rescheduled:
-			frappe.msgprint(_("Course Schedules deleted:") + "\n" + "\n".join(rescheduled))
-		if reschedule_errors:
-			frappe.msgprint(_("There were errors while deleting following schedules:") + "\n" + "\n".join(reschedule_errors))
-			
+
+		return dict(
+			course_schedules=course_schedules,
+			course_schedules_errors=course_schedules_errors,
+			rescheduled=rescheduled,
+			reschedule_errors=reschedule_errors
+		)
+
 	def validate_mandatory(self):
 		"""Validates all mandatory fields"""
-		
-		fields = ['course', 'room', 'instructor', 'from_time', 'to_time', 'course_start_date', 'course_end_date', 'day']
-		for d in  fields:
+
+		fields = ['course', 'room', 'instructor', 'from_time',
+				  'to_time', 'course_start_date', 'course_end_date', 'day']
+		for d in fields:
 			if not self.get(d):
-				frappe.throw(_("{0} is mandatory").format(self.meta.get_label(d)))	
+				frappe.throw(_("{0} is mandatory").format(
+					self.meta.get_label(d)))
 
 	def validate_date(self):
 		"""Validates if Course Start Date is greater than Course End Date"""
 		if self.course_start_date > self.course_end_date:
-			frappe.throw("Course Start Date cannot be greater than Course End Date.")
+			frappe.throw(
+				"Course Start Date cannot be greater than Course End Date.")
 
 	def delete_course_schedule(self, rescheduled, reschedule_errors):
 		"""Delete all course schedule within the Date range and specified filters"""
-		schedules = frappe.get_list("Course Schedule", fields=["name", "schedule_date"], filters = 
-			[["student_group", "=", self.student_group],
-			["course", "=", self.course],
-			["schedule_date", ">=", self.course_start_date], 
-			["schedule_date", "<=", self.course_end_date]])
+
+		schedules = frappe.get_list("Course Schedule",
+			fields=["name", "schedule_date"],
+			filters=[
+				["student_group", "=", self.student_group],
+				["course", "=", self.course],
+				["schedule_date", ">=", self.course_start_date],
+				["schedule_date", "<=", self.course_end_date]
+			]
+		)
+
 		for d in schedules:
 			try:
 				if self.day == calendar.day_name[getdate(d.schedule_date).weekday()]:
@@ -83,19 +97,18 @@
 			except:
 				reschedule_errors.append(d.name)
 		return rescheduled, reschedule_errors
-			
+
 	def make_course_schedule(self, date):
 		"""Makes a new Course Schedule.
 		:param date: Date on which Course Schedule will be created."""
-		
+
 		course_schedule = frappe.new_doc("Course Schedule")
 		course_schedule.student_group = self.student_group
 		course_schedule.course = self.course
 		course_schedule.instructor = self.instructor
 		course_schedule.instructor_name = self.instructor_name
 		course_schedule.room = self.room
-		course_schedule.schedule_date= date
-		course_schedule.from_time= self.from_time
-		course_schedule.to_time= self.to_time
+		course_schedule.schedule_date = date
+		course_schedule.from_time = self.from_time
+		course_schedule.to_time = self.to_time
 		return course_schedule
-	
\ No newline at end of file
