diff --git a/lib/config/migration.js b/lib/config/migration.js
index ad5131e026d1b07b2af6cb5f6f4f13646487728d..74dea3413b368ea46e0c1536ca80a04b582bc808 100644
--- a/lib/config/migration.js
+++ b/lib/config/migration.js
@@ -1,3 +1,4 @@
+const later = require('later');
 const options = require('./definitions').getOptions();
 
 const optionTypes = {};
@@ -89,22 +90,29 @@ function migrateConfig(config, parentConfig) {
           schedules[i].includes('before ') &&
           schedules[i].includes('after ')
         ) {
-          isMigrated = true;
-          const toSplit = schedules[i];
-          schedules[i] = toSplit
-            .replace(
-              /^(after|before) (.*?) and (after|before) (.*?)( |$)(.*)/,
-              '$1 $2 $6'
-            )
-            .trim();
-          schedules.push(
-            toSplit
+          const parsedSchedule = later.parse.text(
+            // We need to massage short hours first before we can parse it
+            schedules[i].replace(/( \d?\d)((a|p)m)/g, '$1:00$2')
+          ).schedules[0];
+          // Only migrate if the after time is greater than before, e.g. "after 10pm and before 5am"
+          if (parsedSchedule && parsedSchedule.t_a[0] > parsedSchedule.t_b[0]) {
+            isMigrated = true;
+            const toSplit = schedules[i];
+            schedules[i] = toSplit
               .replace(
                 /^(after|before) (.*?) and (after|before) (.*?)( |$)(.*)/,
-                '$3 $4 $6'
+                '$1 $2 $6'
               )
-              .trim()
-          );
+              .trim();
+            schedules.push(
+              toSplit
+                .replace(
+                  /^(after|before) (.*?) and (after|before) (.*?)( |$)(.*)/,
+                  '$3 $4 $6'
+                )
+                .trim()
+            );
+          }
         }
       }
       for (let i = 0; i < schedules.length; i += 1) {
@@ -126,6 +134,14 @@ function migrateConfig(config, parentConfig) {
           isMigrated = true;
           schedules[i] = schedules[i].replace('days', 'day');
         }
+        if (
+          schedules[i].indexOf('every ') === 0 &&
+          schedules[i].endsWith('day') &&
+          !schedules[i].endsWith('weekday')
+        ) {
+          isMigrated = true;
+          schedules[i] = schedules[i].replace('every ', 'on ');
+        }
       }
       if (isMigrated) {
         if (typeof val === 'string' && schedules.length === 1) {
diff --git a/test/config/__snapshots__/migration.spec.js.snap b/test/config/__snapshots__/migration.spec.js.snap
index 601ded54de9756c1f59bff4bd81793e0d020423b..b9de284329459f576f121386eca7a4f0cf133b3a 100644
--- a/test/config/__snapshots__/migration.spec.js.snap
+++ b/test/config/__snapshots__/migration.spec.js.snap
@@ -126,3 +126,10 @@ Object {
   },
 }
 `;
+
+exports[`config/migration migrateConfig(config, parentConfig) migrates before and after schedules 2`] = `
+Array [
+  "after 10pm every weekday",
+  "before 7am every weekday",
+]
+`;
diff --git a/test/config/migration.spec.js b/test/config/migration.spec.js
index a1c5f81672c31f02a26a68105fd8e36e283ff4f0..05e409cbd16705600d0f6b49a081d20874159490 100644
--- a/test/config/migration.spec.js
+++ b/test/config/migration.spec.js
@@ -77,6 +77,7 @@ describe('config/migration', () => {
       expect(migratedConfig.dependencies.schedule.length).toBe(2);
       expect(migratedConfig.dependencies.schedule[0]).toEqual('after 10pm');
       expect(migratedConfig.dependencies.schedule[1]).toEqual('before 7am');
+      expect(migratedConfig.devDependencies.schedule).toMatchSnapshot();
       expect(migratedConfig.devDependencies.schedule.length).toBe(2);
       expect(migratedConfig.devDependencies.schedule[0]).toEqual(
         'after 10pm every weekday'
@@ -85,6 +86,30 @@ describe('config/migration', () => {
         'before 7am every weekday'
       );
     });
+    it('migrates every friday', () => {
+      const config = {
+        schedule: 'every friday',
+      };
+      const parentConfig = { ...defaultConfig };
+      const { isMigrated, migratedConfig } = configMigration.migrateConfig(
+        config,
+        parentConfig
+      );
+      expect(isMigrated).toBe(true);
+      expect(migratedConfig.schedule).toEqual('on friday');
+    });
+    it('does not migrate every weekday', () => {
+      const config = {
+        schedule: 'every weekday',
+      };
+      const parentConfig = { ...defaultConfig };
+      const { isMigrated, migratedConfig } = configMigration.migrateConfig(
+        config,
+        parentConfig
+      );
+      expect(isMigrated).toBe(false);
+      expect(migratedConfig.schedule).toEqual(config.schedule);
+    });
     it('does not migrate multi days', () => {
       const config = {
         schedule: 'after 5:00pm on wednesday and thursday',
@@ -98,6 +123,18 @@ describe('config/migration', () => {
       expect(isMigrated).toBe(false);
       expect(migratedConfig.schedule).toEqual(config.schedule);
     });
+    it('does not migrate hour range', () => {
+      const config = {
+        schedule: 'after 1:00pm and before 5:00pm',
+      };
+      const parentConfig = { ...defaultConfig };
+      const { isMigrated, migratedConfig } = configMigration.migrateConfig(
+        config,
+        parentConfig
+      );
+      expect(migratedConfig.schedule).toEqual(config.schedule);
+      expect(isMigrated).toBe(false);
+    });
     it('it migrates packages', () => {
       const config = {
         packages: [
diff --git a/test/workers/branch/schedule.spec.js b/test/workers/branch/schedule.spec.js
index 3031d45db8b4287d637153c86e9be824933d96e5..502854b69f5688795b4074b8bf1f8756746a92ed 100644
--- a/test/workers/branch/schedule.spec.js
+++ b/test/workers/branch/schedule.spec.js
@@ -26,6 +26,9 @@ describe('workers/branch/schedule', () => {
         false
       );
     });
+    it('returns false for every xday', () => {
+      expect(schedule.hasValidSchedule(['every friday'])[0]).toBe(false);
+    });
     it('returns true if schedule has days of week', () => {
       expect(schedule.hasValidSchedule(['on friday and saturday'])[0]).toBe(
         true