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 046cca51e7f31a9e423ec9131e627cdecdb6f7e0..12edef83b5b463839429faabad5a22e6a543c621 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
@@ -57,15 +57,16 @@ entity_names:
   container_size_prop: "Container size"
   containertype_rt: ContainerType
   custom_label_prop: custom_label
+  end_date_prop: end_date
+  event_rt: Event
+  first_name_prop: first_name
+  igsn_doi_prop: igsn_doi
   labelcounter_prop: counter
   labelcounter_rt: LabelCounter
-  responsible_rt: Responsible
-  first_name_prop: first_name
   last_name_prop: last_name
-  start_date_prop: start_date
-  end_date_prop: end_date
-  igsn_doi_prop: igsn_doi
   parent_sample_prop: Parent_Sample
+  responsible_rt: Responsible
+  start_date_prop: start_date
 
 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_get_event.py b/sample-management-custom/caosdb-server/scripting/bin/sample_helpers/sample_upload_get_event.py
index aa624989c49f0fc0cb464a7b5b1ee655b8e14a75..d15eed61bbffb14ba742acd0e7472f2af25319d9 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
@@ -20,7 +20,8 @@ import pandas as pd
 
 from caosadvancedtools.datainconsistency import DataInconsistencyError
 
-from .utils import get_column_header_name, get_entity_name
+from .sample_upload_get_person import get_person
+from .utils import get_column_header_name, get_entity_name, update_property
 from ..bis_utils import return_value_if_not_none
 
 
@@ -31,7 +32,30 @@ def add_event_to_sample(sample: db.Record, data: pd.Series) -> db.Record:
     """
 
     _perform_sanity_checks(sample, data)
-    # TODO Add event-specific columns
+    event = db.Record().add_parent(get_entity_name("event_rt"))
+
+    # We performed the sanity checks so we can assume that if the
+    # Start/Stop Latitude exists, all start/stop data exist.
+    positions = []
+    position_prop = db.get_entity_name(get_entity_name("Position"))
+
+    # Take care of positions
+    for mode in ["start", "stop"]:
+        if (get_column_header_name(f"Latitude {mode}") in data and
+                return_value_if_not_none(data[get_column_header_name(f"Latitude {mode}")]) is not None):
+            position.append(
+                _create_position(
+                    mode=mode,
+                    lat=return_value_if_not_none(data[get_column_header_name(f"Latitude {mode}")]),
+                    lng=return_value_if_not_none(data[get_column_header_name(f"Longitude {mode}")]),
+                    ele=return_value_if_not_none(data[get_column_header_name(f"Elevation {mode}")]),
+                )
+            )
+    if positions:
+        update_property(event, position_prop.id, positions,
+                        datatype=db.LIST(get_entity_name("Position")))
+
+    # TODO: Start/end date, remaining event props
 
     return sample