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

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

daliendev/laravel-zap-rrule
===========================

RRule (RFC 5545) add-on for the laravel-zap scheduling package

v0.0.2(2mo ago)35MITPHPPHP &gt;=8.2CI passing

Since May 17Pushed 2mo agoCompare

[ Source](https://github.com/daliendev/laravel-zap-rrule)[ Packagist](https://packagist.org/packages/daliendev/laravel-zap-rrule)[ RSS](/packages/daliendev-laravel-zap-rrule/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (1)Dependencies (6)Versions (3)Used By (0)

laravel-zap-rrule
=================

[](#laravel-zap-rrule)

[RFC 5545](https://www.rfc-editor.org/rfc/rfc5545) RRule support for [laravel-zap](https://github.com/ludoguenet/laravel-zap).

> Inspired by [feat: rrule support #71](https://github.com/ludoguenet/laravel-zap/pull/71) proposed by [@shavonn](https://github.com/shavonn).

Installation
------------

[](#installation)

```
composer require laraveljutsu/zap
composer require daliendev/laravel-zap-rrule
```

No config changes needed. The service provider auto-discovers and wires everything.

Usage
-----

[](#usage)

```
use Zap\Facades\Zap;

// Every Monday, Wednesday, Friday
Zap::for($user)
    ->named('Standup')
    ->from('2025-01-06')->to('2025-12-31')
    ->addPeriod('09:00', '09:30')
    ->rrule('FREQ=WEEKLY;BYDAY=MO,WE,FR')
    ->save();

// 1st and 15th of every month
Zap::for($user)
    ->named('Billing run')
    ->from('2025-01-01')->to('2025-12-31')
    ->addPeriod('10:00', '11:00')
    ->rrule('FREQ=MONTHLY;BYMONTHDAY=1,15')
    ->save();

// First Monday of every month
Zap::for($user)
    ->named('Monthly review')
    ->from('2025-01-01')
    ->addPeriod('14:00', '15:00')
    ->rrule('FREQ=MONTHLY;BYDAY=1MO')
    ->save();

// Every 2 weeks on Tuesday (DTSTART derived from start_date)
Zap::for($user)
    ->named('Biweekly sync')
    ->from('2025-01-07')->to('2025-12-31')
    ->addPeriod('14:00', '15:00')
    ->rrule('FREQ=WEEKLY;INTERVAL=2;BYDAY=TU')
    ->save();
```

All existing laravel-zap APIs (`isBookableAt`, `getBookableSlots`, `forDate`, …) work transparently with rrule schedules.

How it works
------------

[](#how-it-works)

This package hooks into the three extension points laravel-zap exposes:

Extension pointWhat we do`config('zap.models.schedule')`Swap in `ZapRRule\Models\Schedule``SafeFrequencyConfigCast`Extend with `RRuleAwareFrequencyConfigCast` to deserialise `frequency = 'rrule'` rows`'zap'` container bindingRebind to our `ScheduleService` so `Zap::for()` returns our fluent builder (which has `rrule()`)The Eloquent query builder's `forDate()` scope is also extended to include rrule schedules in date queries; the per-occurrence check is delegated to `RRuleFrequencyConfig::shouldCreateRecurringInstance()` at the PHP level (same pattern used by laravel-zap for `monthly_ordinal_weekday`).

Custom Schedule model
---------------------

[](#custom-schedule-model)

If you already have a custom Schedule model, extend ours instead of the base:

```
// app/Models/Schedule.php
use ZapRRule\Models\Schedule as RRuleSchedule;

class Schedule extends RRuleSchedule
{
    // your customizations
}
```

Then set in `config/zap.php`:

```
'models' => [
    'schedule' => App\Models\Schedule::class,
],
```

Requirements
------------

[](#requirements)

- PHP ≥ 8.2
- `laraveljutsu/laravel-zap` ^1.0
- `rlanvin/php-rrule` ^2.6 (installed automatically)

License
-------

[](#license)

[MIT](LICENSE)

###  Health Score

36

—

LowBetter than 79% of packages

Maintenance86

Actively maintained with recent releases

Popularity8

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity37

Early-stage or recently created project

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

Total

2

Last Release

68d ago

### Community

Maintainers

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

---

Top Contributors

[![daliendev](https://avatars.githubusercontent.com/u/53065505?v=4)](https://github.com/daliendev "daliendev (5 commits)")

---

Tags

laravelrrulerecurrencerfc5545schedulinglaravel-zap

###  Code Quality

TestsPest

Code StyleLaravel Pint

### Embed Badge

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

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

###  Alternatives

[simshaun/recurr

PHP library for working with recurrence rules

1.6k17.2M54](/packages/simshaun-recurr)[rlanvin/php-rrule

Lightweight and fast recurrence rules for PHP (RFC 5545)

70011.9M64](/packages/rlanvin-php-rrule)[wilianx7/php-recurring

PHP library for generating recurring dates, schedules, and repeated task recurrences.

1050.7k](/packages/wilianx7-php-recurring)[directorytree/cadence

Model-based scheduling for Laravel

581.4k](/packages/directorytree-cadence)[solspace/craft-calendar

The most powerful event management and calendaring plugin!

1832.3k1](/packages/solspace-craft-calendar)[fleetbase/fleetops-api

Fleet &amp; Transport Management Extension for Fleetbase

1731.5k8](/packages/fleetbase-fleetops-api)

PHPackages © 2026

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