public static Scheduler startScheduler() throws SchedulerException {
        
        SchedulerFactory schedFact = new StdSchedulerFactory("Configuration/quartz.properties");
        
        Scheduler sched = schedFact.getScheduler();
        
        sched.start();
       
        ArrayList<Integer> mins = new ArrayList<>();
        ArrayList<String> times = new ArrayList<>();
        
        //get showtimes and length of show from file created by settings GUI
        try {
            try (Scanner scan = new Scanner(new File("showtimes.txt"))) {
                while(scan.hasNext()){
                    //add show length and showtime to our ArrayLists
                    mins.add(Integer.parseInt(scan.nextLine()));
                    times.add(scan.nextLine());
                }
                
                    WeeklyCalendar weekly = new WeeklyCalendar();
                    //setWeeklyCalendar gets excluded days and sets them in calendar
                    setWeeklyCalendar(weekly);
                    sched.addCalendar("weekly", weekly, true, true);
                    //check for and delete any jobs already on the scheduler
                    for(int i = 0; i < 7; i++) {
                        if(sched.checkExists(jobKey("showClock" + i, "ShowClockGroup"))) {
                        sched.deleteJob(jobKey("showClock" + i, "ShowClockGroup"));
                    }
                    }
                    //instantiate our jobs and triggers
                    for(int i = 0; i < mins.size(); i++) {
                    JobDetail showClock = newJob(ShowClockJob.class)
                            .withIdentity("showClock" + i, "ShowClockGroup")
                            //pass in show's length to be used by ShowClockJob
                            .usingJobData("min", mins.get(i))
                            .build();
                        
                    Trigger showTrigger = newTrigger()
                            .withIdentity("showTrigger" + i, "ShowClockGroup")
                            .withSchedule(cronSchedule(times.get(i))
                                .withMisfireHandlingInstructionFireAndProceed())
                            .modifiedByCalendar("weekly")
                            .build();
                    //schedule job with trigger
                    sched.scheduleJob(showClock, showTrigger); 
                }
            
        }
                
        } catch (SchedulerException | FileNotFoundException ex) {
            Logger.getLogger(SchedulerUtils.class.getName()).log(Level.SEVERE, null, ex);
        }  
        //return the scheduler for use in our main class
        return sched;
    }