> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devdeia.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Filament Recurrence

> A full-featured Filament plugin for RFC 5545 recurrence patterns — form field, table column, and infolist entry.

<span className="inline-flex items-center gap-1 rounded-full border border-green-300 bg-green-50 px-3 py-1 text-xs font-semibold text-green-800 dark:border-green-700 dark:bg-green-950 dark:text-green-300">
  ★ Free · Open Source (MIT)
</span>

<p className="mt-3 text-lg text-gray-600 dark:text-gray-300">
  Daily, weekly, monthly, and yearly recurrence patterns with a reactive form field, a table column, and an infolist entry — fully RFC 5545 (iCalendar RRULE) compatible, built on <a href="https://github.com/simshaun/recurr">simshaun/recurr</a>.
</p>

<div className="flex flex-wrap gap-2 mt-3">
  <span className="dd-pill rounded-md px-2 py-1 text-xs font-mono">PHP ^8.3</span>
  <span className="dd-pill rounded-md px-2 py-1 text-xs font-mono">Filament ^4.0 | ^5.0</span>
  <span className="dd-pill rounded-md px-2 py-1 text-xs font-mono">Laravel ^12.0</span>
</div>

<div className="flex flex-wrap gap-3 mt-4">
  <a href="https://github.com/andreia/filament-recurrence" className="inline-flex items-center gap-2 rounded-lg bg-[#84C225] px-4 py-2 font-semibold text-white no-underline hover:opacity-90">
    View on GitHub →
  </a>

  <a href="/filament/recurrence/installation" className="inline-flex items-center gap-2 rounded-lg border border-gray-300 px-4 py-2 font-semibold text-gray-800 no-underline hover:bg-gray-50 dark:border-gray-600 dark:text-gray-100 dark:hover:bg-gray-800">
    Installation
  </a>
</div>

<a href="https://www.youtube.com/watch?v=NOg2IYgJ1W4" target="_blank">
  <img className="rounded-xl mt-8" src="https://raw.githubusercontent.com/andreia/filament-recurrence/main/art/demo_video.jpg" alt="Filament Recurrence demo video" />
</a>

## Features

<CardGroup cols={2}>
  <Card title="Form field" icon="calendar-days">
    A reactive form field for defining recurrence rules, with a live preview.
  </Card>

  <Card title="Table column" icon="table-columns">
    Display recurrence patterns and upcoming occurrences in your tables.
  </Card>

  <Card title="Infolist entry" icon="circle-info">
    Detailed, formatted recurrence information in your infolists.
  </Card>

  <Card title="RecurrenceData DTO" icon="code">
    A type-safe DTO for building, reading, and converting recurrence rules.
  </Card>

  <Card title="Eloquent cast + trait" icon="database">
    Store recurrence as JSON with a custom cast, plus a trait with query scopes and helper methods.
  </Card>

  <Card title="Per-record timezone" icon="globe">
    Each record can store its own timezone alongside the recurrence rule.
  </Card>
</CardGroup>

## Requirements

* PHP 8.3+
* Laravel 12+
* Filament 4 or 5

## Dependencies

Composer installs both of these automatically:

* [`simshaun/recurr`](https://github.com/simshaun/recurr) — the underlying RRULE engine
* [`tapp/filament-timezone-field`](https://github.com/TappNetwork/filament-timezone-field) — powers the timezone dropdown
