diff --git a/src/core/events.py b/src/core/events.py
index 8652ae4d361868e6dd0efb6cc85c854d40ec6afa..ee0255d3db3c340a727332ef4c0bac6e9e602cf1 100644
--- a/src/core/events.py
+++ b/src/core/events.py
@@ -103,6 +103,7 @@ class EngineEventDispatcher():
 
         binding = self.attach(TrackServiceHandler)
         binding.subscribe("on_timeslot_start")
+        binding.subscribe("on_timeslot_end")
         binding.subscribe("on_play")
         binding.subscribe("on_metadata")
         binding.subscribe("on_queue")
diff --git a/src/plugins/trackservice.py b/src/plugins/trackservice.py
index 2c3935e53bc96a581418c3efb46262e66d9c9594..f62a67cb943b92a2e233c073a718e7d361c901c1 100644
--- a/src/plugins/trackservice.py
+++ b/src/plugins/trackservice.py
@@ -62,6 +62,17 @@ class TrackServiceHandler():
         self.playlog.set_timeslot(timeslot)
 
 
+
+    def on_timeslot_end(self, timeslot):
+        """
+        Called when a timeslot ends.
+        """
+        if timeslot:
+            self.logger.info(f"Timeslot '{timeslot}' just ended")
+        self.playlog.set_timeslot(None)
+
+
+
     def on_queue(self, entries):
         """
         Items have been queued. They are stored to the local playlog, allowing later