Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Recurr Laravel Package

simshaun/recurr

PHP library for RFC5545 RRULE recurrence rules. Build rules from strings or fluent setters, then transform them into DateTime occurrences via transformers. Useful for calendars and recurring events with time zone support.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Calendar/Event Scheduling Features:

    • Enable recurring events (e.g., meetings, subscriptions, subscriptions, or membership renewals) with support for complex recurrence rules (daily, weekly, monthly, yearly, custom intervals).
    • Build a recurring payments system (e.g., SaaS subscriptions, memberships) by integrating with billing systems (e.g., Stripe, Chargebee) to auto-generate invoices or renewals.
    • Implement reminders/notifications for recurring tasks (e.g., CRM follow-ups, maintenance schedules) by generating future dates programmatically.
  • Roadmap Prioritization:

    • Build vs. Buy: Avoid reinventing recurrence logic (e.g., parsing RRULEs, handling edge cases like leap years or varying month lengths). This package reduces development time and technical debt.
    • Phase 1 MVP: Quickly prototype a calendar or scheduling feature without deep investment in recurrence logic.
    • Phase 2 Scaling: Replace ad-hoc solutions (e.g., manual date calculations) with a robust, maintainable library as user demand grows.
  • Use Cases:

    • B2B SaaS: Automate recurring billing, license renewals, or team meeting scheduling.
    • E-commerce: Subscription boxes or membership sites (e.g., "Ship every 3 months").
    • Internal Tools: HR onboarding schedules, facility maintenance calendars, or project milestones.
    • Public-Facing Apps: Event listings (e.g., webinars, classes) with recurring instances.
  • Data Integrity:

    • Ensure compliance with RFC 5545 (iCalendar) standards for interoperability with other calendar tools (e.g., Google Calendar, Outlook).
    • Handle edge cases (e.g., monthly recurrences on February 30th) gracefully with configurable fixes.
  • User Experience:

    • Generate human-readable recurrence descriptions (e.g., "Every other Tuesday") for UI/UX clarity.
    • Filter or constrain recurrences dynamically (e.g., "Show only events in Q3 2024").

When to Consider This Package

  • Adopt This Package If:

    • Your product requires recurring events/dates with support for complex RRULEs (e.g., "Every 3rd Friday of the month until December 2025").
    • You’re building a calendar, scheduling, or subscription system and need to avoid custom recurrence logic.
    • You need timezone-aware date generation (e.g., global teams or users in different regions).
    • Your team lacks expertise in parsing RFC 5545 RRULEs or handling edge cases (e.g., daylight saving time, leap years).
    • You want to reduce technical debt by using a battle-tested library (1.6K+ stars, MIT license).
    • You need to integrate with existing iCalendar-compatible systems (e.g., syncing with Google Calendar).
  • Look Elsewhere If:

    • You need real-time collaboration (e.g., shared calendars with conflict detection) → Consider FullCalendar or Google Calendar API.
    • Your use case is simple (e.g., one-time events) → A lightweight library like Carbon may suffice.
    • You require advanced UI components (e.g., drag-and-drop recurrence editors) → Pair with a frontend library like React-Big-Calendar.
    • You’re working in a non-PHP ecosystem (e.g., Node.js, Python) → Use rrule.js or dateutil.rrule.
    • You need high-performance bulk generation (e.g., 100K+ recurrences) → Benchmark for virtual limit constraints (default: 732 events).

How to Pitch It (Stakeholders)

For Executives:

"This package lets us build recurring features—like subscriptions, meetings, or events—faster and more reliably without custom code. For example:

  • A SaaS subscription system could auto-generate invoices for annual/quarterly plans.
  • A calendar app could handle complex rules like ‘Every other Monday in Q3.’ It’s industry-standard (used by iCalendar tools), low-risk (MIT license, 1.6K+ stars), and saves dev time by handling edge cases (e.g., February 30th). We’d avoid reinventing the wheel while ensuring scalability."

For Engineers:

"Recurr is a mature PHP library for parsing and generating RFC 5545 RRULEs, giving us:

  • Programmatic control: Build rules via strings (e.g., FREQ=MONTHLY;COUNT=12) or chain methods (e.g., setFreq('WEEKLY')->setByDay(['FR'])).
  • DateTime integration: Convert rules to actionable DateTime objects for storage/processing.
  • Constraints & filters: Limit results by date ranges (e.g., ‘only show 2024 events’) or exclude holidays.
  • Human-readable output: Generate text like ‘Every 2 years’ for UIs (beta but functional). It’s lightweight, well-documented, and compatible with Laravel—ideal for calendar, billing, or scheduling features. We’d use it to replace ad-hoc date logic and reduce bugs in recurrence calculations."

For Design/Product Teams:

"This enables smarter recurring features without complex backend work. For example:

  • Users could set up recurring payments (e.g., ‘Charge me every 6 months’) with clear UI labels.
  • Event organizers could schedule series (e.g., ‘Weekly webinars’) that auto-populate in calendars. The library handles the ‘heavy lifting’ of date math, so we focus on user-friendly inputs (e.g., dropdowns for ‘Daily/Weekly/Monthly’)."
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
terminal42/code-quality-tools
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky