diff --git a/corsika/detail/modules/TrackWriter.inl b/corsika/detail/modules/TrackWriter.inl
index 8af3c31dc45b718d8213346e3896e2dffb02812d..a1102ce2cf7ee18de3902baff0c141617dc099f7 100644
--- a/corsika/detail/modules/TrackWriter.inl
+++ b/corsika/detail/modules/TrackWriter.inl
@@ -28,7 +28,8 @@ namespace corsika {
     auto const end = vT.getPosition(1).getCoordinates();
 
     // write the track to the file
-    this->write(vP.getPID(), vP.getEnergy(), start, end);
+    this->write(vP.getPID(), vP.getEnergy(), start, vP.getTime() - vT.getDuration(), end,
+                vP.getTime());
 
     return ProcessReturn::Ok;
   }
@@ -48,7 +49,7 @@ namespace corsika {
 
     // add default units for values
     node["type"] = "TrackWriter";
-    node["units"] = "GeV | m";
+    node["units"] = "GeV | m | s";
 
     return node;
   }
diff --git a/corsika/detail/modules/writers/TrackWriterParquet.inl b/corsika/detail/modules/writers/TrackWriterParquet.inl
index 26c62bdf0e5e8260c431dc114aaed25e4aab0a82..90e0ba2c720e0ec079e853c9c9fac62f4a2ddba7 100644
--- a/corsika/detail/modules/writers/TrackWriterParquet.inl
+++ b/corsika/detail/modules/writers/TrackWriterParquet.inl
@@ -30,12 +30,16 @@ namespace corsika {
                      parquet::ConvertedType::NONE);
     output_.addField("start_z", parquet::Repetition::REQUIRED, parquet::Type::FLOAT,
                      parquet::ConvertedType::NONE);
+    output_.addField("start_t", parquet::Repetition::REQUIRED, parquet::Type::FLOAT,
+                     parquet::ConvertedType::NONE);
     output_.addField("end_x", parquet::Repetition::REQUIRED, parquet::Type::FLOAT,
                      parquet::ConvertedType::NONE);
     output_.addField("end_y", parquet::Repetition::REQUIRED, parquet::Type::FLOAT,
                      parquet::ConvertedType::NONE);
     output_.addField("end_z", parquet::Repetition::REQUIRED, parquet::Type::FLOAT,
                      parquet::ConvertedType::NONE);
+    output_.addField("end_t", parquet::Repetition::REQUIRED, parquet::Type::FLOAT,
+                     parquet::ConvertedType::NONE);
 
     // and build the streamer
     output_.buildStreamer();
@@ -47,7 +51,9 @@ namespace corsika {
 
   inline void TrackWriterParquet::write(Code const& pid, HEPEnergyType const& energy,
                                         QuantityVector<length_d> const& start,
-                                        QuantityVector<length_d> const& end) {
+                                        TimeType const& t_start,
+                                        QuantityVector<length_d> const& end,
+                                        TimeType const& t_end) {
 
     // write the next row - we must write `shower_` first.
     // clang-format off
@@ -58,9 +64,11 @@ namespace corsika {
         << static_cast<float>(start[0] / 1_m)
         << static_cast<float>(start[1] / 1_m)
         << static_cast<float>(start[2] / 1_m)
+        << static_cast<float>(t_start / 1_ns)
         << static_cast<float>(end[0] / 1_m)
         << static_cast<float>(end[1] / 1_m)
         << static_cast<float>(end[2] / 1_m)
+        << static_cast<float>(t_end / 1_ns)
         << parquet::EndRow;
     // clang-format on
   }
diff --git a/corsika/modules/writers/TrackWriterParquet.hpp b/corsika/modules/writers/TrackWriterParquet.hpp
index 7caf90558b2ae0fc5c1cc13ca38b7d009e70b335..8473cbf7f4a17c649ddae2f5b20ffaf7dc400616 100644
--- a/corsika/modules/writers/TrackWriterParquet.hpp
+++ b/corsika/modules/writers/TrackWriterParquet.hpp
@@ -49,8 +49,8 @@ namespace corsika {
      * Write a track to the file.
      */
     void write(Code const& pid, units::si::HEPEnergyType const& energy,
-               QuantityVector<length_d> const& start,
-               QuantityVector<length_d> const& end);
+               QuantityVector<length_d> const& start, TimeType const& t_start,
+               QuantityVector<length_d> const& end, TimeType const& t_end);
 
   private:
     ParquetStreamer output_; ///< The primary output file.
diff --git a/tests/output/testWriterTracks.cpp b/tests/output/testWriterTracks.cpp
index 38cf0cf5985a956aaef03b589b93a1b6b9f9b260..43fbf88704e423027a157c099f472e44b9ff63f9 100644
--- a/tests/output/testWriterTracks.cpp
+++ b/tests/output/testWriterTracks.cpp
@@ -21,7 +21,8 @@ struct TestWriterTrack : public TrackWriterParquet {
   YAML::Node getConfig() const { return YAML::Node(); }
 
   void checkWrite() {
-    TrackWriterParquet::write(Code::Unknown, 1_eV, {2_m, 3_m, 4_m}, {5_m, 6_m, 7_m});
+    TrackWriterParquet::write(Code::Unknown, 1_eV, {2_m, 3_m, 4_m}, 5_s, {6_m, 7_m, 8_m},
+                              9_s);
   }
 };