componist / reminder-notifications
Livewire-powered reminder notifications for Laravel.
Package info
github.com/componist/reminder-notifications
pkg:composer/componist/reminder-notifications
Requires
- livewire/livewire: ^4.0
This package is auto-updated.
Last update: 2026-05-28 08:49:53 UTC
README
componist/reminder-notifications provides email reminder notifications for Laravel applications, with a small Livewire v4 dashboard to manage reminders.
It supports three reminder types:
- daily: send at a specific time (HH:MM)
- monthly: send on a specific day of the month (1–30)
- yearly: send on a specific day + month (day 1–30, month 1–12)
Requirements
- Laravel (this monorepo uses Laravel 12)
- Livewire v4 (
livewire/livewire: ^4.0) - A working mail configuration
- A running queue worker (notifications are dispatched via queued jobs)
Installation
In this monorepo the package is loaded via Composer path/PSR-4 autoloading. After pulling changes, run:
composer dump-autoload php artisan migrate
What the package registers
Service Provider
The package registers Componist\ReminderNotifications\ReminderNotificationsServiceProvider.
It will:
- load migrations from
database/migrations - load routes from
routes/web.php(inside awebmiddleware group) - load views from
resources/viewsunder the namespaceremindernotifications:: - register artisan commands
- register Livewire components based on
config('reminderNotificationConfig.livewire')
Routes (Dashboard)
The package defines authenticated dashboard routes:
GET /dashboard/reminder-notification→ indexGET /dashboard/reminder-notification/create→ createGET /dashboard/reminder-notification/{editElement}/edit→ edit
Named routes:
package.reminder-notification.indexpackage.reminder-notification.createpackage.reminder-notification.edit
Livewire components
Configured in config/config.php:
Componist\ReminderNotifications\Livewire\ReminderNotification\IndexComponist\ReminderNotifications\Livewire\ReminderNotification\CreateComponist\ReminderNotifications\Livewire\ReminderNotification\Edit
The views live in:
remindernotifications::livewire.reminder-notification.indexremindernotifications::livewire.reminder-notification.createremindernotifications::livewire.reminder-notification.edit
Data model
The package creates a reminder_notifications table with (simplified) fields:
title(string)description(text, nullable)email(string)type(string):daily|monthly|yearlytime(string, nullable): used fordaily(formatHH:MM)daily(string, nullable): used formonthlyandyearly(day of month)monthly(string, nullable): used foryearly(month number)status(int, default1):1 = active,0 = inactive
Model:
Componist\ReminderNotifications\Models\ReminderNotification
Scheduling & execution
The package uses two artisan commands which dispatch queued jobs:
app:get-times-reminder-notifications-commands→ dispatchesReminderNotificationsTimesJob- checks daily reminders that match the current server time (
date('H:i'))
- checks daily reminders that match the current server time (
app:get-daily-reminder-notifications-commands→ dispatchesReminderNotificationsDailyJob- checks monthly and yearly reminders that match the current day/month
Important: scheduler is registered by the package
In ReminderNotificationsServiceProvider::boot() the package adds schedule entries:
- every minute:
app:get-times-reminder-notifications-commands - daily at 01:00:
app:get-daily-reminder-notifications-commands
That means you still need a running Laravel scheduler in your environment, e.g. one of:
php artisan schedule:work- a system cron calling
php artisan schedule:runevery minute
Queue worker
Both commands dispatch jobs implementing ShouldQueue. Ensure a queue worker is running, e.g.:
php artisan queue:work
Email content
Emails are sent via Laravel Notifications using:
Componist\ReminderNotifications\Notifications\ReminderNotificationNotification
Current mail output:
- Subject: a localized label + reminder title (e.g. “Tägliche Erinnerungsnachricht …”)
- Body: the
descriptionfield
Configuration
The package config key is reminderNotificationConfig.
To override values, create:
config/reminderNotificationConfig.php
Example (minimal):
<?php return [ 'prefix' => '', 'livewire' => [ // override aliases/components if needed ], ];
Available defaults are in packages/componist/reminder-notifications/config/config.php.
Troubleshooting
- No emails are sent
- Check
MAIL_*configuration - Ensure
php artisan queue:workis running - Ensure the scheduler runs (
schedule:workor cron +schedule:run)
- Check
- Daily reminders don’t trigger
timemust match the server time formatHH:MM(24h)- The “every minute” command checks
date('H:i')
- Monthly/yearly reminders don’t trigger
- Monthly/yearly are evaluated in the “daily” job, scheduled at 01:00
- Make sure
daily(day-of-month) andmonthly(month) are set correctly
License
MIT. See LICENSE.