PHPackages                             componist/reminder-notifications - 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. [Mail &amp; Notifications](/categories/mail)
4. /
5. componist/reminder-notifications

ActiveLibrary[Mail &amp; Notifications](/categories/mail)

componist/reminder-notifications
================================

Livewire-powered reminder notifications for Laravel.

041PHP

Since May 28Pushed 1mo agoCompare

[ Source](https://github.com/componist/reminder-notifications)[ Packagist](https://packagist.org/packages/componist/reminder-notifications)[ RSS](/packages/componist-reminder-notifications/feed)WikiDiscussions main Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

Componist Reminder Notifications
================================

[](#componist-reminder-notifications)

`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
------------

[](#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
------------

[](#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
--------------------------

[](#what-the-package-registers)

### Service Provider

[](#service-provider)

The package registers `Componist\ReminderNotifications\ReminderNotificationsServiceProvider`.

It will:

- **load migrations** from `database/migrations`
- **load routes** from `routes/web.php` (inside a `web` middleware group)
- **load views** from `resources/views` under the namespace `remindernotifications::`
- **register artisan commands**
- **register Livewire components** based on `config('reminderNotificationConfig.livewire')`

### Routes (Dashboard)

[](#routes-dashboard)

The package defines authenticated dashboard routes:

- `GET /dashboard/reminder-notification` → index
- `GET /dashboard/reminder-notification/create` → create
- `GET /dashboard/reminder-notification/{editElement}/edit` → edit

Named routes:

- `package.reminder-notification.index`
- `package.reminder-notification.create`
- `package.reminder-notification.edit`

### Livewire components

[](#livewire-components)

Configured in `config/config.php`:

- `Componist\ReminderNotifications\Livewire\ReminderNotification\Index`
- `Componist\ReminderNotifications\Livewire\ReminderNotification\Create`
- `Componist\ReminderNotifications\Livewire\ReminderNotification\Edit`

The views live in:

- `remindernotifications::livewire.reminder-notification.index`
- `remindernotifications::livewire.reminder-notification.create`
- `remindernotifications::livewire.reminder-notification.edit`

Data model
----------

[](#data-model)

The package creates a `reminder_notifications` table with (simplified) fields:

- `title` (string)
- `description` (text, nullable)
- `email` (string)
- `type` (string): `daily|monthly|yearly`
- `time` (string, nullable): used for `daily` (format `HH:MM`)
- `daily` (string, nullable): used for `monthly` and `yearly` (day of month)
- `monthly` (string, nullable): used for `yearly` (month number)
- `status` (int, default `1`): `1 = active`, `0 = inactive`

Model:

- `Componist\ReminderNotifications\Models\ReminderNotification`

Scheduling &amp; execution
--------------------------

[](#scheduling--execution)

The package uses two artisan commands which dispatch queued jobs:

- `app:get-times-reminder-notifications-commands` → dispatches `ReminderNotificationsTimesJob`
    - checks **daily** reminders that match the current server time (`date('H:i')`)
- `app:get-daily-reminder-notifications-commands` → dispatches `ReminderNotificationsDailyJob`
    - checks **monthly** and **yearly** reminders that match the current day/month

### Important: scheduler is registered by the package

[](#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:run` every minute

### Queue worker

[](#queue-worker)

Both commands dispatch jobs implementing `ShouldQueue`. Ensure a queue worker is running, e.g.:

```
php artisan queue:work
```

Email content
-------------

[](#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 `description` field

Configuration
-------------

[](#configuration)

The package config key is **`reminderNotificationConfig`**.

To override values, create:

- `config/reminderNotificationConfig.php`

Example (minimal):

```
