diff --git a/sample-management-custom/caosdb-server/scripting/bin/sample_helpers/default_constants.yml b/sample-management-custom/caosdb-server/scripting/bin/sample_helpers/default_constants.yml
index 119abc9c165507e9b33a7f69e3224017ba55e2f2..c7f1baa9c119ab1996eb642a0efbf3e1a2f5475e 100644
--- a/sample-management-custom/caosdb-server/scripting/bin/sample_helpers/default_constants.yml
+++ b/sample-management-custom/caosdb-server/scripting/bin/sample_helpers/default_constants.yml
@@ -21,6 +21,9 @@ csv_column_names:
   start_date_prop: "Start date"
   end_date_prop: "End date"
   igsn_doi_prop: "IGSN DOI"
+  locality_description_prop: "Locality description"
+  locality_name_prop: "Locality name"
+  responsible_person_event: "Event responsible"
 
 csv_column_descriptions:
   LinkAhead ID: "An ID generated by LinkAhead (either integer or URL to this entity). Do not change this column!"
@@ -67,6 +70,9 @@ entity_names:
   parent_sample_prop: Parent_Sample
   responsible_rt: Responsible
   start_date_prop: start_date
+  locality_description_prop: locality_description
+  locality_name_prop: locality_name
+  responsible_person_event: Responsible_Person
 
 error_prefix: "Something went wrong:"
 error_suffix: "Please contact your administrator(s)."
diff --git a/sample-management-custom/caosdb-server/scripting/bin/sample_helpers/sample_upload_column_definitions.py b/sample-management-custom/caosdb-server/scripting/bin/sample_helpers/sample_upload_column_definitions.py
index 235d6949eb3153c6d1e4891cb5938242bda5f987..d6a62cb72d10698c5842b031c38f30145ac969da 100644
--- a/sample-management-custom/caosdb-server/scripting/bin/sample_helpers/sample_upload_column_definitions.py
+++ b/sample-management-custom/caosdb-server/scripting/bin/sample_helpers/sample_upload_column_definitions.py
@@ -103,12 +103,12 @@ SPECIAL_TREATMENT_SAMPLE = _use_custom_names([
     "Embargo",
     "End date",
     "Event responsible",
-    "IGSN DOI",
+    "igsn_doi_prop",
     "Latitude start",
     "Latitude stop",
     "Level",
-    "Locality description",
-    "Locality name",
+    "locality_description_prop",
+    "locality_name_prop",
     "Longitude start",
     "Longitude stop",
     "Main User",
diff --git a/sample-management-custom/caosdb-server/scripting/bin/sample_helpers/sample_upload_get_event.py b/sample-management-custom/caosdb-server/scripting/bin/sample_helpers/sample_upload_get_event.py
index 7c762df32b703c26ef937bf76e0a3bafe4519e2a..c15df79805965ec982012775a113704979ecdf1b 100644
--- a/sample-management-custom/caosdb-server/scripting/bin/sample_helpers/sample_upload_get_event.py
+++ b/sample-management-custom/caosdb-server/scripting/bin/sample_helpers/sample_upload_get_event.py
@@ -55,6 +55,27 @@ def add_event_to_sample(sample: db.Record, data: pd.Series) -> db.Record:
         event = update_property(event, position_prop.id, positions,
                                 datatype=db.LIST(get_entity_name("Position")), property_name=position_prop.name)
 
+    # Further event properties
+    for event_p in ["Biome", "Campaign", "Device", "EventType",
+                    "igsn_doi_prop", "level", "locality_description_prop",
+                    "locality_name_prop", "Sphere"]:
+        prop = db.get_entity_by_name(get_entity_name(event_p))
+        if (get_column_header_name(event_p) in data and
+                return_value_if_not_none(data[get_column_header_name(event_p)]) is not None):
+            event = update_property(event, prop.id, return_value_if_not_none(
+                data[get_column_header_name(event_p)]), property_name=prop.name)
+
+    # Special treatment for (list of) persons
+    resp_prop = db.get_entity_by_name(get_entity_name("responsible_person_event"))
+    if (get_column_header_name("responsible_person_event") in data and
+            return_value_if_not_none(data[get_column_header_name("responsible_person_event")]) is not None):
+        resps = return_value_if_not_none(data[get_column_header_name("responsible_person_event")])
+        if not isinstance(resps, list):
+            resps = [resps]
+        recs = [get_person(resp) for resp in resps]
+        event = update_property(event, resp_prop.id, recs, datatype=db.LIST(
+            "Person"), property_name=resp_prop.name)
+
     for time_p in ["start_date_prop", "end_date_prop"]:
         prop = db.get_entity_by_name(get_entity_name(time_p))
         if (get_column_header_name(time_p) in data and
diff --git a/sample-management-custom/caosdb-server/scripting/home/identifiables.yml b/sample-management-custom/caosdb-server/scripting/home/identifiables.yml
index 25a6e4a6a1f05dc4537c58dd97afb447b3ab4e60..c3df242f791a8224fadd31da7c0ffe75889ef775 100644
--- a/sample-management-custom/caosdb-server/scripting/home/identifiables.yml
+++ b/sample-management-custom/caosdb-server/scripting/home/identifiables.yml
@@ -1,3 +1,5 @@
+Campaign:
+  - name
 ControlledRecordType:
   - name
 Event: