diff --git a/qt/widgets/common/src/CatalogHelper.cpp b/qt/widgets/common/src/CatalogHelper.cpp
index 19095919d7cb7cab5bdbffeb2411565d68767ff1..9c2aa55ba668e5adcf4100aa7947516078f029b2 100644
--- a/qt/widgets/common/src/CatalogHelper.cpp
+++ b/qt/widgets/common/src/CatalogHelper.cpp
@@ -218,6 +218,19 @@ const std::map<std::string, std::string> CatalogHelper::validateProperties(
       errors.emplace(iter->first + "_err", documentation);
     }
   }
+  // catch invalid date formats
+  std::string dateField = "StartDate";
+  try {
+
+    getTimevalue(catalogAlgorithm->getProperty(dateField));
+    dateField = "EndDate";
+
+    getTimevalue(catalogAlgorithm->getProperty(dateField));
+  } catch (std::invalid_argument &) {
+    std::string documentation =
+        propertyDocumentation(catalogAlgorithm->getProperties(), dateField);
+    errors.emplace(dateField + "_err", documentation);
+  }
   return errors;
 }
 
@@ -238,6 +251,7 @@ time_t CatalogHelper::getTimevalue(const std::string &inputDate) {
   std::string isoDate = dateSegments.at(2) + "-" + dateSegments.at(1) + "-" +
                         dateSegments.at(0) + " 00:00:00.000";
   // Return the date as time_t value.
+
   return Mantid::Types::Core::DateAndTime(isoDate).to_time_t();
 }