PHPackages                             hashandsalt/kirby-recurr - 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. hashandsalt/kirby-recurr

ActiveKirby-plugin[Utility &amp; Helpers](/categories/utility)

hashandsalt/kirby-recurr
========================

Kirby 3 Recurring Date Helper

v0.0.7(2y ago)13491MITPHP

Since Sep 11Pushed 2y ago2 watchersCompare

[ Source](https://github.com/HashandSalt/kirby-recurr)[ Packagist](https://packagist.org/packages/hashandsalt/kirby-recurr)[ RSS](/packages/hashandsalt-kirby-recurr/feed)WikiDiscussions master Synced yesterday

READMEChangelog (5)Dependencies (2)Versions (7)Used By (0)

Kirby Recurr
============

[](#kirby-recurr)

This plugin integrates the Recurr library to make it easier to work with repeating dates (like events on a calender).

Install
-------

[](#install)

### Download

[](#download)

Download and copy this repository to `/site/plugins/kirby-recurr`.

### Composer

[](#composer)

```
composer require hashandsalt/kirby-recurr

```

---

Commerical Usage
----------------

[](#commerical-usage)

This plugin is free but if you use it in a commercial project please consider to

- [make a donation 🍻](https://paypal.me/hashandsalt?locale.x=en_GB) or
- [buy a Kirby license using this affiliate link](https://a.paddle.com/v2/click/1129/36141?link=1170)

---

Usage
-----

[](#usage)

Use as a site method with manual dates:

```
$datelist = $site->recurr('2019-09-10 20:00:00', '2019-09-11 02:00:00', 'WEEKLY', ['WE', 'TH', 'FR'], '2019-10-11');

```

or with field data:

```
$datelist = $site->recurr($page->estart(), $page->eend()->or($page->estart()), $page->efreq()->recurrfreq(), $page->ebyday()->recurrdays(), $page->erange());

```

By default the plugin returns an array of dates for start and end times for each. If you want an RRule instead, you set true on the end:

```
$datelist = $site->recurr($page->estart(), $page->eend()->or($page->estart()), $page->efreq()->recurrfreq(), $page->ebyday()->recurrdays(), $page->erange(), true);

```

End date is optional:

```
$datelist = $site->recurr($page->estart(), null, $page->efreq()->recurrfreq(), $page->ebyday()->recurrdays(), $page->erange());

```

By day is only used if the frequency is set to either MONTHLY or YEARLY.

Field Methods
-------------

[](#field-methods)

By day and Frequency need to be in uppercase, for convenience there are 2 field methods to do this for you:

```
$page->efreq()->recurrfreq()
$page->ebyday()->recurrdays()

```

Example Use
-----------

[](#example-use)

In the example above, we are feeding it Start Time, End Time, Frequency, Days to repeat on and the date to stop the range. The above example repeats every week but only on Wednesdays, Thursdays and Fridays. Then you can loop through it:

### Date/Time Array

[](#datetime-array)

```

    Session Start
    Session End

```

### RRule

[](#rrule)

If your working with a calendar like fullcalender.js that supports RRules, you can get that like so:

```

```

### Filter past dates

[](#filter-past-dates)

For convenience, the plugin contains a collection filter that will remove events that have happened before a certain date.

```
$events = $kirby->collection('events')->filterBy($field, 'datebefore', $beforedate);

```

To see this in action, you can use the snippet provided with the plugin to list upcoming events, assuming you have a collection called 'events':

```

```

Options
-------

[](#options)

Default time zone is `Europe/London`, and time format is `09-12-19 2:00am`.

You can reset these in your config:

```
'hashandsalt.recurr.timezone' => 'Europe/London',
'hashandsalt.recurr.format' => 'm-d-y g:ia',

```

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity16

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity52

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

Recently: every ~380 days

Total

6

Last Release

915d ago

### Community

Maintainers

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

---

Top Contributors

[![HashandSalt](https://avatars.githubusercontent.com/u/28439755?v=4)](https://github.com/HashandSalt "HashandSalt (10 commits)")

### Embed Badge

![Health badge](/badges/hashandsalt-kirby-recurr/health.svg)

```
[![Health](https://phpackages.com/badges/hashandsalt-kirby-recurr/health.svg)](https://phpackages.com/packages/hashandsalt-kirby-recurr)
```

###  Alternatives

[distantnative/retour-for-kirby

Manage redirects and track 404s right from the Kirby CMS Panel

14689.4k1](/packages/distantnative-retour-for-kirby)[mzur/kirby-uniform

A versatile Kirby plugin to handle web form actions.

26068.3k13](/packages/mzur-kirby-uniform)[arnoson/kirby-vite

Vite helper for Kirby CMS

9759.2k3](/packages/arnoson-kirby-vite)[thathoff/kirby-git-content

Plugin to track changes to content in a git repository.

15343.7k](/packages/thathoff-kirby-git-content)[sylvainjule/locator

A map &amp; geolocation field, built on top of open-source services / Mapbox

11237.3k1](/packages/sylvainjule-locator)[tobimori/kirby-seo

The default choice for SEO on Kirby: Implement technical SEO &amp; Meta best practices with ease and provide an easy-to-use editor experience

10039.7k1](/packages/tobimori-kirby-seo)

PHPackages © 2026

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