PHPackages                             befuturein/scheduled-reminders - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. befuturein/scheduled-reminders

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

befuturein/scheduled-reminders
==============================

Flexible scheduled reminders package for Laravel.

v0.1.1(5mo ago)00MITPHPPHP ^8.2CI passing

Since Nov 29Pushed 5mo agoCompare

[ Source](https://github.com/befuturein/scheduled-reminders)[ Packagist](https://packagist.org/packages/befuturein/scheduled-reminders)[ RSS](/packages/befuturein-scheduled-reminders/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (1)Versions (3)Used By (0)

BeFuture Scheduled Reminders
============================

[](#befuture-scheduled-reminders)

[![Tests](https://github.com/befuturein/scheduled-reminders/actions/workflows/tests.yml/badge.svg)](https://github.com/befuturein/scheduled-reminders/actions/workflows/tests.yml)[![Latest Stable Version](https://camo.githubusercontent.com/df8dc11be6c7cbfb8a882d73f163b589f7d714e78dba54bb3900c2db8f84ecc9/68747470733a2f2f706f7365722e707567782e6f72672f6265667574757265696e2f7363686564756c65642d72656d696e646572732f762f737461626c65)](https://packagist.org/packages/befuturein/scheduled-reminders)[![Total Downloads](https://camo.githubusercontent.com/0b0d564e8b51ad152f4a7ef4ba6cbcc2e27d55d546f2a293a1cae59ef3955b84/68747470733a2f2f706f7365722e707567782e6f72672f6265667574757265696e2f7363686564756c65642d72656d696e646572732f646f776e6c6f616473)](https://packagist.org/packages/befuturein/scheduled-reminders)[![License](https://camo.githubusercontent.com/51fe64acb801a9fc9ff1ffc51383b14101fdda8ddad826aefdd426a6ea2068a8/68747470733a2f2f706f7365722e707567782e6f72672f6265667574757265696e2f7363686564756c65642d72656d696e646572732f6c6963656e7365)](https://github.com/befuturein/scheduled-reminders/blob/main/LICENSE)[![PHP Version](https://camo.githubusercontent.com/dd90f5bec93278efbc2021f745a9fbdb1e9b4606c49211661b204f9c7e0c7490/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f6265667574757265696e2f7363686564756c65642d72656d696e64657273)](https://packagist.org/packages/befuturein/scheduled-reminders)

BeFuture Scheduled Reminders is a simple, extensible, and reliable scheduled reminder package for Laravel. It stores reminders in the database, processes them when their scheduled time arrives, and dispatches an event so you can send notifications through any channel (email, SMS, push, database, etc.).

Features
--------

[](#features)

- Create scheduled reminders easily
- Automatically resolve due reminders
- Prevent duplicate processing using `is_sent` flag
- Fully event-driven architecture
- Publishable config and migrations
- UUID-based model
- Service-based API
- Console command for the scheduler
- Complete Testbench integration
- PSR-4 &amp; SOLID compliant structure

Installation
------------

[](#installation)

```
composer require befuturein/scheduled-reminders
```

Laravel automatically discovers the service provider.

Publish Config &amp; Migrations
-------------------------------

[](#publish-config--migrations)

Run these commands **inside your Laravel application**:

```
php artisan vendor:publish --tag=scheduled-reminders-config
php artisan vendor:publish --tag=scheduled-reminders-migrations
php artisan migrate
```

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

[](#configuration)

`config/scheduled-reminders.php`:

```
return [
    'default_channel' => 'email',

    'channels' => [
        'email',
        'database',
        'sms',
    ],

    'run_interval_minutes' => 5,
];
```

Scheduler Setup
---------------

[](#scheduler-setup)

Add to your scheduler:

```
// app/Console/Kernel.php

protected function schedule(\Illuminate\Console\Scheduling\Schedule $schedule): void
{
    $schedule->command('scheduled-reminders:send')->everyMinute();
}
```

Usage (Service API)
-------------------

[](#usage-service-api)

### Create a reminder

[](#create-a-reminder)

```
use BeFuture\ScheduledReminders\Services\ReminderService;

$reminder = app(ReminderService::class)->create([
    'title'        => 'Payment Reminder',
    'message'      => 'Please don’t forget your monthly payment.',
    'channel'      => 'email',
    'scheduled_at' => now()->addMinutes(10),
]);
```

### Fetch due reminders

[](#fetch-due-reminders)

```
$due = app(ReminderService::class)->dueReminders();
```

### Mark as sent

[](#mark-as-sent)

```
app(ReminderService::class)->markAsSent($reminder);
```

Event System
------------

[](#event-system)

When a reminder is processed, this event is dispatched:

```
BeFuture\ScheduledReminders\Events\ReminderSent
```

Example listener:

```
class LogReminderSent
{
    public function handle(ReminderSent $event)
    {
        logger('Reminder sent', [
            'id' => $event->reminder->id,
        ]);
    }
}
```

Testing
-------

[](#testing)

This package includes full PHPUnit + Orchestra Testbench integration.

Run tests:

```
vendor/bin/phpunit
```

### Example TestCase

[](#example-testcase)

```
abstract class TestCase extends BaseTestCase
{
    use RefreshDatabase;

    protected function getPackageProviders($app): array
    {
        return [
            ScheduledRemindersServiceProvider::class,
        ];
    }

    protected function defineDatabaseMigrations()
    {
        $this->loadMigrationsFrom(__DIR__ . '/../database/migrations');
    }
}
```

Directory Structure
-------------------

[](#directory-structure)

```
src/
    ScheduledRemindersServiceProvider.php
    Services/
    Models/
    Events/
    Console/

config/
database/
tests/
composer.json
phpunit.xml.dist
README.md

```

Architecture
------------

[](#architecture)

- **Namespace:** `BeFuture\ScheduledReminders`
- **Vendor:** `befuturein`
- Fully PSR-4 compliant
- UUID-based primary keys
- Service container bindings
- Event-driven flow
- Config-driven channel architecture
- Extensible by design for email, SMS, push, queue systems, etc.

Development
-----------

[](#development)

```
composer install
vendor/bin/phpunit
```

License
-------

[](#license)

MIT License.

About BeFuture Interactive
--------------------------

[](#about-befuture-interactive)

This package is part of the BeFuture Interactive open-source ecosystem. More packages coming soon.

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance71

Regular maintenance activity

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

163d ago

PHP version history (2 changes)v0.1.0PHP ^8.1

v0.1.1PHP ^8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/e86dad672c575acf9b65cfea8ecc8804d82943b0753e257e4b881e1a19f8d481?d=identicon)[muratcankayalak](/maintainers/muratcankayalak)

---

Top Contributors

[![muratcankayalak](https://avatars.githubusercontent.com/u/19274136?v=4)](https://github.com/muratcankayalak "muratcankayalak (10 commits)")

### Embed Badge

![Health badge](/badges/befuturein-scheduled-reminders/health.svg)

```
[![Health](https://phpackages.com/badges/befuturein-scheduled-reminders/health.svg)](https://phpackages.com/packages/befuturein-scheduled-reminders)
```

###  Alternatives

[hazaveh/verify-domain

Verify Domain Ownership with PHP

238.6k1](/packages/hazaveh-verify-domain)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
