diff --git a/corsika/detail/modules/TimeCut.inl b/corsika/detail/modules/TimeCut.inl
new file mode 100644
index 0000000000000000000000000000000000000000..4bf2fa7dd5de9dd3c56f14a9ee4f67c94f9742c2
--- /dev/null
+++ b/corsika/detail/modules/TimeCut.inl
@@ -0,0 +1,29 @@
+/*
+ * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu
+ *
+ * This software is distributed under the terms of the GNU General Public
+ * Licence version 3 (GPL Version 3). See file LICENSE for a full version of
+ * the license.
+ */
+
+#pragma once
+
+#include <corsika/modules/TimeCut.hpp>
+
+namespace corsika {
+
+  inline TimeCut::TimeCut(const TimeType time)
+  : time_(time) {}
+
+  inline ProcessReturn TimeCut::doContinuous(
+      corsika::setup::Stack::particle_type& particle, corsika::setup::Trajectory const&,
+      bool const) {
+    CORSIKA_LOG_TRACE("TimeCut::doContinuous");
+    if (particle.getTime() >= time_) {
+      CORSIKA_LOG_TRACE("stopping continuous process");
+      return ProcessReturn::ParticleAbsorbed;
+    }
+    return ProcessReturn::Ok;
+  }
+
+} // namespace corsika
diff --git a/corsika/modules/TimeCut.hpp b/corsika/modules/TimeCut.hpp
new file mode 100644
index 0000000000000000000000000000000000000000..ca622c5ce2df8ece533c89deb48c090aff552164
--- /dev/null
+++ b/corsika/modules/TimeCut.hpp
@@ -0,0 +1,44 @@
+/*
+ * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu
+ *
+ * This software is distributed under the terms of the GNU General Public
+ * Licence version 3 (GPL Version 3). See file LICENSE for a full version of
+ * the license.
+ */
+
+#pragma once
+
+#include <corsika/framework/core/ParticleProperties.hpp>
+#include <corsika/framework/core/PhysicalUnits.hpp>
+#include <corsika/framework/process/ContinuousProcess.hpp>
+
+#include <corsika/setup/SetupStack.hpp>
+#include <corsika/setup/SetupTrajectory.hpp>
+
+namespace corsika {
+
+  /*
+   * Simple TimeCut process. Stops the sequence at the indicated time
+   */
+  class TimeCut : public ContinuousProcess<TimeCut> {
+
+  public:
+    TimeCut(TimeType const time);
+
+    ProcessReturn doContinuous(
+        corsika::setup::Stack::particle_type& vParticle,
+        corsika::setup::Trajectory const& vTrajectory,
+        const bool limitFlag = false); // this is not used for TimeCut
+    LengthType getMaxStepLength(corsika::setup::Stack::particle_type const&,
+                                corsika::setup::Trajectory const&) {
+      return meter * std::numeric_limits<double>::infinity();
+    }
+
+  private:
+    TimeType time_;
+
+  };
+
+} // namespace corsika
+
+#include <corsika/detail/modules/TimeCut.inl>