PHPackages                             mindtwo/appointable - 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. mindtwo/appointable

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

mindtwo/appointable
===================

This package helps you to manage appointments within yout Laravel application.

0.3.0(9mo ago)05MITPHPPHP ^8.3||^8.4CI passing

Since Oct 2Pushed 9mo agoCompare

[ Source](https://github.com/mindtwo/appointable)[ Packagist](https://packagist.org/packages/mindtwo/appointable)[ Docs](https://github.com/mindtwo/appointable)[ GitHub Sponsors]()[ RSS](/packages/mindtwo-appointable/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (11)Versions (23)Used By (0)

Appointable by mindtwo
======================

[](#appointable-by-mindtwo)

Introduction
------------

[](#introduction)

**Appointable** is a Laravel package by mindtwo that provides an appointment management system with configurable routes and controllers. It allows developers to manage appointments, handle invitations, and provide easy-to-use RESTful endpoints for various appointment-related actions. This package comes with built-in routes, a service provider, and configuration options for quick integration.

Features
--------

[](#features)

- Create and auto-manage appointments for Eloquent models
- Registerable routes for managing appointments.
- RESTful controllers for creating, updating, canceling, and managing invitations.
- Middleware support for secure appointment routes.

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

[](#installation)

1. Install the package via Composer:

    ```
    composer require mindtwo/appointable
    ```
2. (Optional) Publish the configuration and migration files:

    ```
    php artisan vendor:publish --provider="mindtwo\Appointable\Providers\AppointableServiceProvider" --tag="appointable-config"
    php artisan vendor:publish --provider="mindtwo\Appointable\Providers\AppointableServiceProvider" --tag="appointable-migrations"
    ```
3. Run the migrations:

    ```
    php artisan migrate
    ```

Usage
-----

[](#usage)

### Register Routes

[](#register-routes)

To register the default appointment management routes, simply call the `Appointable::routes()` method in your `web.php` routes file.

```
use mindtwo\Appointable\Facades\Appointable;

// Register the default appointment routes
Appointable::routes();
```

By default, the routes will be registered under the `/appointments` prefix. You can customize the prefix and middleware by passing options to the `routes()` method:

```
Appointable::routes('my-appointments', ['auth']);
```

This will register the routes under `/my-appointments` and apply the `auth` middleware.

### Available Routes

[](#available-routes)

The following routes are registered when using `Appointable::routes()`:

- **GET** `/appointments` – List all appointments (Index).
- **POST** `/appointments` – Create a new appointment.
- **PUT|PATCH** `/appointments/{uuidOrUid}` – Update an appointment.
- **DELETE** `/appointments/{uuidOrUid}` – Cancel an appointment.
- **POST** `/appointments/{uuidOrUid}/confirm` – Confirm an appointment invitation.
- **POST** `/appointments/{uuidOrUid}/decline` – Decline an appointment invitation.

### Middleware

[](#middleware)

By default, no middleware is applied to the routes. You can specify custom middleware in the `routes()` method:

```
Appointable::routes('appointments', ['auth', 'verified']);
```

### Configurations

[](#configurations)

You can customize the behavior of the package through its configuration file. After publishing the configuration, modify the `config/appointable.php` file as needed.

```
return [
    'middleware' => ['web'],
];
```

Migrations
----------

[](#migrations)

The package provides a migration file to create the `appointments` table. You can publish the migration with:

```
php artisan vendor:publish --provider="mindtwo\Appointable\Providers\AppointableServiceProvider" --tag="appointable-migrations"
```

After publishing, run the migration:

```
php artisan migrate
```

License
-------

[](#license)

This package is open-sourced software licensed under the [MIT license](LICENSE).

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance58

Moderate activity, may be stable

Popularity4

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity56

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

Recently: every ~61 days

Total

19

Last Release

272d ago

PHP version history (2 changes)0.0.1PHP ^8.3

0.2.7PHP ^8.3||^8.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/4cc86fe6179314d204b14d1c81eb09a87ef84b0bcf2360dcd981171d1346c077?d=identicon)[mindtwo](/maintainers/mindtwo)

---

Top Contributors

[![blumewas](https://avatars.githubusercontent.com/u/5960093?v=4)](https://github.com/blumewas "blumewas (43 commits)")

---

Tags

laravelappointmentsmindtwoappointable

###  Code Quality

TestsPest

Static AnalysisPHPStan

### Embed Badge

![Health badge](/badges/mindtwo-appointable/health.svg)

```
[![Health](https://phpackages.com/badges/mindtwo-appointable/health.svg)](https://phpackages.com/packages/mindtwo-appointable)
```

###  Alternatives

[spatie/laravel-data

Create unified resources and data transfer objects

1.8k28.9M627](/packages/spatie-laravel-data)[worksome/exchange

Check Exchange Rates for any currency in Laravel.

123544.7k](/packages/worksome-exchange)[ralphjsmit/livewire-urls

Get the previous and current url in Livewire.

82270.3k4](/packages/ralphjsmit-livewire-urls)[hydrat/filament-table-layout-toggle

Filament plugin adding a toggle button to tables, allowing user to switch between Grid and Table layouts.

6292.3k1](/packages/hydrat-filament-table-layout-toggle)[tarfin-labs/event-machine

Event-driven state machines for Laravel with event sourcing, type-safe context, and full audit trail.

188.5k](/packages/tarfin-labs-event-machine)[ralphjsmit/laravel-helpers

A package containing handy helpers for your Laravel-application.

13704.6k2](/packages/ralphjsmit-laravel-helpers)

PHPackages © 2026

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