diff --git a/admin/admin_settings.php b/admin/admin_settings.php
index 8f9a5115..af7c7493 100644
--- a/admin/admin_settings.php
+++ b/admin/admin_settings.php
@@ -2220,6 +2220,87 @@ $modsForHesk_settings = mfh_getSettings();
+
diff --git a/install/database-validation.php b/install/database-validation.php
index 4b2b14ef..cce19ef6 100644
--- a/install/database-validation.php
+++ b/install/database-validation.php
@@ -206,6 +206,8 @@ hesk_dbConnect();
$all_good &= run_column_check('categories', 'mfh_description');
$all_good &= run_column_check('custom_fields', 'mfh_description');
$all_good &= run_setting_check('migrationNumber');
+ output_header_row('3.3.0');
+ $all_good &= run_table_check('mfh_calendar_business_hours');
if ($all_good) {
echo "";
diff --git a/install/migrations/v330/CalendarImprovements/AddBusinessHoursTable.php b/install/migrations/v330/CalendarImprovements/AddBusinessHoursTable.php
new file mode 100644
index 00000000..90f881c5
--- /dev/null
+++ b/install/migrations/v330/CalendarImprovements/AddBusinessHoursTable.php
@@ -0,0 +1,16 @@
+executeQuery("CREATE TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "mfh_calendar_business_hours`
+ (`day_of_week` INT NOT NULL, `all_day` INT NOT NULL,
+ `start_time` VARCHAR(5) NOT NULL, `end_time` VARCHAR(5) NOT NULL)");
+ }
+
+ function innerDown($hesk_settings) {
+ $this->executeQuery("DROP TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "mfh_calendar_business_hours`");
+ }
+}
\ No newline at end of file