Easy!Appointments is a free, open source scheduling & event management project written in PHP and released under GPL-3.0. It has 4,377 GitHub stars, 1,567 forks and 164 open issues, and was last pushed 3 days ago. On this registry it ranks #7 of 23 tracked projects in Scheduling & Event Management, with 5 head-to-head comparisons available. It gained 8 stars over the last 6 tracked days.

What is Easy!Appointments?

What it is

Easy!Appointments is a free, open-source, self-hosted appointment scheduling platform written in PHP and released under the GPL-3.0 license. It runs on the CodeIgniter framework with a MySQL database and a JavaScript front end, and it is distributed through the project's GitHub repository at alextselegidis/easyappointments. The application is designed to adapt to a business rather than force a business to adapt to it, covering both simple appointment booking and more advanced scheduling logic.

The concrete problem it solves is ownership of the booking workflow. Commercial scheduling services host customer data on the vendor's infrastructure and charge for access, while Easy!Appointments is deployed on infrastructure the operator controls, so appointment records, customer details, and provider schedules stay in the operator's own database. It also integrates with an existing website and database, which means a business can add booking to a site it already runs instead of adopting a separate hosted platform.

Key capabilities

  • Appointment and customer management, covering the booking records themselves and the people attached to them.
  • Service and provider organization, so multiple offerings and multiple staff members can be modeled separately.
  • Working plans and booking rules that define when each provider is available.
  • Google Calendar synchronization for pushing scheduled appointments into an existing calendar.
  • An email notification system for communicating booking events.
  • A multi-language interface for deployments serving more than one language.
  • A REST API, listed among the repository topics, for programmatic access to the scheduling data.

Who uses it and how

  • Businesses that want booking embedded in an existing website while keeping the underlying data in their own database.
  • Service providers who need to define distinct services, assign them to specific staff, and constrain availability through working plans and booking rules.
  • Teams already standardized on Google Calendar that want appointments to appear there automatically through synchronization.
  • Operators with privacy or compliance requirements who prefer self-hosted deployment over a hosted scheduling service.
  • Developers who need to read or write scheduling data programmatically through the REST API.

Getting started

For development, the repository ships a Docker Compose environment: clone the repository, run docker compose up, then docker compose exec app bash and run npm install && composer install, followed by npm start for the development watcher or npm run build for production assets. For production, the README requires Apache or Nginx, PHP 8.2 or later, and a MySQL database; the operator uploads the easyappointments folder, makes the storage directory writable, renames config-sample.php to config.php, updates the configuration values, and completes the setup wizard in the browser.

When to use it — and when not to

Easy!Appointments is a reasonable choice when self-hosting and data control matter more than a managed service, and the project points to premium features and professional services at easyappointments.org/premium for capabilities beyond the open-source core. A self-hoster must operate a web server, PHP 8.2 or later, a MySQL database, a writable storage directory, and the email notification system, so the operational burden is real. The repository also carries 164 open issues, which is worth weighing before committing to it for a production booking flow.

project readme (upstream, from github) — read inline


Easy!Appointments
Easy!Appointments

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

License Latest Release Downloads Discord

Why Easy!AppointmentsFeaturesQuick StartInstallationLicense


Looking for advanced capabilities?
Explore premium features and professional services at easyappointments.org/premium.


screenshot

🚀 Why Easy!Appointments

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

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)

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)

Requirements

  • Apache or Nginx
  • PHP 8.2+
  • MySQL database

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


📜 License

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

👤 Author


🔥 More Projects

Frequently asked questions

Is Easy!Appointments free to use?

Easy!Appointments is open source under the GPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Easy!Appointments do?

Free open-source appointment booking for any business

What is Easy!Appointments written in?

Easy!Appointments is primarily written in PHP. Its source is publicly available at https://github.com/alextselegidis/easyappointments, and it has 4,377 GitHub stars.