TopGit
GitHub Repo Review

Easy!Appointments: Self-Hosted Appointment Scheduler

alextselegidis/easyappointments
ETopGit review image for alextselegidis/easyappointments
Review by Topgit.dev for alextselegidis/easyappointments, with GitHub repository stats and README context.
Quick verdict

Easy!Appointments is a self-hosted PHP scheduling system you run on your own server with MySQL, and its core booking workflow works fully without a paid add-on. Reach for it if you want appointment data on infrastructure you control and don't mind maintaining a PHP stack; skip it if server upkeep sounds like a chore, since the maker also sells a hosted premium option for that.

Stars
โ˜… 4.5k
Forks
โ‘‚ 1.6k
Contributors
๐Ÿ‘ฅ 112
Language
PHP
License
GPL-3.0
Topic
Frontend
Updated
Oct 2026

What is Easy!Appointments?

Easy!Appointments is a self-hosted, open-source appointment scheduling system written in PHP with a MySQL database backend. A business runs its own booking page where customers pick a service, a provider, and an open time slot, while staff manage working hours, booking rules, and calendar sync from an admin panel. The GPL-3.0 license means the code is free to install, modify, and run for personal or business use.

Why Choose Self-Hosted Scheduling?

  • โœ“Full data control: appointment, customer, and provider records live in your own MySQL database instead of a third-party SaaS.
  • โœ“No forced subscription for core booking โ€” the self-hosted edition is free to run for personal or commercial use, per the README.
  • โœ“Google Calendar sync ships in the base project rather than sitting behind an integration marketplace.
  • โœ“GPL-3.0 licensing means you can read, modify, and redeploy the PHP source instead of trusting a closed system.
  • โœ“A Docker Compose setup is provided for local development, so you don't have to hand-configure PHP and MySQL just to try it.

Understanding Open Source Limitations

  • โ–ณThe free self-hosted edition doesn't include everything: the README points to a separate paid premium tier at easyappointments.org/premium for advanced capabilities and professional services, without listing which features are premium-only.
  • โ–ณProduction install is manual โ€” no one-command deploy script is documented; you upload files, edit a config, and step through a setup wizard yourself.
  • โ–ณPHP 8.2+ and a MySQL database are hard requirements, so it isn't a fit if your infrastructure doesn't support PHP.
  • โ–ณThe README doesn't state a version number, release cadence, or changelog, so there's no way to gauge patch frequency from the facts here.
  • โ–ณSupport runs through a GitHub issue tracker, a Google Groups list, and Discord rather than a formal SLA โ€” fine for a side project, less so if you need guaranteed response times.
View on GitHub โ†—Homepage โ†—

Core Scheduling Features

  • โœ“Appointment and customer management tracked together in one system, per the README's feature list.
  • โœ“Service and provider organization โ€” configure which providers offer which services.
  • โœ“Working plans and booking rules control staff availability and which slots can be booked.
  • โœ“Google Calendar synchronization keeps provider calendars aligned with bookings made through the app.
  • โœ“A built-in email notification system alerts customers and providers about appointment activity.
  • โœ“Multi-language interface for the admin and customer-facing pages.
  • โœ“Runs entirely self-hosted on your own Apache or Nginx server rather than a vendor's cloud.
  • โœ“Built on PHP with the CodeIgniter framework and tagged rest-api on GitHub, though the README doesn't spell out the API endpoints in detail.
How this repository's GitHub stars have grown over time. Source: star-history.com.View the star history โ†—

Setting Up Easy!Appointments

For local development, the README has you clone the repo, run `docker compose up`, then open a second terminal into the app container to run `npm install && composer install`, `npm start` for a dev asset watcher, or `npm run build` for production assets โ€” this works on Linux, macOS, and Windows with WSL recommended. For a production server, you'll need Apache or Nginx as the web server, PHP 8.2 or newer, and a MySQL database: set up the database, move the easyappointments folder onto your host, grant write access to the storage directory, then rename the config-sample.php file to config.php, fill in your configuration values, and finish through the setup wizard in your browser.

Other Appointment Schedulers

Cal.com โ€” an open-source scheduling platform built API-first, better suited to embedding booking flows into your own product than running a standalone admin panel like Easy!Appointments.Calendly โ€” a hosted, proprietary scheduling SaaS; faster to start with than self-hosting, but your booking data lives on Calendly's servers instead of your own database.Booked Scheduler โ€” an older open-source PHP resource-booking system, narrower in scope, built around booking rooms and equipment rather than customer-provider appointments.Amelia โ€” a paid WordPress booking plugin, convenient if you already run WordPress and don't want a separate PHP application to maintain.

Common Questions

Is Easy!Appointments free for commercial use?

Easy!Appointments is free to use personally or for business purposes under the GPL-3.0 license in its self-hosted form; the vendor separately sells a premium tier with advanced capabilities and professional services.

What are the system requirements for Easy!Appointments?

Running Easy!Appointments in production requires Apache or Nginx as the web server, PHP 8.2 or newer, and a MySQL database, per the README's installation section; local development instead uses a Docker Compose environment.

Does Easy!Appointments support Google Calendar synchronization?

Google Calendar synchronization is listed as a built-in feature of Easy!Appointments in the README, keeping provider calendars aligned with bookings made through the app.

How is Easy!Appointments deployed to a production server?

Production deployment of Easy!Appointments is manual, per the README: create a MySQL database, upload the application folder to your server, make the storage directory writable, rename the sample config file to config.php, fill in your settings, then finish through the browser-based setup wizard.

What kind of community support is available for Easy!Appointments?

Easy!Appointments lists a GitHub issue tracker, a Google Groups support forum, and a Discord server as its community channels, alongside what the README calls an active open-source community around the project.

The problem it solves

A business that wants online appointment booking usually has to hand customer contact details and calendar data to a hosted SaaS scheduler, or build booking logic from scratch. Easy!Appointments' README frames its reason for existing around that gap: an open-source system a business runs on its own server and database, so booking records stay on infrastructure it controls, while still getting the working-hours rules, provider assignment, and Google Calendar sync a scheduler needs.

Best use cases

  • โ€ขA small clinic, salon, or consultancy that wants an online booking page tied to specific providers and services without sending client data to a third-party SaaS.
  • โ€ขA developer comfortable running a PHP and MySQL stack who wants to customize booking rules or the admin UI instead of working within a SaaS scheduler's fixed feature set.
  • โ€ขA business already syncing staff schedules to Google Calendar that wants new bookings to show up there automatically.
  • โ€ขA team that wants to try the app locally first โ€” the Docker Compose dev setup lets you spin it up without touching a production server.

Who should try it โ€” and who should skip

Try Easy!Appointments if you run a small business or team that needs online appointment booking and would rather host the database yourself than trust a SaaS vendor with client contact details, and if someone on your team can maintain a PHP 8.2+/MySQL server. Skip it if you don't want server upkeep at all โ€” the same company's premium tier, or a hosted product like Calendly, removes that burden but moves your data off your own infrastructure.

Related repositories

Source & attribution

Facts and quotes sourced from the alextselegidis/easyappointments GitHub repository and its README.

GitHub data ยท last synced Aug 14, 2026Reviewed by Henry
โ† Back to TopGit

Want a second opinion on easyappointments?

Ask an AI that can read this page โ€” one click and you get its take on easyappointments.

GitHub