diff --git a/CHANGELOG.md b/CHANGELOG.md
index d77e58424d9932fd8178536c4cf7dda6a697469c..de8099318cdc1480f2cd2c06497a7cd374e65495 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,18 +5,19 @@ All notable changes to this project will be documented in this file.
 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
 
-## [Unreleased] ##
+## [0.16.0] - 2024-11-13 ##
 
 ### Added ###
+
 * `ParentList` and `PropertyList` now have a `filter` function that allows to select a subset of
   the contained elements by ID and/or name.
-
 * Official support for Python 3.13
 * Added arguments to `describe_diff` that allow customizing the labels for the 'old' and the 'new' diffs.
 * Optional `realm` argument for `linkahead_admin.py set_user_password`
   which defaults to `None`, i.e., the server's default realm.
 
 ### Changed ###
+
 * `compare_entities` is now case insensitive with respect to property and
   recordtype names
 * `_ParentList` is now called `ParentList`
@@ -24,21 +25,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 * `ParentList.remove` is now case insensitive when a name is used.
 
 ### Deprecated ###
+
 * the use of the arguments `old_entity` and `new_entity` in `compare_entities`
   is now deprecated. Please use `entity0` and `entity1` respectively instead.
 
-### Removed ###
-
 ### Fixed ###
 
 * [gitlab.indiscale.com#200](https://gitlab.indiscale.com/caosdb/src/caosdb-pylib/-/merge_requests/153)
   ``linkahead_admin.py`` prints reasonable error messages when users
   or roles don't exist.
 
-### Security ###
-
-### Documentation ###
-
 ## [0.15.1] - 2024-08-21 ##
 
 ### Deprecated ###