Overview
Discover what makes Easy!Appointments powerful
Easy!Appointments is a fully self‑hosted, open‑source appointment scheduling platform written in PHP. From a developer’s perspective it functions as a modular web service that exposes CRUD operations for customers, services, providers, and booking slots while handling complex business rules such as working hours, buffer times, and conflict detection. The core engine validates requests on the server side, persists data in a relational database, and renders a responsive UI that can be embedded into existing sites via iframes or API calls. The application is built to run on any LAMP/LEMP stack, making it straightforward to integrate into legacy environments or modern cloud infrastructures.
Language & Framework
Templating
Database
Front‑end
Overview
Easy!Appointments is a fully self‑hosted, open‑source appointment scheduling platform written in PHP. From a developer’s perspective it functions as a modular web service that exposes CRUD operations for customers, services, providers, and booking slots while handling complex business rules such as working hours, buffer times, and conflict detection. The core engine validates requests on the server side, persists data in a relational database, and renders a responsive UI that can be embedded into existing sites via iframes or API calls. The application is built to run on any LAMP/LEMP stack, making it straightforward to integrate into legacy environments or modern cloud infrastructures.
Technical Stack
- Language & Framework: PHP 8.2+ using a lightweight MVC pattern without a heavyweight framework, allowing developers to dive into the codebase quickly.
- Templating: Twig or plain PHP templates for server‑side rendering; all assets are bundled with Webpack and compiled through npm scripts.
- Database: MySQL/MariaDB (or any compatible SQL engine) accessed via PDO; schema is versioned and can be migrated with Composer‑managed scripts.
- Front‑end: Vanilla JavaScript, jQuery for UI interactions, and Bootstrap 5 for responsive design. The client side communicates with the server via JSON‑based REST endpoints.
- Dependencies: Composer handles PHP libraries (e.g., PHPMailer for email, Guzzle for external API calls), while npm manages front‑end tooling.
Core Capabilities
- Scheduling Engine: Calculates availability by intersecting provider calendars, service durations, and business rules. Supports recurring appointments and bulk cancellations.
- Google Calendar Sync: OAuth‑2.0 integration that pushes bookings to Google Calendars and pulls external events, ensuring real‑time consistency.
- Notification System: Configurable email templates sent via PHPMailer; placeholders for customer, provider, and appointment data.
- API Layer: REST endpoints (
/api/v1/...) expose CRUD operations, authentication via API keys, and webhook hooks for external systems. - Extensibility: A plugin architecture allows developers to register new services, payment gateways, or custom validation rules. Hooks are available at key lifecycle events (e.g., before/after booking).
Deployment & Infrastructure
- Self‑Hosting: Deployable on any web server (Apache, Nginx) with PHP 8.2+ and MySQL. The
storagedirectory must be writable; otherwise, the app falls back to file‑based caching. - Containerization: Official Docker images are available on Docker Hub; the
docker-compose.ymltemplate includes a MySQL container and optional Redis for caching. - Scalability: Stateless PHP processes can be scaled horizontally behind a load balancer. Database replication or sharding is supported through standard MySQL features.
- Backup & Recovery: Built‑in export/import utilities allow full database dumps, and the API can be used to programmatically archive appointments.
Integration & Extensibility
- Webhooks: Register URLs to receive POST notifications on booking creation, update, or cancellation.
- Third‑Party APIs: The plugin system can pull data from external CRMs or push to marketing automation tools. Sample plugins for Stripe, PayPal, and Twilio SMS are maintained in the community repo.
- Custom UI: Developers can override templates or replace them entirely with React/Vue components, as the backend exposes a clean JSON API.
- Internationalization: Locale files are stored in
locales/and can be extended with new language packs.
Developer Experience
- Documentation: Comprehensive README, inline PHPDoc comments, and a developer guide on the website. API documentation is auto‑generated via Swagger/OpenAPI annotations.
- Community: Active Discord channel, GitHub issues, and pull‑request workflow encourage collaboration. The project follows semantic versioning and maintains a changelog.
- Testing: PHPUnit tests cover core business logic; CI pipelines run on GitHub Actions, ensuring regressions are caught early.
Use Cases
- Healthcare Clinics: Schedule patient appointments with provider availability, integrate EMR systems via APIs.
- Educational Institutions: Book counseling or tutoring sessions, sync with Google Calendar for faculty schedules.
- Service Businesses (salons, repair shops): Manage multiple staff, services, and booking rules; extend with SMS reminders.
- Event Planning: Coordinate venue bookings, staff shifts, and client meetings within a single interface.
Advantages
- Zero Licensing Costs: MIT‑style license allows commercial use without fees.
- Full Control: Self‑hosted nature removes reliance on third‑party SaaS; data sovereignty is guaranteed.
- Performance: Lightweight PHP core with minimal dependencies leads to fast response times and low memory footprint.
- Customizability: The plugin system and open API make it trivial to add payment gateways, analytics dashboards, or custom validation logic.
- Community & Support: Over 3,000 GitHub stars and an active Discord community provide rapid assistance and shared extensions.
Easy!Appointments offers developers a robust, extensible scheduling engine that can be tailored to any industry while remaining lightweight enough for quick deployment on existing infrastructure.
Open SourceReady to get started?
Join the community and start self-hosting Easy!Appointments today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
LimeSurvey
Open‑source survey platform for global, GDPR‑compliant data collection
Open WebUI
Self-hosted AI interface, offline by default
Precis
AI‑powered RSS reader with instant notifications
Tiki
All-in-one no-code web framework for wikis, CMS, and groupware
Gollum
Git‑based Wiki for easy, versioned documentation
Simple NixOS Mailserver
Self-hosted apis-services
