diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index 9dfa734..d8fe3c1 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -30,6 +30,8 @@ jobs:
             tox: py312,py312-trio
           - python: "3.12"
             tox: pep8
+          - python: "3.13"
+            tox: py313
           - python: "3.11"
             tox: mypy
     steps:
diff --git a/.mergify.yml b/.mergify.yml
index 7eeace4..4fa989f 100644
--- a/.mergify.yml
+++ b/.mergify.yml
@@ -14,6 +14,7 @@ queue_rules:
       - "check-success=test (3.9, py39)"
       - "check-success=test (3.10, py310)"
       - "check-success=test (3.11, py311)"
+      - "check-success=test (3.13, py313)"
       - "check-success=test (3.12, py312,py312-trio)"
       - "check-success=test (3.12, pep8)"
 
diff --git a/tox.ini b/tox.ini
index 14f8ae0..74edc4f 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,5 +1,5 @@
 [tox]
-envlist = py3{8,9,10,11,12,12-trio}, pep8, pypy3
+envlist = py3{8,9,10,11,12,12-trio,13}, pep8, pypy3
 skip_missing_interpreters = True
 
 [testenv]
@@ -10,9 +10,9 @@ deps =
     .[doc]
     trio: trio
 commands =
-    py3{8,9,10,11,12},pypy3: pytest {posargs}
-    py3{8,9,10,11,12},pypy3: sphinx-build -a -E -W -b doctest doc/source doc/build
-    py3{8,9,10,11,12},pypy3: sphinx-build -a -E -W -b html doc/source doc/build
+    py3{8,9,10,11,12,13},pypy3: pytest {posargs}
+    py3{8,9,10,11,12,13},pypy3: sphinx-build -a -E -W -b doctest doc/source doc/build
+    py3{8,9,10,11,12,13},pypy3: sphinx-build -a -E -W -b html doc/source doc/build
 
 [testenv:pep8]
 basepython = python3