Discover / GTM & Growth
Easy!Appointments
by alextselegidisPHP
Open source appointment scheduling application for sales and service teams
Maturity: stable because 12y old, 1.6.0 released 68d ago. Derived from release and commit history, not a rating.
- Stars
- 4.3k
- Forks
- 1.5k
- Downloads / mo
- —
- Last commit
- 2026-07-29
- License
- GPL-3.0
- Open issues
- 154
Market and trust evidence
Edition not yet matchedNo exact skills.sh identity match is available for this repository. Repository adoption and freshness remain visible above; install momentum is not inferred.
Trust analysis is a screening signal, not a security warranty. Read the ranking and trust methodology.
In practice
Written by AI from this repository’s README · high confidenceBooking SaaS charges per provider and keeps customer appointment data outside your own systems.
Use it when
Use it when you need booking on your own PHP and MySQL hosting, integrated with an existing website.
Not the right pick when
Advanced capabilities are pointed at a premium offering, so the open version does not cover every scheduling need.
Capabilities
- appointment and customer management
- service and provider organization
- working plans and booking rules
- Google Calendar synchronization
- email notification system and multi-language interface
- setup wizard run from the browser after configuration
Requirements
- Apache or Nginx
- PHP 8.2+
- MySQL database
Cost: Open source with a paid cloud option
Install
Derived from the published package name in the repository, not from a model.
Video walkthroughs
Open Source Futsal/Tennis Court Booking System (Easy!Appointments)
Run Easy!Appointments - Appointment Scheduler System - in Docker
Third-party YouTube uploads matched to this tool by title, channel and repository name on 2026-08-03. Not made, reviewed or endorsed by SkillPilot. View counts and publish months are as of the match date and the month is approximate. Nothing loads from YouTube until you press play.
What the repository ships
Detected from the actual files in the repository root.
Latest release 1.6.0
Published 2026-05-27
Easy!Appointments is a self hosted, open source web scheduler application that is very easy to setup on your server.
This is a stable release, you can use it in production environments and/or update your existing installations.
https://easyappointments.org/
Release Notes
Added
- Added request method check on each request so that only allowed methods are accepted
- Add Jitsi integration and link generation for appointments made via the public page
- Allow providers to toggle the syncing themselves (#1731)
- Add new meeting link field to appointments for storing online video conference locations
- Create new integration section for the Google Calendar integration (#1690)
- Add settings to not display the Add to Google Calendar button in the booking confirmation page (#1763)
- Add new Google Meet setting and meeting link support for appointments while syncing with Google (#1589)
- Add Select All / None buttons to multi-checkbox fields
- Add prompt for client notifications so that they are not sent every time an appointment changes
- Add notification prompt when creating new appointments from the calendar page
- Add notification prompt when deleting appointments from the calendar page
- Connect RSS updates from the official blog and show them in the about page
- ALTCHA integration added as an alternative CAPTCHA step (#1155)
- Add a legal notice and imprint links to the booking page and the legal settings page (#1407)
- When someone clicks on password reset, implement a link delivery and not just change the password directly
- Login / Backend button on the disabled booking page message screen (#1777)
- Allow customers to save their information in local storage (#1696)
- Implementation of additional GDPR features in Easy!Appointments (#535)
- Allow users to define working plan exceptions for multiple dates (#1706)
- Add CAPTCHA support for all the public forms in order to block abusive requests (#1754)
- Add validation when saving the working plan (#1758)
Changed
- Improved CRUD list entries to show pointer cursor when selected
- Centered and narrowed CRUD list and form content on larger screens for better readability
- Refactored cleanup logic from Console controller into a dedicated Cleanup library
- Make the phone number field of backend users optional (#1709)
- Change the main CRUD layout and navigation structure (list first)
- Replace the availabilities type with the new slot interval field
- Keep the provider option selected in the booking page if possible (#1672)
- Improve setting language by GET parameter (#1620)
- Improved appointment deletion flow: ask notification question first, only show the cancellation reason dialog when the user chooses to notify users
- Restyled secondary action buttons (Cancel, Close) to use the outline secondary variant for a consistent UI
- Simplified all documentation pages for better readability by non-technical users
- Allow users to assign a provider to the service in the services page and update the label (assign the service to)
- Perform various security optimizations in the app
- Custom fields are displayed in appointment details popup (#1830)
- When booking in calendar add a new check that will detect if the selected provider is still available or not
- If the current user has not available services or providers to be displayed in the public booking page, then show an info message instead of the booking page
Fixed
- Release builds now ship only the Google Calendar service instead of every Google API service, keeping the download size small
- Language switching now works for languages with hyphenated codes such as Brazilian Portuguese and Traditional Chinese
- Added missing language code mappings for Brazilian Portuguese and Traditional Chinese
- Working plan exception break inputs now use the correct size and no longer look oversized
- "No breaks" placeholder is now removed when the first break is added to
Tags
README
<h1 align="center">
<br>
<a href="https://easyappointments.org">
<img src="https://raw.githubusercontent.com/alextselegidis/easyappointments/develop/logo.png" alt="Easy!Appointments" width="150">
</a>
<br>
Easy!Appointments
<br>
</h1>
<h4 align="center">
A powerful, self-hosted appointment scheduling platform built for flexibility.
</h4>
<p align="center">
<img alt="License" src="https://img.shields.io/github/license/alextselegidis/easyappointments?style=for-the-badge">
<img alt="Latest Release" src="https://img.shields.io/github/v/release/alextselegidis/easyappointments?style=for-the-badge">
<img alt="Downloads" src="https://img.shields.io/github/downloads/alextselegidis/easyappointments/total?style=for-the-badge">
<a href="https://discord.com/invite/UeeSkaw">
<img alt="Discord" src="https://img.shields.io/badge/chat-on%20discord-7289da?style=for-the-badge&logo=discord&logoColor=white">
</a>
</p>
<p align="center">
<a href="#why-easyappointments">Why Easy!Appointments</a> •
<a href="#features">Features</a> •
<a href="#quick-start">Quick Start</a> •
<a href="#installation">Installation</a> •
<a href="#license">License</a>
</p>
<p align="center">
<strong>Looking for advanced capabilities?</strong><br>
Explore premium features and professional services at
<a href="https://easyappointments.org/premium" target="_blank">easyappointments.org/premium</a>.
</p>
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
- Create a database (or use an existing one)
- Upload the
easyappointmentsfolder to your server - Ensure the
storagedirectory is writable - Rename
config-sample.phptoconfig.php - Update configuration values
- Open the application in your browser and follow the setup wizard
Once completed, the system is ready to use.
📚 Resources
- Website: https://easyappointments.org
- Issues: https://github.com/alextselegidis/easyappointments/issues
- Support Group: https://groups.google.com/forum/#!forum/easy-appointments
- Discord: https://discord.com/invite/UeeSkaw
📜 License
- Code: GPL v3.0
- Content: CC BY 3.0
👤 Author
- Website: https://alextselegidis.com
- GitHub: https://github.com/alextselegidis
- Twitter: https://twitter.com/AlexTselegidis