diff --git a/lib/workers/branch/schedule.js b/lib/workers/branch/schedule.js
index a4e96ed2aac1efd174870cff87ad35cb5758a18c..c3e0b92785f40be739bfa1373ba083de2c191438 100644
--- a/lib/workers/branch/schedule.js
+++ b/lib/workers/branch/schedule.js
@@ -11,9 +11,6 @@ function fixShortHours(input) {
 }
 
 function hasValidSchedule(schedule) {
-  if (!Array.isArray(schedule)) {
-    return [false, 'Invalid schedule'];
-  }
   let message;
   // check if any of the schedules fail to parse
   const hasFailedSchedules = schedule.some(scheduleText => {
@@ -42,16 +39,23 @@ function hasValidSchedule(schedule) {
 }
 
 function isScheduledNow(config) {
-  config.logger.debug({ schedule: config.schedule }, `Checking schedule`);
+  let configSchedule = config.schedule;
+  config.logger.debug({ schedule: configSchedule }, `Checking schedule`);
   if (
-    !config.schedule ||
-    config.schedule.length === 0 ||
-    config.schedule[0] === ''
+    !configSchedule ||
+    configSchedule.length === 0 ||
+    configSchedule[0] === ''
   ) {
     config.logger.debug('No schedule defined');
     return true;
   }
-  const [validSchedule, errorMessage] = hasValidSchedule(config.schedule);
+  if (!Array.isArray(configSchedule)) {
+    config.logger.warn(
+      `config schedule is not an array: ${JSON.stringify(configSchedule)}`
+    );
+    configSchedule = [configSchedule];
+  }
+  const [validSchedule, errorMessage] = hasValidSchedule(configSchedule);
   if (!validSchedule) {
     config.logger.error(errorMessage);
     return true;
@@ -72,9 +76,9 @@ function isScheduledNow(config) {
     now.hours() * 3600 + now.minutes() * 60 + now.seconds();
   config.logger.debug(`currentSeconds=${currentSeconds}`);
   // Support a single string but massage to array for processing
-  config.logger.debug(`Checking ${config.schedule.length} schedule(s)`);
+  config.logger.debug(`Checking ${configSchedule.length} schedule(s)`);
   // We run if any schedule matches
-  const isWithinSchedule = config.schedule.some(scheduleText => {
+  const isWithinSchedule = configSchedule.some(scheduleText => {
     config.logger.debug(`Checking schedule "${scheduleText}"`);
     const parsedSchedule = later.parse.text(fixShortHours(scheduleText));
     // Later library returns array of schedules
diff --git a/test/workers/branch/schedule.spec.js b/test/workers/branch/schedule.spec.js
index ad668d7fd95dc4b87b816af58e5f6a9d28c689e1..e183e862230141b33d6ddd979498845cf58ecfb4 100644
--- a/test/workers/branch/schedule.spec.js
+++ b/test/workers/branch/schedule.spec.js
@@ -7,9 +7,6 @@ describe('workers/branch/schedule', () => {
     beforeEach(() => {
       jest.resetAllMocks();
     });
-    it('returns false if schedule is not an array', () => {
-      expect(schedule.hasValidSchedule({ a: 1 }, logger)[0]).toBe(false);
-    });
     it('returns false for invalid schedule', () => {
       expect(schedule.hasValidSchedule(['foo'], logger)[0]).toBe(false);
     });
@@ -105,6 +102,11 @@ describe('workers/branch/schedule', () => {
       const res = schedule.isScheduledNow(config);
       expect(res).toBe(false);
     });
+    it('massages string', () => {
+      config.schedule = 'before 4:00am';
+      const res = schedule.isScheduledNow(config);
+      expect(res).toBe(false);
+    });
     it('supports outside hours', () => {
       config.schedule = ['after 4:00pm'];
       const res = schedule.isScheduledNow(config);