diff --git a/source/RobotAPI/interface/armem/query.ice b/source/RobotAPI/interface/armem/query.ice
index 87cd1b1e5787f00d9fedebb9aa23601276ff48af..2fd1b057779c6d9e78647e24d9fe64b47fa265de 100644
--- a/source/RobotAPI/interface/armem/query.ice
+++ b/source/RobotAPI/interface/armem/query.ice
@@ -30,6 +30,12 @@ module armarx
                     long minTimestamp = -1;  // -1 for oldest
                     long maxTimestamp = -1;  // -1 for latest
                 };
+                /// Get just the timestamps without data. Default values for all.
+                class Timestamps extends EntityQuery
+                {
+                    long minTimestamp = -1;  // -1 for oldest
+                    long maxTimestamp = -1;  // -1 for latest
+                };
             }
 
 
diff --git a/source/RobotAPI/libraries/armem/query/EntityQueryProcessor.cpp b/source/RobotAPI/libraries/armem/query/EntityQueryProcessor.cpp
index 96f90c17895addc19ad49fc4b2a67a2ec7544a3a..2c7dff6a5171c93fb357f50d93acb82343fab3ab 100644
--- a/source/RobotAPI/libraries/armem/query/EntityQueryProcessor.cpp
+++ b/source/RobotAPI/libraries/armem/query/EntityQueryProcessor.cpp
@@ -71,11 +71,11 @@ namespace armarx::armem
         {
             Time min = fromIce<Time>(query.minTimestamp);
             Time max = fromIce<Time>(query.maxTimestamp);
-            process(result, min, max, entity);
+            process(result, min, max, entity, false);
         }
     }
 
-    void EntityQueryProcessor::process(Entity& result, const Time& min, const Time& max, const Entity& entity) const
+    void EntityQueryProcessor::process(Entity& result, const Time& min, const Time& max, const Entity& entity, bool timestampsOnly) const
     {
         // Returns an iterator pointing to the first element that is not less than (i.e. greater or equal to) key.
         auto begin = min.toMicroSeconds() > 0 ? entity.history.lower_bound(min) : entity.history.begin();
@@ -84,7 +84,24 @@ namespace armarx::armem
 
         for (auto it = begin; it != end && it != entity.history.end(); ++it)
         {
-            result.addSnapshot(*it->second);
+            if (timestampsOnly)
+            {
+                result.history.emplace(it->second->time, nullptr);
+            }
+            else
+            {
+                result.addSnapshot(*it->second);
+            }
+        }
+    }
+
+    void EntityQueryProcessor::process(Entity& result, const query::entity::Timestamps& query, const Entity& entity) const
+    {
+        if (query.minTimestamp <= query.maxTimestamp || query.minTimestamp < 0 || query.maxTimestamp < 0)
+        {
+            Time min = fromIce<Time>(query.minTimestamp);
+            Time max = fromIce<Time>(query.maxTimestamp);
+            process(result, min, max, entity, true);
         }
     }
 
diff --git a/source/RobotAPI/libraries/armem/query/EntityQueryProcessor.h b/source/RobotAPI/libraries/armem/query/EntityQueryProcessor.h
index 64235ff2844cb14e5fa1a367c3782bbe5f37962e..0ff0f5af2e621207c9f6249060bcf1e9116c2a5e 100644
--- a/source/RobotAPI/libraries/armem/query/EntityQueryProcessor.h
+++ b/source/RobotAPI/libraries/armem/query/EntityQueryProcessor.h
@@ -25,8 +25,10 @@ namespace armarx::armem
         void process(Entity& result, const query::entity::All& query, const Entity& entity) const;
         void process(Entity& result, const query::entity::Single& query, const Entity& entity) const;
         void process(Entity& result, const query::entity::Range& query, const Entity& entity) const;
+        void process(Entity& result, const query::entity::Timestamps& query, const Entity& entity) const;
 
-        void process(Entity& result, const Time& min, const Time& max, const Entity& entity) const;
+        void process(Entity& result, const Time& min, const Time& max, const Entity& entity,
+                     bool timestampsOnly = false) const;
 
 
         data::EntityPtr processToIce(const query::EntityQuery& query, const Entity& entity) const;