PHPackages                             jpmurray/laravel-rrule - 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. jpmurray/laravel-rrule

AbandonedArchivedLibrary[Utility &amp; Helpers](/categories/utility)

jpmurray/laravel-rrule
======================

A Laravel friendly package to manage date recurrence rules

3.2.1(9y ago)132.3k↓73.3%7[6 issues](https://github.com/jpmurray/laravel-rrule/issues)[1 PRs](https://github.com/jpmurray/laravel-rrule/pulls)MITPHPPHP ~5.6|~7.0

Since Aug 10Pushed 9y ago1 watchersCompare

[ Source](https://github.com/jpmurray/laravel-rrule)[ Packagist](https://packagist.org/packages/jpmurray/laravel-rrule)[ Docs](https://github.com/jpmurray/laravel-rrule)[ RSS](/packages/jpmurray-laravel-rrule/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (7)Versions (7)Used By (0)

jpmurray/laravel-rrule
======================

[](#jpmurraylaravel-rrule)

[![Latest Version on Packagist](https://camo.githubusercontent.com/33ffc484daf893cce8f97dddaadfc435ad8c1c0ae86155147598ef7a2ca468a7/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6a706d75727261792f6c61726176656c2d7272756c652e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/jpmurray/laravel-rrule)[![Software License](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE.md)[![StyleCI](https://camo.githubusercontent.com/2bb2b1c031284a3f91b60c4c9981d4c89bccdf488253c7d69a31ef0c7d75660e/68747470733a2f2f7374796c6563692e696f2f7265706f732f36353331383031342f736869656c64)](https://styleci.io/repos/65318014)[![Total Downloads](https://camo.githubusercontent.com/be35a46333e7b731a4f6d71497200de872769ae088326423608879b0c4ba590c/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6a706d75727261792f6c61726176656c2d7272756c652e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/jpmurray/laravel-rrule)

A simple helper to generate date occurences more fluently, using [simshaun/recurr](https://github.com/simshaun/recurr/).

Nota Bene
---------

[](#nota-bene)

This is my first package. I actually built this to get to gain a bit more know-how about packages. It might be useful. It might not. It might be badly constructed. It might not. Honestly, I'll try to maintain and improve it over time, but please bear with me as it's been built more to learn that to be the perfect package.

And on that note: PRs are hapilly welcomed!

Roadmap
-------

[](#roadmap)

Check [this tag in the issues](https://github.com/jpmurray/laravel-rrule/issues?q=is%3Aopen+is%3Aissue+label%3Aenhancement).

Install
-------

[](#install)

Via Composer

```
$ composer require jpmurray/laravel-rrule
```

Usage
-----

[](#usage)

```
$recurrence = new Recurrence();

//of course, you can chain all those methods!
$recurrence->setFrequency('weekly'); // Either one of `yearly`, `monthly`, `weekly`, `daily`, `hourly`, `minutly`, `secondly`
$recurrence->setCount(20); // the number of occurences we want. Cannot be used with `setUntil()`
$recurrence->setInterval(1); // every Nth time
$recurrence->setStart(Carbon::parse('August 9th 2016 21:18:00')); // a carbon object for when to start the occurences
$recurrence->setEnd(Carbon::parse('August 9th 2016 22:00:10')); // a carbon object for when to end the occurences
$recurrence->setDays([
	['sunday', null],
	['tuesday', -2],
	['friday', 3],
]); // the first is the day of the occurence, the other is the position (eg: -2: second to last; 3: third; null: not set)
$recurrence->setMonths([
	'january', 'march', 'october', 'december'
]); // months of the occurences
$recurrence->setLang('fr'); // for output to text. Defaults to english. Accepts ISO 639-1 language codes
$recurrence->setFrom(Carbon::now()->subMonth()); // calculate occurences from this date.
$recurrence->setUntil(Carbon::now()->addMonths(2)); // calculate occurences until this date. Cannot be used with `setCount()`
$recurrence->build(); //will save object and generate the outputs
```

Those next methods are not chainable:

```
$recurrence->getToText(); // returns the `toText` value of current rules. eg: "weekly in January, March, October and December on the Sunday, 2nd to the last Tuesday and 3rd Friday for 5 times"
$recurrence->getOccurences(); // returns a collection of Carbon object for each occurence with current rules
```

Change log
----------

[](#change-log)

Please see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.

Testing
-------

[](#testing)

```
$ composer test
```

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) and [CONDUCT](CONDUCT.md) for details.

Security
--------

[](#security)

If you discover any security related issues, please email  instead of using the issue tracker.

Credits
-------

[](#credits)

- [Jean-Philippe Murray](https://github.com/jpmurray)
- [All Contributors](../../contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

31

—

LowBetter than 66% of packages

Maintenance11

Infrequent updates — may be unmaintained

Popularity26

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity62

Established project with proven stability

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

Total

7

Last Release

3601d ago

Major Versions

1.0.0 → 2.0.02016-08-10

2.1.0 → 3.0.02016-08-10

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1550428?v=4)[Jean-Philippe Murray](/maintainers/jpmurray)[@jpmurray](https://github.com/jpmurray)

---

Top Contributors

[![jpmurray](https://avatars.githubusercontent.com/u/1550428?v=4)](https://github.com/jpmurray "jpmurray (52 commits)")

---

Tags

abandonedlaravel-5-packagelaravel-packagerrulelaravelpackagerrulejpmurray

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/jpmurray-laravel-rrule/health.svg)

```
[![Health](https://phpackages.com/badges/jpmurray-laravel-rrule/health.svg)](https://phpackages.com/packages/jpmurray-laravel-rrule)
```

###  Alternatives

[laravel/horizon

Dashboard and code-driven configuration for Laravel queues.

4.2k95.4M306](/packages/laravel-horizon)[psalm/plugin-laravel

Psalm plugin for Laravel

3355.3M346](/packages/psalm-plugin-laravel)[renatomarinho/laravel-page-speed

Laravel Page Speed

2.5k1.7M11](/packages/renatomarinho-laravel-page-speed)[erlandmuchasaj/laravel-gzip

Gzip your responses.

40146.5k2](/packages/erlandmuchasaj-laravel-gzip)[flarum/core

Delightfully simple forum software.

201.4M2.3k](/packages/flarum-core)[tomshaw/electricgrid

A feature-rich Livewire package designed for projects that require dynamic, interactive data tables.

119.4k](/packages/tomshaw-electricgrid)

PHPackages © 2026

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