---
title: "Site sets"
manual: "Scheduler as Code"
version: "main"
permalink: "https://docs.typo3.org/permalink/maikschneider/scheduler-as-code:site-sets@main"
source: "Configuration/SiteSets.rst"
rendered: "2026-10-06T08:46:59+00:00"
---

# Site sets {#site-sets}

Extensions can ship tasks with a [site set](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/SiteHandling/SiteSets/Index.html#site-sets). Put the
task files into a `scheduler/` folder next to the set's `config.yaml`:

-   `EXT:my_sitepackage/Configuration/Sets/Maintenance/`
    -   `config.yaml`
    -   `scheduler/`
        -   `nightly-cleanup.yaml`

The task files use the same [format](https://docs.typo3.org/permalink/maikschneider/scheduler-as-code:task-files@main) as project files.

## Which tasks are imported {#site-sets-activation}

-   A set's tasks are imported while at least one site uses the set, directly or
    as a dependency of another set it uses.
-   Once no site uses the set any more, its tasks are disabled, like tasks whose
    file was removed.
-   Sets with an invalid `config.yaml` are skipped. TYPO3 reports them in
    the Sites module.

## Overriding a set's task {#site-sets-override}

A file with the same name in `config/scheduler/` overrides the set's task.
A project can use this to adjust, say, the frequency of a task a set ships:

**config/scheduler/nightly-cleanup.yaml**

```yaml
type: 'cleanup:deletedrecords'
execution:
  frequency: '0 4 * * *'
```

Delete the project file to go back to the set's version.

Two sets that ship the same identifier stop the import, unless a project file of
that name replaces both. Otherwise, rename one of the files.

## Changing a site's sets {#site-sets-cache}

TYPO3 caches site configuration. Changes saved in the Sites module clear that
cache, and the next request imports the tasks of the new sets. After editing a
site's `config.yaml` by hand, flush the caches.
