diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 817f0819e1a73a4e536822d5b8105f012d81513b..a1465a40de115cbe0cd857d57a1b52cd6d3d88a8 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -156,6 +156,26 @@ unittest_py311:
   image: python:3.11
   script: *python_test_script
 
+unittest_py312:
+  tags: [docker]
+  stage: unittest
+  image: python:3.12
+  script: *python_test_script
+
+unittest_py313:
+  allow_failure: true
+  tags: [docker]
+  stage: unittest
+  image: python:3.13-rc
+  script:
+    # TODO: Replace by '*python_test_script' as soon as 3.13 has been officially released.
+    - apt update && apt install -y cargo
+    - pip install meson[ninja] meson-python
+    - pip install pynose pandas pytest pytest-cov gitignore-parser openpyxl>=3.0.7 xlrd==1.2 h5py
+    - pip install git+https://gitlab.indiscale.com/caosdb/src/caosdb-pylib.git@dev
+    - pip install .
+    - pytest --cov=caosadvancedtools unittests
+
 # Build the sphinx documentation and make it ready for deployment by Gitlab Pages
 # Special job for serving a static website. See https://docs.gitlab.com/ee/ci/yaml/README.html#pages
 pages_prepare: &pages_prepare
diff --git a/CHANGELOG.md b/CHANGELOG.md
index da90043ef51e7d459602dbc0082e022193f6a9bc..6ecccea9f376b32ebc98fc8e09ac31c95198a465 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,6 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 - Json schema exporter:
   - has new parameter `use_rt_pool`
   - propagates more properties in the `make_array` function
+- Support for Python 3.12 and experimental support for 3.13
 
 ### Changed ###
 
diff --git a/tox.ini b/tox.ini
index 15a968f4a462a307eeb3144e3a3f68ff736d8f11..a7e06bf51f1f4cad2a2c695e44d3a4d09020b2a3 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,5 +1,5 @@
 [tox]
-envlist=py38, py39, py310, py311
+envlist=py38, py39, py310, py311, py312, py313
 skip_missing_interpreters = true
 
 [testenv]