PHPackages                             jdecano/events-starter - 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. jdecano/events-starter

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

jdecano/events-starter
======================

Easily start up your recurring events application.

14

Since Jun 16Compare

[ Source](https://github.com/johndavedecano/events-starter)[ Packagist](https://packagist.org/packages/jdecano/events-starter)[ RSS](/packages/jdecano-events-starter/feed)WikiDiscussions Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

Laravel 5 Events Starter
========================

[](#laravel-5-events-starter)

Easily start up your recurring events application.

Install
-------

[](#install)

```
composer require jdecano/events-starter
# Register Provider
Jdecano\EventsStarter\EventsStarterServiceProvider::class,
# Register Facade
'RecurringEvent' => Jdecano\EventsStarter\Facades\RecurringEvent::class
# Migrate
php artisan migrate --path=vendor/jdecano/events-starter/database/migrations

```

Basic Usage
-----------

[](#basic-usage)

1. title - Title of the event
2. description - Description of the event
3. date - A php date to when the event will take place
4. frequency - yearly, monthly, weekly, daily
5. interval - The interval between each FREQUENCY iteration. For example, when using YEARLY, an interval of 2 means once every two years, but with HOURLY, it means once every two hours. Default is 1.
6. type - by\_date or by\_count. If you use by\_date generation of occurrences will be based on until. If you use by\_count generation of occurrences will be on count.
7. count - How many occurrences will be generated.
8. until - The limit of the recurrence. Accepts the same formats as DTSTART. If a recurrence instance happens to be the same the date given, this will be the last occurrence
9. weekdays -The day(s) of the week to apply the recurrence to from MO (Monday) to SU (Sunday). Must be one of the following strings: MO, TU, WE, TH, FR, SA, SU. It can be a single value, or a comma-separated list or an array

```
$event = RecurringEvent::create([
	'title'             => 'My Event Title',
	'description'       => 'My Event Description',
	'date'              => date("Y-m-d"),
	'frequency'         => 'daily',
	'interval'          => 1,
	'type'              => 'by_date', // or by_count
	'count'             => 1,
	'until'             => date("Y-m-d"), // Requires PHP date
	'weekdays'          => ["SU", "MO", "TU", "WE"]
]);

$event = RecurringEvent::update($eventId, [
	'title'             => 'My Event Title',
	'description'       => 'My Event Description',
	'date'              => date("Y-m-d"),
	'frequency'         => 'daily',
	'interval'          => 1,
	'type'              => 'by_date', // or by_count
	'count'             => 1,
	'until'             => date("Y-m-d"), // Requires PHP date
	'weekdays'          => ["SU", "MO", "TU", "WE"]
]);

$event = RecurringEvent::pick($eventId);

$event = RecurringEvent::destroy($eventId);

# Getting RRule Object

$setting = EventSetting::where('event_id', $event_id)->first();

$rrule = $setting->getRRule();

foreach ( $rrule as $occurrence ) {
    echo $occurrence->format('r'),"\n";
}

// output:
// Tue, 02 Sep 1997 09:00:00 +0000
// Thu, 04 Sep 1997 09:00:00 +0000
// Sat, 06 Sep 1997 09:00:00 +0000
// Mon, 08 Sep 1997 09:00:00 +0000
// Wed, 10 Sep 1997 09:00:00 +0000

$rrule->humanReadable();

// every other week on Monday, Wednesday and Friday, starting from 9/1/97, until 12/23/97
// Refer to https://github.com/rlanvin/php-rrule/wiki/RRule

```

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

Credits
-------

[](#credits)

- John Dave Decano
- Remi Lanvin

License
-------

[](#license)

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

###  Health Score

20

—

LowBetter than 13% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity41

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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/2e0f48ba8dcc70127de6e0284a5558b8e98b469e755393eb823dc76411273b66?d=identicon)[jdecano](/maintainers/jdecano)

---

Top Contributors

[![johndavedecano](https://avatars.githubusercontent.com/u/1860038?v=4)](https://github.com/johndavedecano "johndavedecano (3 commits)")

### Embed Badge

![Health badge](/badges/jdecano-events-starter/health.svg)

```
[![Health](https://phpackages.com/badges/jdecano-events-starter/health.svg)](https://phpackages.com/packages/jdecano-events-starter)
```

###  Alternatives

[koalafacade/filament-alertbox

Alert box field for Filament forms

2338.8k](/packages/koalafacade-filament-alertbox)

PHPackages © 2026

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