diff --git a/smash/web/importer/csv_tns_visit_import_reader.py b/smash/web/importer/csv_tns_visit_import_reader.py
index 9842573db0fa1a197b35135143544bf39883f96a..ec174b3415d1d96db99da007a815c839761475f2 100644
--- a/smash/web/importer/csv_tns_visit_import_reader.py
+++ b/smash/web/importer/csv_tns_visit_import_reader.py
@@ -50,9 +50,12 @@ class TnsCsvVisitImportReader:
                     data = {}
                     for h, v in zip(headers, row):
                         data[h] = v
+
                     nd_number = self.get_study_subject_id(data)
+
                     study_subject = self.get_study_subject_by_id(nd_number)
-                    date = self.extract_date(data['dateofvisit'])
+
+                    date = self.get_visit_date(data)
 
                     location = self.extract_location(data)
 
@@ -179,6 +182,12 @@ class TnsCsvVisitImportReader:
 
         return result
 
+    def get_visit_date(self, data: dict) -> datetime:
+        try:
+            return TnsCsvVisitImportReader.extract_date(data[self.visit_import_data.visit_date_column_name])
+        except KeyError as e:
+            raise EtlException('Visit date is not defined') from e
+
     def get_study_subject_by_id(self, nd_number: str) -> StudySubject:
         study_subjects = StudySubject.objects.filter(nd_number=nd_number, study=self.visit_import_data.study)
         if len(study_subjects) == 0:
@@ -199,7 +208,8 @@ class TnsCsvVisitImportReader:
         except KeyError as e:
             raise EtlException('Subject id is not defined') from e
 
-    def extract_date(self, text: str) -> datetime:
+    @staticmethod
+    def extract_date(text: str) -> datetime:
 
         # by default use day after tomorrow
         result = datetime.datetime.now().replace(hour=9, minute=0) + datetime.timedelta(days=2)
diff --git a/smash/web/migrations/0179_visitimportdata.py b/smash/web/migrations/0179_visitimportdata.py
index 83d8d74250379d2986eb1c1034c72012bac74ace..fece3e794d703a031333e31dbccf72ecb6007833 100644
--- a/smash/web/migrations/0179_visitimportdata.py
+++ b/smash/web/migrations/0179_visitimportdata.py
@@ -19,6 +19,7 @@ class Migration(migrations.Migration):
                 ('import_worker', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='web.Worker', verbose_name='Worker used by importer')),
                 ('study', models.ForeignKey(editable=False, on_delete=django.db.models.deletion.CASCADE, to='web.Study', verbose_name='Study')),
                 ('subject_id_column_name', models.CharField(blank=False, default='donor_id', max_length=128, null=False,verbose_name='Subject id column name')),
+                ('visit_date_column_name', models.CharField(blank=False, default='dateofvisit', max_length=128, null=False,verbose_name='Visit date column name')),
             ],
         ),
     ]
diff --git a/smash/web/models/etl/visit_import.py b/smash/web/models/etl/visit_import.py
index d613677f300e6a3453cb50060d27906573f9d4ad..7247cc1f8b3892f6dd892444af4e22a3a1db1921 100644
--- a/smash/web/models/etl/visit_import.py
+++ b/smash/web/models/etl/visit_import.py
@@ -31,3 +31,10 @@ class VisitImportData(models.Model):
                                               null=False,
                                               blank=False
                                               )
+
+    visit_date_column_name = models.CharField(max_length=128,
+                                              verbose_name='Visit date column name',
+                                              default='dateofvisit',
+                                              null=False,
+                                              blank=False
+                                              )
diff --git a/smash/web/tests/importer/test_tns_csv_visit_import_reader.py b/smash/web/tests/importer/test_tns_csv_visit_import_reader.py
index b5f56c8018f5a698c5509955d3be4c0f3c8d88dd..a1b8f17b1ba00b248d6ab0c006aa6a1492d01ef4 100644
--- a/smash/web/tests/importer/test_tns_csv_visit_import_reader.py
+++ b/smash/web/tests/importer/test_tns_csv_visit_import_reader.py
@@ -170,6 +170,15 @@ class TestTnsCsvVisitReader(TestCase):
         subject_id = TnsCsvVisitImportReader(self.visit_import_data).get_study_subject_id({'donor_id': 'x001'})
         self.assertEqual('x001', subject_id)
 
+    def test_get_visit_date_by_invalid_id_column(self):
+        self.assertRaises(EtlException,
+                          TnsCsvVisitImportReader(self.visit_import_data).get_visit_date,
+                          {'invalid_date': '19901010'})
+
+    def test_get_visit_date_by_valid_id_column(self):
+        visit_date = TnsCsvVisitImportReader(self.visit_import_data).get_visit_date({'dateofvisit': '19901010'})
+        self.assertEqual(1990, visit_date.year)
+
     def test_get_study_subject_by_id_for_existing_subject(self):
         reader = TnsCsvVisitImportReader(self.visit_import_data)
         study_subject = StudySubject.objects.get(nd_number='cov-000111')