diff --git a/gso/schedules/__init__.py b/gso/schedules/__init__.py
index f3100cf84e60ed34dff2fdf16362b834fe171e33..8257a874c6c090c1d284966d2ff4f9064d04e831 100644
--- a/gso/schedules/__init__.py
+++ b/gso/schedules/__init__.py
@@ -1,9 +1 @@
 """Tasks that are scheduled to run periodically in :term:`GSO`."""
-
-from orchestrator.schedules import SchedulingFunction  # type:ignore[attr-defined]
-
-from gso.schedules.validate_routers_nightly import run_validate_routers
-
-#  TODO: This list overwrites the default, and therefore leaves all default schedules unused.
-#  TODO: Consider using the default schedules.
-ALL_SCHEDULERS: list[SchedulingFunction] = [run_validate_routers]
diff --git a/gso/schedules/validate_routers_nightly.py b/gso/schedules/validate_routers_nightly.py
deleted file mode 100644
index 9b60df42dd67c8d7b6a14e0004eb36a5b5a2e456..0000000000000000000000000000000000000000
--- a/gso/schedules/validate_routers_nightly.py
+++ /dev/null
@@ -1,21 +0,0 @@
-"""Nightly schedule for validating all active Routers' configuration."""
-
-import logging
-
-from orchestrator.schedules.scheduling import scheduler
-from orchestrator.services.processes import start_process
-
-from gso.services.subscriptions import get_active_router_subscriptions
-
-logger = logging.getLogger(__name__)
-
-
-@scheduler(name="Validate routers", time_unit="day", at="03:00")
-def run_validate_routers() -> None:
-    """Validate configuration on all active Routers, every night at 3AM."""
-    routers = get_active_router_subscriptions(includes=["subscription_id"])
-
-    for router in routers:
-        msg = f"Validating configuration of router subscription {router['subscription_id']}"
-        logger.info(msg)
-        start_process("validate_router", [{"subscription_id": router["subscription_id"]}])
diff --git a/gso/workflows/__init__.py b/gso/workflows/__init__.py
index 3b1c12a1640a72af844fc59e76b9bac3738534f7..2e186fe14335634bb1ff3f81fc8c45abd4f5fc3d 100644
--- a/gso/workflows/__init__.py
+++ b/gso/workflows/__init__.py
@@ -42,6 +42,7 @@ LazyWorkflowInstance("gso.workflows.router.update_ibgp_mesh", "update_ibgp_mesh"
 LazyWorkflowInstance("gso.workflows.router.modify_connection_strategy", "modify_connection_strategy")
 LazyWorkflowInstance("gso.workflows.router.import_router", "import_router")
 LazyWorkflowInstance("gso.workflows.router.create_imported_router", "create_imported_router")
+LazyWorkflowInstance("gso.workflows.router.validate_router", "validate_router")
 
 #  Site workflows
 LazyWorkflowInstance("gso.workflows.site.create_site", "create_site")
diff --git a/gso/workflows/tasks/validate_router.py b/gso/workflows/router/validate_router.py
similarity index 94%
rename from gso/workflows/tasks/validate_router.py
rename to gso/workflows/router/validate_router.py
index 465e4c33ec0ee75606b2b887823845a4fed26b6c..6a1390d231ccfdb1d6159bc3f2f5aec83ac1fd75 100644
--- a/gso/workflows/tasks/validate_router.py
+++ b/gso/workflows/router/validate_router.py
@@ -16,7 +16,7 @@ from gso.workflows.router.create_router import verify_ipam_loopback
 @step("Validate router configuration")
 def validate_router_config(subscription: Router, callback_route: str) -> None:
     """Run an Ansible playbook that validates the configuration that is present on an active Router."""
-    extra_vars = {"wfo_router_json": json.loads(json_dumps(subscription)), "verb": "validate"}
+    extra_vars = {"wfo_router": json.loads(json_dumps(subscription)), "verb": "validate"}
 
     execute_playbook(
         playbook_name="base_config.yaml",