PHPackages                             zwartpet/schedule-manager - 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. zwartpet/schedule-manager

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

zwartpet/schedule-manager
=========================

Add pause and resume functionality to the laravel schedule

1.2.2(1y ago)011MITPHPPHP ^8.2CI passing

Since Feb 28Pushed 1y ago1 watchersCompare

[ Source](https://github.com/Zwartpet/laravel-schedule-manager)[ Packagist](https://packagist.org/packages/zwartpet/schedule-manager)[ Docs](https://github.com/zwartpet/laravel-schedule-manager)[ RSS](/packages/zwartpet-schedule-manager/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (7)Versions (21)Used By (0)

Laravel Schedule Manager
========================

[](#laravel-schedule-manager)

[![Latest Version on Packagist](https://camo.githubusercontent.com/53f0942e011a52ef113cee79a490db8f67c12efcb7d12dd683a645be8fd589b8/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7a776172747065742f7363686564756c652d6d616e616765722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/zwartpet/schedule-manager)[![Test](https://github.com/Zwartpet/laravel-schedule-manager/actions/workflows/main.yml/badge.svg)](https://github.com/Zwartpet/laravel-schedule-manager/actions/workflows/main.yml)

Adds pause and resume functionality to the Laravel schedule via command line and an admin interface (wip).
Because sometimes you just quickly want to pause a specific schedule without the need to deploy the whole application

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

[](#installation)

You can install the package via composer:

```
composer require zwartpet/schedule-manager
```

Usage
-----

[](#usage)

### Command line

[](#command-line)

Just use the `schedule-manager:pause` and `schedule-manager:resume` commands to pause and resume a schedule.
With the `--description` option you can add a description to the pause.
The `--pause-until` option will pause the schedule until the given date.

```
php artisan schedule-manager:pause --description="3rd party API is down" --pause-until="2027-01-01 00:00:00"
```

```
 ┌ Which schedule do you want to pause? ────────────────────────┐
 │ › ● 0 0 * * * php artisan cache:clear                        │
 │   ○ 0 0 1 * * php artisan cache:clear                        │
 └──────────────────────────────────────────────────────────────┘
```

Using the `schedule-manager:paused` command you can see all the paused schedules.

```
php artisan schedule-manager:paused
```

```
 ┌───────────────────────────────────┬─────────────────────┬───────────────────────┐
 │ Paused schedule                   │ Paused until        │ Description           │
 ├───────────────────────────────────┼─────────────────────┼───────────────────────┤
 │ 0 0 * * * php artisan cache:clear │ 2027-01-01 00:00:00 │ 3rd party API is down │
 └───────────────────────────────────┴─────────────────────┴───────────────────────┘
```

Additionally there is a `schedule-manager:optimize` command that will cleanup the paused schedules that have expired when using the database driver which is also running on `php artisan optimize`.

### Configuration

[](#configuration)

This library is plug and play and works out of the box. There are some configuration options available.

For all the configuration options see the [config file](config/config.php).

**Cache driver**
By default the package uses the Laravel cache to store the paused schedules. You can change the cache store by adding `SCHEDULE_MANAGER_CACHE_STORE` to your `.env` which defaults to the Laravel's own `CACHE_STORE`

**Database driver**
If you want to persist the pauses even further, for instance because deploys often clear the cache, you can use the database driver.
Overwrite the `SCHEDULE_MANAGER_DRIVER` in your `.env` to `database` and run the migrations.

### UI

[](#ui)

Publish the assets

```
php artisan vendor:publish --tag=schedule-manager-assets
```

The UI uses [Laravel Livewire](https://livewire.laravel.com/) and is disabled by default, add `SCHEDULE_MANAGER_UI_ENABLED=true` to your `.env` file and install livewire.

```
composer require livewire/livewire
```

The UI is available on the `/schedule-manager` route, configurable with `SCHEDULE_MANAGER_UI_ROUTE` in your `.env` file.

The route is protected with a [Laravel Gate](https://laravel.com/docs/12.x/authorization#gates) named `schedule-manager` which you can customize with `SCHEDULE_MANAGER_UI_GATE` in your `.env` file. Create the gate by adding the following to your `AuthServiceProvider`, not adding this will result in a 404 error when visiting the route.

```
Gate::define('schedule-manager', function (User $user) {
    return $user->isAdmin; // or any other logic
});
```

Testing
-------

[](#testing)

Pest

```
composer test
```

Pint

```
composer test:lint
```

PHPStan

```
composer test:types
```

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

Credits
-------

[](#credits)

- [John Zwarthoed](https://github.com/zwartpet)
- [All Contributors](../../contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

32

—

LowBetter than 71% of packages

Maintenance47

Moderate activity, may be stable

Popularity5

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 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 ~1 days

Total

13

Last Release

423d ago

Major Versions

0.0.5 → 1.0.02025-03-03

PHP version history (3 changes)0.0.1PHP ^8.3|^8.4

1.1.1PHP ^8.3

1.1.3PHP ^8.2

### Community

Maintainers

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

---

Top Contributors

[![Zwartpet](https://avatars.githubusercontent.com/u/1200202?v=4)](https://github.com/Zwartpet "Zwartpet (46 commits)")

---

Tags

zwartpetschedule-managerlaravel-schedule-manager

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/zwartpet-schedule-manager/health.svg)

```
[![Health](https://phpackages.com/badges/zwartpet-schedule-manager/health.svg)](https://phpackages.com/packages/zwartpet-schedule-manager)
```

###  Alternatives

[livewire/flux

The official UI component library for Livewire.

9385.0M85](/packages/livewire-flux)[log1x/acf-composer

Create fields, blocks, option pages, and widgets using ACF Builder and Sage 10

493760.2k13](/packages/log1x-acf-composer)[hirethunk/verbs

An event sourcing package that feels nice.

513162.9k6](/packages/hirethunk-verbs)[cheesegrits/filament-google-maps

A Google Maps package for Filament PHP with field, column and widget

322533.2k1](/packages/cheesegrits-filament-google-maps)[qruto/laravel-wave

Painless Laravel Broadcasting with SSE.

87048.4k](/packages/qruto-laravel-wave)[nativephp/electron

Electron wrapper for the NativePHP framework.

519114.4k8](/packages/nativephp-electron)

PHPackages © 2026

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