PHPackages                             elabx/fieldtype-recurring-dates - 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. elabx/fieldtype-recurring-dates

ActivePw-module[Utility &amp; Helpers](/categories/utility)

elabx/fieldtype-recurring-dates
===============================

Field to setup recurring dates using RRule

v0.0.1(1y ago)104.2k1[2 issues](https://github.com/elabx/FieldtypeRecurringDates/issues)[1 PRs](https://github.com/elabx/FieldtypeRecurringDates/pulls)MITPHPPHP &gt;=7.3CI passing

Since Mar 6Pushed 3mo ago2 watchersCompare

[ Source](https://github.com/elabx/FieldtypeRecurringDates)[ Packagist](https://packagist.org/packages/elabx/fieldtype-recurring-dates)[ Docs](https://github.com/elabx/FieldtypeRecurringDates)[ RSS](/packages/elabx-fieldtype-recurring-dates/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (3)Dependencies (3)Versions (12)Used By (0)

This is a pre-release please do not use in production.

FieldtypeRecurringDates
=======================

[](#fieldtyperecurringdates)

[![inputfieldrecurringdates](https://user-images.githubusercontent.com/7674567/223284142-86c36b49-ac46-41b1-b85c-e01a7a4c9b64.png)](https://user-images.githubusercontent.com/7674567/223284142-86c36b49-ac46-41b1-b85c-e01a7a4c9b64.png)

Fieldtype and Inputfield for definining recurring dates according to [RFC-RFC 5545](https://www.rfc-editor.org/rfc/rfc5545#section-3.3.10) and the awesome library [php-rrule](https://github.com/rlanvin/php-rrule)

Installation
============

[](#installation)

```
composer require elabx/fieldtype-recurring-dates

```

Make sure to install both FieldtyeRecurringDates and AlpineJS modules. Additionally you may install RecurringDatesFinder for search operations.

Or download through the processwire modules directory.

This module will save the RRules occurrences in the database to be queried later.

Find pages with fields
======================

[](#find-pages-with-fields)

Use date values valid for date selectors.

```
$pages->find('recurring_meetings=>today')

```

Finding occurrences
===================

[](#finding-occurrences)

You can use the module included in this same package to find the rules occurrences:

`$start` and `$end` value are any acceptable value for [$datetime](https://processwire.com/api/ref/wire-date-time/)

```
$finder = $modules->get('ReccurringDatesFinder')
$output = $finder->find(
     // from date
    'today',
    // to date
    '+30 days',
    $selector, [
        'fields' => [ // Will find event occurrences in fields specified in this array
            'recurring_meetings',
            'recurring_events'
        ]
    ]

```

This method will return the SQL UNION result of specified fields.

You can also hook into getRecurringFieldQueries() to add queries that will get added to the final UNION query.

TODO
====

[](#todo)

- Add support for BYSETPOS
- Add support for 'Never' option.

Wishlist
========

[](#wishlist)

- Support for plain text RRule.
- Add support for BYWEEKNO, BYYEARDAY, BYMONTHDAY, BYMINUTE, BYHOUR, BYMINUTE, BYSECOND .
- Add support to modify RRule before saving? Maybe skips
- Use RSet instead of RRule?

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance54

Moderate activity, may be stable

Popularity27

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity37

Early-stage or recently created project

 Bus Factor1

Top contributor holds 67.4% 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 ~80 days

Recently: every ~121 days

Total

7

Last Release

675d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/aca21542aac6d8d93bc76ea03502a963a3cd146a7bfa17edb4446d401f71a77e?d=identicon)[elabx](/maintainers/elabx)

---

Top Contributors

[![elabx](https://avatars.githubusercontent.com/u/7674567?v=4)](https://github.com/elabx "elabx (29 commits)")[![zambezi-marketing](https://avatars.githubusercontent.com/u/113392226?v=4)](https://github.com/zambezi-marketing "zambezi-marketing (14 commits)")

---

Tags

processwire

### Embed Badge

![Health badge](/badges/elabx-fieldtype-recurring-dates/health.svg)

```
[![Health](https://phpackages.com/badges/elabx-fieldtype-recurring-dates/health.svg)](https://phpackages.com/packages/elabx-fieldtype-recurring-dates)
```

PHPackages © 2026

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