PHPackages                             koertho/contao-advanced-repeating-events-bundle - 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. koertho/contao-advanced-repeating-events-bundle

ActiveContao-bundle[Utility &amp; Helpers](/categories/utility)

koertho/contao-advanced-repeating-events-bundle
===============================================

Add advanced repeat event options to contao calendar.

0.1.2(2mo ago)214LGPL-3.0-or-laterPHPPHP ^8.4CI failing

Since Mar 14Pushed 2mo agoCompare

[ Source](https://github.com/koertho/contao-advanced-repeating-events)[ Packagist](https://packagist.org/packages/koertho/contao-advanced-repeating-events-bundle)[ Docs](https://github.com/koertho/contao-advanced-repeating-events-bundle)[ RSS](/packages/koertho-contao-advanced-repeating-events-bundle/feed)WikiDiscussions main Synced 3w ago

READMEChangelog (3)Dependencies (32)Versions (4)Used By (0)

Contao Advanced Repeating Events Bundle
=======================================

[](#contao-advanced-repeating-events-bundle)

This bundles replaces the contao build in recurrence handling with a more powerful implementation. Technically, it uses rrule-based recurrence definitions.

Features
--------

[](#features)

- allow advanced recurring rule like nth weekday of the month or weekday selection
- Migration command for existing recurring events
- Support for import event from `cgoit/contao-calendar-ical-bundle`

Requirements
------------

[](#requirements)

- PHP `^8.4`
- Contao `^5.6`

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

[](#installation)

Install via Composer:

```
composer require koertho/contao-advanced-repeating-events-bundle
```

Then update the database schema in the Contao install tool or via console.

Usage
-----

[](#usage)

In the backend, you'll find a new field for activating recurrences replacing the old field. After activating it, you'll see the recurrence widget.

[![Screenshot Widget](docs/img/widget.png)](docs/img/widget.png)

In frontend, you can use the normal event list module, but the bundles reader module for output.

Migrating Existing Recurring Events
-----------------------------------

[](#migrating-existing-recurring-events)

If you already use Contao's legacy recurring event fields, you can migrate them to RRULE format:

```
php vendor/bin/contao-console are:migrate-recurrences
```

Options:

- `--dry-run` shows what would be written without changing data
- `--overwrite-existing` replaces already stored RRULE values
- `--limit=50` restricts how many records are processed

Example:

```
php vendor/bin/contao-console are:migrate-recurrences --dry-run
```

iCal Import
-----------

[](#ical-import)

If `cgoit/contao-calendar-ical-bundle` is installed, imported `RRULE` values are copied into the advanced recurrence fields automatically.

Advances usage
--------------

[](#advances-usage)

### Recurrence calculator

[](#recurrence-calculator)

You can use the `RecurrenceCalculator` to calculate the occurrences of an event.

```
use Koertho\AdvancedRepeatingEventsBundle\Recurrence\RecurrenceCalculatorFactory;

function (RecurrenceCalculatorFactory $factory) {
    $calculator = $factory->createForEvent($event);

    $occurrences = $calculator->listOccurrencesInRange(rangeStart: new \DateTime('2024-01-01'), rangeEnd: new \DateTime('2024-12-31'), limit: 12, excludeOriginal: false);
    // Returns an array of start and end dates like [['start' => 1711922400, 'end' => 1711926000], ...]

    $next = $calculator->resolveCurrentOrUpcomingOccurrence();
    // Returns the next occurrence as array with start and end timestamps like ['start' => 1711922400, 'end' => 1711926000]

    $description = $calculator->toText();
}
```

Notes
-----

[](#notes)

- The recurrence logic is based on [`simshaun/recurr`](https://github.com/simshaun/recurr).
- Parts of this extension are created with AI

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance84

Actively maintained with recent releases

Popularity10

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity44

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 ~11 days

Total

3

Last Release

80d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/13ab90f880313e9fbcbbd54f79eb9f648ff3a2802cc52844e84be36a1670e01e?d=identicon)[koertho](/maintainers/koertho)

---

Top Contributors

[![koertho](https://avatars.githubusercontent.com/u/12064642?v=4)](https://github.com/koertho "koertho (40 commits)")

---

Tags

calendarcontao

###  Code Quality

Static AnalysisPHPStan, Rector

Code StyleECS

Type Coverage Yes

### Embed Badge

![Health badge](/badges/koertho-contao-advanced-repeating-events-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/koertho-contao-advanced-repeating-events-bundle/health.svg)](https://phpackages.com/packages/koertho-contao-advanced-repeating-events-bundle)
```

###  Alternatives

[metamodels/core

MetaModels core

9956.1k68](/packages/metamodels-core)[contao-community-alliance/dc-general

Universal data container for Contao

1579.5k90](/packages/contao-community-alliance-dc-general)

PHPackages © 2026

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