@Override public void scheduleDayOfWeekJob(DayOfWeekSchedulableJob dayOfWeekSchedulableJob) { logObjectIfNotNull(dayOfWeekSchedulableJob); MotechEvent motechEvent = dayOfWeekSchedulableJob.getMotechEvent(); LocalDate start = dayOfWeekSchedulableJob.getStartDate(); LocalDate end = dayOfWeekSchedulableJob.getEndDate(); Time time = dayOfWeekSchedulableJob.getTime(); CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.atHourAndMinuteOnGivenDaysOfWeek(time.getHour(), time.getMinute(), dayOfWeekSchedulableJob.getCronDays().toArray(new Integer[0])); CronTriggerImpl cronTrigger = (CronTriggerImpl) cronScheduleBuilder.build(); CronSchedulableJob cronSchedulableJob = new CronSchedulableJob(motechEvent, cronTrigger.getCronExpression(), start.toDate(), end.toDate(), dayOfWeekSchedulableJob.isIgnorePastFiresAtStart()); scheduleJob(cronSchedulableJob); }