PHPackages                             cron-eu/cron-jobs - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. cron-eu/cron-jobs

ActiveTypo3-cms-extension[Utility &amp; Helpers](/categories/utility)

cron-eu/cron-jobs
=================

Scheduler tasks

1.0.2(2y ago)089GPL-2.0-or-laterPHPPHP ^7.3 || ^8.0

Since Mar 8Pushed 2y ago2 watchersCompare

[ Source](https://github.com/cron-eu/t3x-cron-jobs)[ Packagist](https://packagist.org/packages/cron-eu/cron-jobs)[ Docs](https://github.com/cron-eu/t3x-cron-jobs)[ RSS](/packages/cron-eu-cron-jobs/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (2)Dependencies (1)Versions (4)Used By (0)

Manage TYPO3 scheduled tasks in files
=====================================

[](#manage-typo3-scheduled-tasks-in-files)

Usually you maintain scheduler tasks manually inside a TYPO3 instance in the database directly using the backend module "Scheduler".

This extension allows to manage your tasks in a YAML configuration file, which is kept in sync with the database. With this, you can keep your tasks versioned, deployable and also reproducible (i.e. you can maintain a set of "maintainence tasks" in your wiki for easy copy&amp;paste to new projects).

Installation
------------

[](#installation)

```
composer require cron-eu/cron-jobs

```

Note: This neither replaces the EXT:scheduler, nor does it interfere on the way the regular scheduler jobs are processed. Tasks created by this extension are still in the database and appear as regular tasks in the Scheduler backend module.

It will not touch manually added tasks. Tasks managed by cron\_jobs will be placed inside a separate task group called "cron\_jobs".

Usage
-----

[](#usage)

You work with it like this:

### YAML configuration

[](#yaml-configuration)

A new YAML configuration file is introduced: `config/scheduler/tasks.yaml`. It looks like this:

```
tasks:
  RefIndex:
    command: 'referenceindex:update'
    cronCmd: '0 3 * * *'
    description: 'Update reference index'

  CachingFrameworkGarbageCollection:
    description: 'Garbage collection for caching framework'
    class: 'TYPO3\CMS\Scheduler\Task\CachingFrameworkGarbageCollectionTask'
    interval: 180
    properties:
        selectedBackends:
        - 'TYPO3\CMS\Core\Cache\Backend\SimpleFileBackend'
        - 'TYPO3\CMS\Core\Cache\Backend\Typo3DatabaseBackend'
        - 'TYPO3\CMS\Core\Cache\Backend\FileBackend'

  brofix-checklinks:
    description: 'Check links for pid=6'
    command: 'brofix:checklinks'
    options:
        start-pages: '6'
        depth: ''
        to: 'mail@example.com'
        dry-run: false
        send-email: '1'
    cronCmd: '30 3 1,15 * *'
    condition: 'applicationContext matches "/Production\\/Live/"'
```

### Sync command controller

[](#sync-command-controller)

Once you have this file you can call:

```
bin/typo3 cronjobs:sync

```

It will create the defined tasks in your database (table `tx_scheduler_tasks`).

You can call this command after that, and it will keep your tasks in sync with this file. So as long as you keep the same identifiers (in our example, `RefIndex` or `CachingFrameworkGarbageCollection`) you can change the settings inside the YAML file, and the sync command will take care of updating it in the database. If nothing changed in your tasks YAML file, nothing will change in your database.

The sync will:

- add new tasks which have not yet added by cron\_jobs
- update tasks which have changed definitions (i.e. new cronCmd or options)
- delete tasks which were previously managed by cron\_jobs which are no longer part of this file

Important: You should not touch tasks managed by cron\_jobs manually in the backend module!

### Export command controller

[](#export-command-controller)

If you already have tons of tasks not yet managed by cron\_jobs in your installation, you can call this:

```
bin/typo3 cronjobs:export

```

This will output a YAML file that you can add manually to your project as a kickstart (you still have to manually delete the manually created tasks from your database).

Reference
---------

[](#reference)

### Syntax of `config/scheduler/tasks.yaml`

[](#syntax-of-configschedulertasksyaml)

The YAML file `config/scheduler/tasks.yaml` is expected to have a root element called `tasks:`. Below that is a dictionary of identifiers which will also be stored in the database for later finding the tasks. Use unique names, for example a shortcut of the name of the task.

Options:

- `class` or `command` (either one of these is required): Either a full valid classname of an AbstractTask for the scheduler (`class`), or a `command` for a command controller which is marked as `schedulable: true` in the Services.yaml.
- `options` (for `comamnd` only): parameters to pass to the command controller
- `properties` (for `class` only): if the properties to set in the task are public properties, you can set them directly with this
- `additionalFields` (for `class` only): fields to pass to the task, same fields that are used by the backend module (use the inspector to see their names). This uses the AdditionalFieldProvider of the task
- `cronCmd` or `interval` (either one of these is required): as described in the scheduler backend module
- `description` (optional): will also be shown in the backend module
- `condition` (optional): if you want a task to only be created depending on certain criteria (usually `applicationContext`) you can write a condition in the regular "condition syntax" which is also known from the site config YAML.

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~4 days

Total

2

Last Release

790d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/5801b90b48cb23858da283af072119996ff293c67f767f299bc6e5fd6ba5a1fa?d=identicon)[baschny](/maintainers/baschny)

---

Top Contributors

[![baschny](https://avatars.githubusercontent.com/u/337581?v=4)](https://github.com/baschny "baschny (14 commits)")

---

Tags

TYPO3 CMS

### Embed Badge

![Health badge](/badges/cron-eu-cron-jobs/health.svg)

```
[![Health](https://phpackages.com/badges/cron-eu-cron-jobs/health.svg)](https://phpackages.com/packages/cron-eu-cron-jobs)
```

###  Alternatives

[ichhabrecht/content-defender

Define allowed or denied content element types in your backend layouts

892.9M22](/packages/ichhabrecht-content-defender)[yoast-seo-for-typo3/yoast_seo

Yoast SEO for TYPO3

521.6M9](/packages/yoast-seo-for-typo3-yoast-seo)[derhansen/sf_event_mgt

Configurable event management and registration extension based on ExtBase and Fluid

64313.9k6](/packages/derhansen-sf-event-mgt)[lochmueller/calendarize

Create a structure for timely controlled tables (e.g. events) and one plugin for the different output of calendar views (list, detail, month, year, day, week...). The extension is shipped with one default event table, but you can also 'calendarize' your own table/model. It is completely independent and configurable! Use your own models as event items in this calender. Development on https://github.com/lochmueller/calendarize

77152.6k12](/packages/lochmueller-calendarize)[brotkrueml/schema

Embedding schema.org vocabulary - API and view helpers for schema.org markup

33584.6k13](/packages/brotkrueml-schema)[extcode/cart

Shopping Cart(s) for TYPO3

57119.3k14](/packages/extcode-cart)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
