diff --git a/corsika/detail/modules/ObservationPlane.inl b/corsika/detail/modules/ObservationPlane.inl
index b3d4b916c5ea6af18ea40d23166d296ae173095b..b40e8d772f694cb0335d4c2410f78a2f6b1c660b 100644
--- a/corsika/detail/modules/ObservationPlane.inl
+++ b/corsika/detail/modules/ObservationPlane.inl
@@ -51,7 +51,7 @@ namespace corsika {
 
     // add our particles to the output file stream
     this->write(particle.getPID(), energy, displacement.dot(xAxis_),
-                displacement.dot(yAxis_));
+                displacement.dot(yAxis_), particle.getTime());
 
     CORSIKA_LOG_TRACE("Particle detected absorbed={}", deleteOnHit_);
 
diff --git a/corsika/detail/modules/writers/ObservationPlaneWriterParquet.inl b/corsika/detail/modules/writers/ObservationPlaneWriterParquet.inl
index 60752c56a9fed06b326449530c2d24d5837d233e..5eef28a41c8d3e487501157fd79a64d7e37c934e 100644
--- a/corsika/detail/modules/writers/ObservationPlaneWriterParquet.inl
+++ b/corsika/detail/modules/writers/ObservationPlaneWriterParquet.inl
@@ -31,6 +31,8 @@ namespace corsika {
                      parquet::ConvertedType::NONE);
     output_.addField("y", parquet::Repetition::REQUIRED, parquet::Type::FLOAT,
                      parquet::ConvertedType::NONE);
+    output_.addField("t", parquet::Repetition::REQUIRED, parquet::Type::FLOAT,
+                     parquet::ConvertedType::NONE);
 
     // and build the streamer
     output_.buildStreamer();
@@ -43,12 +45,13 @@ namespace corsika {
   inline void ObservationPlaneWriterParquet::write(Code const& pid,
                                                    HEPEnergyType const& energy,
                                                    LengthType const& x,
-                                                   LengthType const& y) {
+                                                   LengthType const& y,
+                                                   TimeType const& t) {
     // write the next row - we must write `shower_` first.
     *(output_.getWriter()) << shower_ << static_cast<int>(get_PDG(pid))
                            << static_cast<float>(energy / 1_GeV)
                            << static_cast<float>(x / 1_m) << static_cast<float>(y / 1_m)
-                           << parquet::EndRow;
+                           << static_cast<float>(t / 1_ns) << parquet::EndRow;
   }
 
 } // namespace corsika
diff --git a/corsika/modules/writers/ObservationPlaneWriterParquet.hpp b/corsika/modules/writers/ObservationPlaneWriterParquet.hpp
index 2a5089c26f129adb6a5281b8474c509096de3ab6..5963aa1002377749c3c2a9876d2a5bee8887b074 100644
--- a/corsika/modules/writers/ObservationPlaneWriterParquet.hpp
+++ b/corsika/modules/writers/ObservationPlaneWriterParquet.hpp
@@ -50,7 +50,8 @@ namespace corsika {
      * Write a particle to the file.
      */
     void write(Code const& pid, units::si::HEPEnergyType const& energy,
-               units::si::LengthType const& x, units::si::LengthType const& y);
+               units::si::LengthType const& x, units::si::LengthType const& y,
+               units::si::TimeType const& t);
 
   }; // class ObservationPlaneWriterParquet
 
diff --git a/corsika/output/NoOutput.hpp b/corsika/output/NoOutput.hpp
index abee413e0d007e1b2de042de0249afe46b07e40a..788149b7047581f57398822fed2c1570189eedb4 100644
--- a/corsika/output/NoOutput.hpp
+++ b/corsika/output/NoOutput.hpp
@@ -54,7 +54,7 @@ namespace corsika {
 
   protected:
     void write(Code const&, units::si::HEPEnergyType const&, units::si::LengthType const&,
-               units::si::LengthType const&) {}
+               units::si::LengthType const&, units::si::TimeType const&) {}
   };
 
 } // namespace corsika
diff --git a/tests/output/testOutputManager.cpp b/tests/output/testOutputManager.cpp
index 58f90589c2206ed1e01607cd216a6b76c53a20c9..c9194abfa210e0347e97c50a0dc4add954b03e25 100644
--- a/tests/output/testOutputManager.cpp
+++ b/tests/output/testOutputManager.cpp
@@ -26,7 +26,7 @@ struct DummyNoOutput : public NoOutput {
     NoOutput::getConfig();
     NoOutput::getSummary();
   }
-  void checkWrite() { NoOutput::write(Code::Unknown, 1_eV, 1_m, 1_m); }
+  void checkWrite() { NoOutput::write(Code::Unknown, 1_eV, 1_m, 1_m, 1_ns); }
 };
 
 struct DummyOutput : public BaseOutput {
diff --git a/tests/output/testWriterObservationPlane.cpp b/tests/output/testWriterObservationPlane.cpp
index 4b780a2b4bbcde53d531f4a6a113d4b2a7087f3a..7289ccc81e142ad7fbce0bd4fb63cb5fb24c0b2d 100644
--- a/tests/output/testWriterObservationPlane.cpp
+++ b/tests/output/testWriterObservationPlane.cpp
@@ -22,7 +22,7 @@ struct TestWriterPlane : public ObservationPlaneWriterParquet {
   YAML::Node getConfig() const { return YAML::Node(); }
 
   void checkWrite() {
-    ObservationPlaneWriterParquet::write(Code::Unknown, 1_eV, 2_m, 3_m);
+    ObservationPlaneWriterParquet::write(Code::Unknown, 1_eV, 2_m, 3_m, 4_ns);
   }
 };