diff --git a/source/RobotAPI/libraries/armem/client/query/query_fns.h b/source/RobotAPI/libraries/armem/client/query/query_fns.h
index 40927ace4f6af3602b426689e82439c09507b666..f08ae23bc6b8b6bc7fb4ed99f9ac51ed570f556c 100644
--- a/source/RobotAPI/libraries/armem/client/query/query_fns.h
+++ b/source/RobotAPI/libraries/armem/client/query/query_fns.h
@@ -144,4 +144,24 @@ namespace armarx::armem::client::query_fns
         };
     }
 
-}
+    inline
+    std::function<void(query::SnapshotSelector&)>
+    beforeOrAtTime(Time time)
+    {
+        return [ = ](query::SnapshotSelector & selector)
+        {
+            selector.beforeOrAtTime(time);
+        };
+    }
+
+    inline
+    std::function<void(query::SnapshotSelector&)>
+    beforeTime(Time time, long nElements)
+    {
+        return [ = ](query::SnapshotSelector & selector)
+        {
+            selector.beforeTime(time, nElements);
+        };
+    }
+
+}  // namespace armarx::armem::client::query_fns
diff --git a/source/RobotAPI/libraries/armem/client/query/selectors.cpp b/source/RobotAPI/libraries/armem/client/query/selectors.cpp
index 8b2aa11dea44ad42cad732b76c65c87eb1cc7ad2..cc3a73829ab7c79eabc96c30b55c4ca350ac33ad 100644
--- a/source/RobotAPI/libraries/armem/client/query/selectors.cpp
+++ b/source/RobotAPI/libraries/armem/client/query/selectors.cpp
@@ -1,4 +1,5 @@
 #include "selectors.h"
+#include "RobotAPI/libraries/armem/core/ice_conversions.h"
 
 #include <RobotAPI/libraries/armem/core/workingmemory/ice_conversions.h>
 
@@ -60,10 +61,19 @@ namespace armarx::armem::client::query
     }
 
 
-    SnapshotSelector& SnapshotSelector::beforeTimestamp(Time timestamp)
+    SnapshotSelector& SnapshotSelector::beforeOrAtTime(Time timestamp)
+    {
+        auto& q = _addQuery<dq::entity::BeforeOrAtTime>();
+        toIce(q.timestamp, timestamp);
+        return *this;
+    }
+
+
+    SnapshotSelector& SnapshotSelector::beforeTime(Time timestamp, long maxEntries)
     {
         auto& q = _addQuery<dq::entity::BeforeTime>();
         toIce(q.timestamp, timestamp);
+        toIce(q.maxEntries, maxEntries);
         return *this;
     }
 
diff --git a/source/RobotAPI/libraries/armem/client/query/selectors.h b/source/RobotAPI/libraries/armem/client/query/selectors.h
index 69fda84b54cbfc3c0c0395e23d33ebfebd7d9d1b..a1c314232099438f9498fbabb763e52c00abe862 100644
--- a/source/RobotAPI/libraries/armem/client/query/selectors.h
+++ b/source/RobotAPI/libraries/armem/client/query/selectors.h
@@ -27,8 +27,9 @@ namespace armarx::armem::client::query
         SnapshotSelector& latest();
         SnapshotSelector& atTime(Time timestamp);
         SnapshotSelector& atTimeApprox(Time timestamp, Duration eps);
-        SnapshotSelector& beforeTimestamp(Time timestamp);
 
+        SnapshotSelector& beforeTime(Time timestamp, long maxEntries);
+        SnapshotSelector& beforeOrAtTime(Time timestamp);
 
         SnapshotSelector& timeRange(Time min, Time max);
         SnapshotSelector& indexRange(long first, long last);