diff --git a/smash/web/forms/visit_import_data_form.py b/smash/web/forms/visit_import_data_form.py
index 8da982607cf6119659ead46bff6a94bbc6ca5db1..fd1494636014bfa63b4932ff4a6f1c5d0d48afef 100644
--- a/smash/web/forms/visit_import_data_form.py
+++ b/smash/web/forms/visit_import_data_form.py
@@ -1,3 +1,5 @@
+import re
+
 from django.forms import ModelForm
 
 from web.models import VisitImportData
@@ -10,3 +12,12 @@ class VisitImportDataEditForm(ModelForm):
 
     def __init__(self, *args, **kwargs):
         super().__init__(*args, **kwargs)
+
+    def clean_run_at_times(self):
+        run_at_times = self.cleaned_data['run_at_times']
+        pattern = re.compile("^[0-9]{2}:[0-9]{2}$")
+        for entry in run_at_times.split(";"):
+            if entry != '' and not pattern.match(entry):
+                self.add_error('run_at_times', "Hours must be semicolon separated HH:MM values")
+        else:
+            return run_at_times
diff --git a/smash/web/tests/forms/test_visit_import_data_forms.py b/smash/web/tests/forms/test_visit_import_data_forms.py
new file mode 100644
index 0000000000000000000000000000000000000000..bae4ac5a3abfc7a32d184da1ac377654cb1ce4af
--- /dev/null
+++ b/smash/web/tests/forms/test_visit_import_data_forms.py
@@ -0,0 +1,43 @@
+import logging
+
+from web.forms.visit_import_data_form import VisitImportDataEditForm
+from web.models import VisitImportData
+from web.tests import LoggedInWithWorkerTestCase
+from web.tests.functions import format_form_field, create_worker, get_test_study
+
+logger = logging.getLogger(__name__)
+
+
+class VisitImportDataEditFormTests(LoggedInWithWorkerTestCase):
+    def setUp(self):
+        super(VisitImportDataEditFormTests, self).setUp()
+        self.visit_import_data = VisitImportData.objects.create(study=get_test_study(),
+                                                                import_worker=create_worker())
+
+    def test_invalid_run_at_times(self):
+        self.login_as_admin()
+
+        form_data = self.get_form_data(self.visit_import_data)
+        form_data["run_at_times"] = "bla"
+
+        voucher_form = VisitImportDataEditForm(instance=self.visit_import_data, data=form_data)
+
+        self.assertFalse(voucher_form.is_valid())
+        self.assertTrue("run_at_times" in voucher_form.errors)
+
+    def test_valid_form(self):
+        self.login_as_admin()
+
+        form_data = self.get_form_data(self.visit_import_data)
+
+        voucher_form = VisitImportDataEditForm(instance=self.visit_import_data, data=form_data)
+
+        self.assertTrue(voucher_form.is_valid())
+
+    @staticmethod
+    def get_form_data(visit_import_data: VisitImportData) -> dict:
+        voucher_form = VisitImportDataEditForm(instance=visit_import_data)
+        form_data = {}
+        for key, value in list(voucher_form.initial.items()):
+            form_data[key] = format_form_field(value)
+        return form_data
diff --git a/smash/web/tests/view/test_visit_import_data.py b/smash/web/tests/view/test_visit_import_data.py
new file mode 100644
index 0000000000000000000000000000000000000000..e15dbe9e34358b005d94aa7016681b7f9fe34a63
--- /dev/null
+++ b/smash/web/tests/view/test_visit_import_data.py
@@ -0,0 +1,41 @@
+import logging
+
+from django.urls import reverse
+
+from web.forms.visit_import_data_form import VisitImportDataEditForm
+from web.models import VisitImportData
+from web.tests import LoggedInWithWorkerTestCase
+from web.tests.functions import get_test_study, format_form_field
+
+logger = logging.getLogger(__name__)
+
+
+class VisitImportDataViewViewTests(LoggedInWithWorkerTestCase):
+    def setUp(self):
+        super().setUp()
+        self.study = get_test_study()
+        self.visit_import_data = VisitImportData.objects.create(study=get_test_study())
+
+    def test_render_edit(self):
+        self.login_as_admin()
+        response = self.client.get(reverse('web.views.import_visit_edit',
+                                           kwargs={'study_id': self.study.id, 'import_id': self.visit_import_data.id}))
+        self.assertEqual(response.status_code, 200)
+
+    def test_save_edit(self):
+        form_data = self.get_form_data(self.visit_import_data)
+
+        response = self.client.post(
+            reverse('web.views.import_visit_edit',
+                    kwargs={'study_id': self.study.id, 'import_id': self.visit_import_data.id}), data=form_data)
+
+        self.assertEqual(response.status_code, 302)
+        self.assertFalse("study" in response['Location'])
+
+    @staticmethod
+    def get_form_data(visit_import_data: VisitImportData) -> dict:
+        voucher_form = VisitImportDataEditForm(instance=visit_import_data)
+        form_data = {}
+        for key, value in list(voucher_form.initial.items()):
+            form_data[key] = format_form_field(value)
+        return form_data