diff --git a/src/_zkapauthorizer/model.py b/src/_zkapauthorizer/model.py
index 12b0393b1eddc8869b55e759f4ebbfb99e03773a..7c62b8ff8e014b68c598822fb4a3b524fa83d38e 100644
--- a/src/_zkapauthorizer/model.py
+++ b/src/_zkapauthorizer/model.py
@@ -40,7 +40,7 @@ from sqlite3 import (
 import attr
 
 from aniso8601 import (
-    parse_datetime,
+    parse_datetime as _parse_datetime,
 )
 from twisted.logger import (
     Logger,
@@ -72,6 +72,18 @@ from .schema import (
 )
 
 
+def parse_datetime(s, **kw):
+    """
+    Like ``aniso8601.parse_datetime`` but accept unicode as well.
+    """
+    if isinstance(s, unicode):
+        s = s.encode("utf-8")
+    assert isinstance(s, bytes)
+    if "delimiter" in kw and isinstance(kw["delimiter"], unicode):
+        kw["delimiter"] = kw["delimiter"].encode("utf-8")
+    return _parse_datetime(s, **kw)
+
+
 class ILeaseMaintenanceObserver(Interface):
     """
     An object which is interested in receiving events related to the progress