PHPackages                             alextselegidis/easyappointments - 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. alextselegidis/easyappointments

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

alextselegidis/easyappointments
===============================

Open Source Web Scheduler

1.5.2(9mo ago)4.2k3901.5k[118 issues](https://github.com/alextselegidis/easyappointments/issues)[22 PRs](https://github.com/alextselegidis/easyappointments/pulls)GPL-3.0PHPPHP &gt;=8.1CI passing

Since Jan 2Pushed 3w ago153 watchersCompare

[ Source](https://github.com/alextselegidis/easyappointments)[ Packagist](https://packagist.org/packages/alextselegidis/easyappointments)[ Docs](https://easyappointments.org)[ RSS](/packages/alextselegidis-easyappointments/feed)WikiDiscussions main Synced 2w ago

READMEChangelog (10)Dependencies (11)Versions (27)Used By (0)Security (14)

 [ ![Easy!Appointments](https://raw.githubusercontent.com/alextselegidis/easyappointments/develop/logo.png) ](https://easyappointments.org)
 Easy!Appointments

===================================================================================================================================================================

[](#----------------------------easyappointments----)

####  A powerful, self-hosted appointment scheduling platform built for flexibility.

[](#----a-powerful-self-hosted-appointment-scheduling-platform-built-for-flexibility)

 [![License](https://camo.githubusercontent.com/1f35b572df89789abf4e9f16db367f0199fe0d339493c53d4c043cb67070b476/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f616c65787473656c6567696469732f656173796170706f696e746d656e74733f7374796c653d666f722d7468652d6261646765)](https://camo.githubusercontent.com/1f35b572df89789abf4e9f16db367f0199fe0d339493c53d4c043cb67070b476/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f616c65787473656c6567696469732f656173796170706f696e746d656e74733f7374796c653d666f722d7468652d6261646765) [![Latest Release](https://camo.githubusercontent.com/a426d0bf286ef67230d4e3d131921807a08e2e987fd061e4c032eb6c87b16147/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f616c65787473656c6567696469732f656173796170706f696e746d656e74733f7374796c653d666f722d7468652d6261646765)](https://camo.githubusercontent.com/a426d0bf286ef67230d4e3d131921807a08e2e987fd061e4c032eb6c87b16147/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f616c65787473656c6567696469732f656173796170706f696e746d656e74733f7374796c653d666f722d7468652d6261646765) [![Downloads](https://camo.githubusercontent.com/f6acd1783a8ab241978f9890895cb4a81bc6eb4dd3ad94d67900ef6d67f65e3c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f616c65787473656c6567696469732f656173796170706f696e746d656e74732f746f74616c3f7374796c653d666f722d7468652d6261646765)](https://camo.githubusercontent.com/f6acd1783a8ab241978f9890895cb4a81bc6eb4dd3ad94d67900ef6d67f65e3c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f616c65787473656c6567696469732f656173796170706f696e746d656e74732f746f74616c3f7374796c653d666f722d7468652d6261646765) [ ![Discord](https://camo.githubusercontent.com/a375b946ad11ab7ab69ae2a73ddb17ca5055dd6b6cf0c32d47fb957ddba1ebf2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636861742d6f6e253230646973636f72642d3732383964613f7374796c653d666f722d7468652d6261646765266c6f676f3d646973636f7264266c6f676f436f6c6f723d7768697465) ](https://discord.com/invite/UeeSkaw)

 [Why Easy!Appointments](#why-easyappointments) • [Features](#features) • [Quick Start](#quick-start) • [Installation](#installation) • [License](#license)

---

 **Looking for advanced capabilities?**
 Explore premium features and professional services at [easyappointments.org/premium](https://easyappointments.org/premium).

---

[![screenshot](screenshot.png)](screenshot.png)

🚀 Why Easy!Appointments
-----------------------

[](#-why-easyappointments)

**Easy!Appointments** is an open-source scheduling system that gives you full control over your booking workflow.

It is designed to adapt to your business — whether you need simple appointment booking or more advanced scheduling logic.

**Key advantages:**

- Fully self-hosted — your data stays under your control
- Highly customizable and flexible
- Integrates with your existing website and database
- Free for both personal and commercial use

---

✨ Features
----------

[](#-features)

Built to support a wide range of scheduling needs:

- Appointment and customer management
- Service and provider organization
- Working plans and booking rules
- Google Calendar synchronization
- Email notification system
- Multi-language interface
- Self-hosted deployment
- Active open-source community

---

⚡ Quick Start (Development)
---------------------------

[](#-quick-start-development)

Clone and run the project locally using the provided Docker Compose environment:

```
# Clone the repository
git clone https://github.com/alextselegidis/easyappointments.git

# Navigate into the project
cd easyappointments

# Start the Docker environment
docker compose up
```

Then open a second terminal and enter the application container:

```
docker compose exec app bash
```

Inside the container, install dependencies:

```
npm install && composer install
```

Start the development watcher:

```
npm start
```

Build production assets:

```
npm run build
```

> Note: Works on Windows (WSL recommended), macOS, and Linux using Docker Compose.

---

🏗️ Installation (Production)
----------------------------

[](#️-installation-production)

### Requirements

[](#requirements)

- Apache or Nginx
- PHP 8.2+
- MySQL database

### Steps

[](#steps)

1. Create a database (or use an existing one)
2. Upload the `easyappointments` folder to your server
3. Ensure the `storage` directory is writable
4. Rename `config-sample.php` to `config.php`
5. Update configuration values
6. Open the application in your browser and follow the setup wizard

Once completed, the system is ready to use.

---

📚 Resources
-----------

[](#-resources)

- Website:
- Issues:
- Support Group:
- Discord:

---

📜 License
---------

[](#-license)

- Code: GPL v3.0
- Content: CC BY 3.0

---

👤 Author
--------

[](#-author)

- Website:
- GitHub:
- Twitter:

---

🔥 More Projects
---------------

[](#-more-projects)

- [Plainpad · Self-Hosted Note Taking](https://github.com/alextselegidis/plainpad)
- [Clientverse · CRM Application](https://github.com/alextselegidis/clientverse)
- [Timecrack · Time Tracking](https://github.com/alextselegidis/timecrack)

###  Health Score

65

—

FairBetter than 99% of packages

Maintenance78

Regular maintenance activity

Popularity48

Moderate usage in the ecosystem

Community40

Growing community involvement

Maturity82

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 93.4% 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 ~154 days

Recently: every ~379 days

Total

24

Last Release

288d ago

PHP version history (4 changes)1.3.0-alpha.1PHP &gt;=5.6

1.4.0PHP &gt;=7.0

1.4.2-beta.1PHP &gt;=7.3

1.5.2PHP &gt;=8.1

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/4527441?v=4)[Alex Tselegidis](/maintainers/alextselegidis)[@alextselegidis](https://github.com/alextselegidis)

---

Top Contributors

[![alextselegidis](https://avatars.githubusercontent.com/u/4527441?v=4)](https://github.com/alextselegidis "alextselegidis (3572 commits)")[![popod](https://avatars.githubusercontent.com/u/3807312?v=4)](https://github.com/popod "popod (41 commits)")[![sudwebdesign](https://avatars.githubusercontent.com/u/1390644?v=4)](https://github.com/sudwebdesign "sudwebdesign (31 commits)")[![oxteam](https://avatars.githubusercontent.com/u/38721222?v=4)](https://github.com/oxteam "oxteam (25 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (24 commits)")[![tm8544](https://avatars.githubusercontent.com/u/15167679?v=4)](https://github.com/tm8544 "tm8544 (13 commits)")[![bzg](https://avatars.githubusercontent.com/u/63500?v=4)](https://github.com/bzg "bzg (10 commits)")[![Tthecreator](https://avatars.githubusercontent.com/u/14221894?v=4)](https://github.com/Tthecreator "Tthecreator (10 commits)")[![janinavelasco9](https://avatars.githubusercontent.com/u/23013396?v=4)](https://github.com/janinavelasco9 "janinavelasco9 (9 commits)")[![Caine85](https://avatars.githubusercontent.com/u/5676445?v=4)](https://github.com/Caine85 "Caine85 (7 commits)")[![emanwebdev](https://avatars.githubusercontent.com/u/1505372?v=4)](https://github.com/emanwebdev "emanwebdev (7 commits)")[![edioilha](https://avatars.githubusercontent.com/u/8040303?v=4)](https://github.com/edioilha "edioilha (7 commits)")[![sduck](https://avatars.githubusercontent.com/u/1327028?v=4)](https://github.com/sduck "sduck (6 commits)")[![idstam](https://avatars.githubusercontent.com/u/1647735?v=4)](https://github.com/idstam "idstam (5 commits)")[![JanC](https://avatars.githubusercontent.com/u/707703?v=4)](https://github.com/JanC "JanC (5 commits)")[![herzogmedia](https://avatars.githubusercontent.com/u/16254318?v=4)](https://github.com/herzogmedia "herzogmedia (5 commits)")[![tanielkirikal](https://avatars.githubusercontent.com/u/36533962?v=4)](https://github.com/tanielkirikal "tanielkirikal (4 commits)")[![Valian](https://avatars.githubusercontent.com/u/3935986?v=4)](https://github.com/Valian "Valian (4 commits)")[![vitormattos](https://avatars.githubusercontent.com/u/1079143?v=4)](https://github.com/vitormattos "vitormattos (4 commits)")[![walalm](https://avatars.githubusercontent.com/u/2467805?v=4)](https://github.com/walalm "walalm (4 commits)")

---

Tags

appointmentscodeignitereventsgoogle-calendarjavascriptmysqlphprest-apischedulersynctimewebschedulergoogleeventsdatescalendarservicesappointments

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/alextselegidis-easyappointments/health.svg)

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

###  Alternatives

[laravel/framework

The Laravel Framework.

34.8k532.1M19.4k](/packages/laravel-framework)[matomo/matomo

Matomo is the leading Free/Libre open analytics platform

21.6k38.2k](/packages/matomo-matomo)[civicrm/civicrm-core

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

751284.3k37](/packages/civicrm-civicrm-core)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

585.4M524](/packages/shopware-core)[tempest/framework

The PHP framework that gets out of your way.

2.2k31.1k12](/packages/tempest-framework)[chameleon-system/chameleon-base

The Chameleon System core.

1027.9k4](/packages/chameleon-system-chameleon-base)

PHPackages © 2026

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