FieldtypeRecurringDates by Eduardo San Miguel Garcia

Field that stores recurring events from a UI to define RRules.

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

FieldtypeRecurringDates

inputfieldrecurringdates

Fieldtype and Inputfield for definining recurring dates according to RFC-RFC 5545 and the awesome library php-rrule

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

Use date values valid for date selectors.

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

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

$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

  • [ ] Add support for BYSETPOS
  • [ ] Add support for 'Never' option.

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?

Install and use modules at your own risk. Always have a site and database backup before installing new modules.

Latest news

  • ProcessWire Weekly #561
    In the 561st issue of ProcessWire Weekly we're going to check out the latest core updates, share recent support forum highlights and online resources, and more. Read on!
    Weekly.pw / 8 February 2025
  • ProcessWire 3.0.244 new main/master version
    ProcessWire 3.0.244 is our newest main/master/stable version. It's been more than a year in the making and is packed with tons of new features, issue fixes, optimizations and more. This post covers all the details.
    Blog / 18 January 2025
  • Subscribe to weekly ProcessWire news

“We chose ProcessWire because of its excellent architecture, modular extensibility and the internal API. The CMS offers the necessary flexibility and performance for such a complex website like superbude.de. ProcessWire offers options that are only available for larger systems, such as Drupal, and allows a much slimmer development process.” —xport communication GmbH