Skip to content

Calendar Widget

A lightweight monthly calendar widget for Filament dashboards. Wraps the <x-aura::calendar> component from aura-ui with Filament section styling.

When to Use

Use AuraCalendarWidget when you need a simple month-view calendar without external dependencies. For advanced features (week/day views, drag-and-drop, resize), use saade/filament-fullcalendar with the FullCalendar CSS override.

Setup

Create a widget that extends AuraCalendarWidget:

use BlueStarSystem\AuraFilament\Widgets\AuraCalendarWidget;
use BlueStarSystem\AuraFilament\Support\CalendarEvent;

class ProjectCalendar extends AuraCalendarWidget
{
    protected ?string $heading = 'Deadlines';

    protected function getEvents(): array
    {
        return Task::query()
            ->whereNotNull('due_date')
            ->get()
            ->map(fn ($task) => CalendarEvent::make($task->title)
                ->date($task->due_date)
                ->color($task->is_overdue ? 'danger' : 'primary')
                ->icon('heroicon-o-flag')
                ->url(TaskResource::getUrl('edit', ['record' => $task]))
            )
            ->toArray();
    }
}

CalendarEvent API

Method Type Default Description
make(title) string required Factory constructor
->date(date) Carbon|string required Event date
->endDate(date) Carbon|string|null null End date (multi-day)
->color(color) string 'primary' primary/success/warning/danger/info
->icon(name) string|null null Heroicon name
->url(url) string|null null Click destination
->description(text) string|null null Tooltip text
->toArray() array Serialize for view
->carbon() ?Carbon Parse date to Carbon

Limitations

This widget intentionally supports month view only. It does not support:

  • Week or day views
  • Drag-and-drop event moving
  • Event duration resize
  • Time-slot scheduling

For these features, use saade/filament-fullcalendar.