diff --git a/requirements-swh.txt b/requirements-swh.txt
index 8edab5aae1b673abad392992527f115e7d26f5c1..51be4cda2f2f3cee910216dcac6cdec4ec2178e3 100644
--- a/requirements-swh.txt
+++ b/requirements-swh.txt
@@ -1,2 +1,4 @@
 swh.core[db] >= 2.22.0
-swh.scheduler >= 1.12.0
+swh.scheduler >= 2.3.0
+
+
diff --git a/requirements-test.txt b/requirements-test.txt
index 5bb91bd9005f3a92676a89ea941ed9bde30ffac3..484cb3f7b2326ade57e108d08ace79ecb274b4b7 100644
--- a/requirements-test.txt
+++ b/requirements-test.txt
@@ -2,7 +2,7 @@ pandas
 pytest >= 8.1
 pytest-mock
 requests_mock
-swh-scheduler[testing]
+swh-scheduler[testing] >= 2.3.0
 types-beautifulsoup4
 types-click
 types-pyyaml
diff --git a/swh/lister/launchpad/tests/conftest.py b/swh/lister/launchpad/tests/conftest.py
index 1412de96d21b7aadbde7478fba58afaf3cad473d..38f1ffdfcfdc7c60f128910e9be40929cb102b77 100644
--- a/swh/lister/launchpad/tests/conftest.py
+++ b/swh/lister/launchpad/tests/conftest.py
@@ -1,9 +1,9 @@
-# Copyright (C) 2020  The Software Heritage developers
+# Copyright (C) 2020-2024  The Software Heritage developers
 # See the AUTHORS file at the top-level directory of this distribution
 # License: GNU General Public License version 3, or any later version
 # See top-level LICENSE file for more information
 
-from datetime import datetime
+from datetime import datetime, timedelta
 import json
 import os
 from unittest.mock import patch
@@ -11,6 +11,7 @@ from unittest.mock import patch
 import pytest
 
 from swh.lister import get_lister
+from swh.scheduler.model import TaskType
 
 
 @pytest.fixture
@@ -45,12 +46,12 @@ def lister_launchpad(datadir, lister_db_url, engine, swh_scheduler):
         lister = get_lister("launchpad", db_url=lister_db_url)
 
     lister.scheduler.create_task_type(
-        {
-            "type": "load-git",
-            "description": "Load git repository",
-            "backend_name": "swh.loader.git.tasks.UpdateGitRepository",
-            "default_interval": "1 day",
-        }
+        TaskType(
+            type="load-git",
+            description="Load git repository",
+            backend_name="swh.loader.git.tasks.UpdateGitRepository",
+            default_interval=timedelta(days=1),
+        )
     )
 
     return lister
diff --git a/swh/lister/npm/__init__.py b/swh/lister/npm/__init__.py
index 1a5f84b34d0e39a95ea2744422a4f055888f3b78..e271e6a52cd4d4c1f51dc1c17e408e59876c1d0d 100644
--- a/swh/lister/npm/__init__.py
+++ b/swh/lister/npm/__init__.py
@@ -4,6 +4,8 @@
 
 
 def register():
+    from datetime import timedelta
+
     from .lister import NpmLister
 
     return {
@@ -11,9 +13,9 @@ def register():
         "task_modules": ["%s.tasks" % __name__],
         "task_types": {
             "list-npm-full": {
-                "default_interval": "7 days",
-                "min_interval": "7 days",
-                "max_interval": "7 days",
+                "default_interval": timedelta(days=7),
+                "min_interval": timedelta(days=7),
+                "max_interval": timedelta(days=7),
             },
         },
     }