diff --git a/CHANGELOG.md b/CHANGELOG.md
index f72543af12f379b5fd6872cf2a109b57a88e14ae..007370aa4c5c83f3127c81fed9705aa1db262635 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -13,6 +13,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 
 ### Changed ###
 
+* `get_property` method also accepts instances of properties now, e.g.
+  `record.get_property(Property(name="length"))`
+
 ### Deprecated ###
 
 ### Removed ###
diff --git a/src/caosdb/common/models.py b/src/caosdb/common/models.py
index d5a56257020be27c0e3c95a02bebb846a7689c85..ca13c23e80bb7e147d8adf1b80790bbc328e6634 100644
--- a/src/caosdb/common/models.py
+++ b/src/caosdb/common/models.py
@@ -537,23 +537,37 @@ class Entity(object):
 
         return self.properties
 
-    def get_property(self, key):
+    def get_property(self, pattern):
+        """ Return the first matching property or None.
+
+        Parameters
+        ----------
+        pattern : str or int or Entity
+            The name or id to look for (case-insensitive) or an Entity where
+            the name or id is used to match the properites of this instance.
+
+        Returns
+        -------
+        property : Property
+            The first Property of this Entity with a matching name or id.
+
+        """
         result = None
-        if hasattr(key, "name"):
-            result = self.get_property(key.name)
-        if result is None and hasattr(key, "id"):
-            result = self.get_property(key.id)
+        if hasattr(pattern, "name"):
+            result = self.get_property(pattern.name)
+        if result is None and hasattr(pattern, "id"):
+            result = self.get_property(pattern.id)
         if result is not None:
             return result
 
-        if isinstance(key, int):
+        if isinstance(pattern, int):
             for p in self.properties:
-                if p.id is not None and int(p.id) == int(key):
+                if p.id is not None and int(p.id) == int(pattern):
                     return p
         else:
             for p in self.properties:
                 if (p.name is not None
-                        and str(p.name).lower() == str(key).lower()):
+                        and str(p.name).lower() == str(pattern).lower()):
 
                     return p