public void ProcessSchedule(string path, string fileName, string fileURL)
        {
            // Connect to recently saved excel sheet
            OleDbConnection conn = null;

            if (fileName.EndsWith(".xls"))
            {
                conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; data source=" + path + ";Extended Properties=\"Excel 8.0;HDR=1;IMEX=1\";");
            }
            if (fileName.EndsWith(".xlsx"))
            {
                conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=\"Excel 12.0 Xml;HDR=1;IMEX=1\";");
            }

            conn.Open();
            DataTable data  = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
            string    sheet = data.Rows[0]["Table_Name"].ToString();

            OleDbCommand     sheetCommand = new OleDbCommand(@"SELECT * FROM [" + sheet + @"]", conn);
            OleDbDataAdapter sheetAdapter = new OleDbDataAdapter(sheetCommand);

            DataSet sheetData = new DataSet();

            sheetAdapter.Fill(sheetData);
            conn.Close();

            string examURL     = "";
            string calendarURL = "";

            try
            {
                Object[] examSchedule = GenerateExamSchedule(sheetData);
                SaveExamSheet(examSchedule, fileName);

                APIManager drive = new APIManager(Session["USER"].ToString());

                System.IO.File.Delete(path);
                path = AppDomain.CurrentDomain.GetData("DataDirectory").ToString() + "/sheetStorage/Exam_" + fileName;

                examURL     = Task.Run(() => drive.UploadSheet(HttpContext, path, "Exam_" + fileName, true)).Result;
                calendarURL = Task.Run(() => drive.CreateCalendarEvent(HttpContext, "Exam_" + fileName, (List <Exam>)examSchedule[0])).Result;

                System.IO.File.Delete(path);
            } catch (Exception e)
            {
                TempData["ERROR"] = "The provided file was incompatible. It may be missing required value columns. Please refer to the template sheet for comparison!";
            }

            DBManager db = new DBManager();

            db.NewHistoryEntry(fileName, fileURL, "Exam_" + fileName, examURL, calendarURL, Session["USER"].ToString());
        }