Easy!Appointments
Simple, self-hosted appointment scheduling for businesses that need booking without the complexity
Best for: Small businesses (salons, clinics, consultants) that need simple appointment booking
Self-hosted appointment scheduling, honestly reviewed. No marketing copy, just what you actually get when you install it.
TL;DR
- What it is: Open-source (GPL-3.0) self-hosted appointment scheduler — think Calendly, but the server is yours, the data is yours, and there’s no per-booking fee [README][website].
- Who it’s for: Small service businesses (salons, clinics, consultants, trainers, educators) that want online booking without paying per seat or per month. Technically-comfortable founders who can set up a PHP+MySQL stack, or who will pay someone once to do it [website].
- Cost savings: Calendly’s Standard plan runs $10–12/mo per seat; Acuity Scheduling starts at $16/mo. Easy!Appointments self-hosted is $0 in software costs — you pay only for the VPS it runs on ($5–10/mo) [website].
- Key strength: Ten years of production use across healthcare, salons, education, restaurants, and event planning — this is not a side project [website]. Free for commercial use under GPL-3.0, with a clean install that slots into an existing server folder without a dedicated environment.
- Key weakness: GPL-3.0, not MIT — if you embed this in a product you sell, you’re required to open-source the whole thing. No native payment processing in the base install. The feature set is narrower than commercial alternatives; SMS reminders and payments require premium add-ons [website].
What is Easy!Appointments
Easy!Appointments is a PHP-based web application that gives clients a booking interface and gives you a back-end calendar for managing appointments, providers, and services. You install it on a web server alongside your existing site — it can share the same MySQL database — and it runs independently of any SaaS platform. The project is maintained by a single developer (Alex Tselegidis) with community contributions, has been active for over ten years, and sits at 4,115 GitHub stars as of this review [merged profile][website].
The pitch is straightforward: instead of paying Calendly $12/mo per staff member or Acuity $27/mo for your business, you deploy a PHP app, point a URL at it, and your customers book directly against your live availability. There’s no platform risk, no per-booking commission, and no vendor who can restructure pricing mid-contract.
The feature set is not Calendly’s feature set. It won’t dazzle you with analytics dashboards, Zoom auto-links, or round-robin assignment logic. What it does is book appointments, send email confirmations, sync with Google Calendar, and stay out of your way [README]. For a solo practitioner or a five-person team, that may be exactly right.
Why People Choose It
The open-source scheduling category is crowded, and the tools compared depend heavily on whether you’re in the WordPress ecosystem or running standalone [2]. Easy!Appointments is standalone — it’s not a WordPress plugin, which matters both as a feature (no WordPress dependency) and a limitation (no one-click Elementor integration).
Versus Calendly and Acuity. The motivation is cost and data ownership. Calendly’s per-seat pricing scales painfully once you have more than two staff. A salon with six stylists is looking at $60–100/mo just for scheduling software. A clinic with ten providers hits $120+/mo before adding any integrations. Easy!Appointments replaces all of that with a one-time setup cost and a $5–10 hosting bill. The website explicitly states “No monthly fees. No commissions on your appointments” [website].
Versus WordPress booking plugins. Tools like Simply Schedule Appointments [1] and Salon Booking System [3] live inside WordPress, which means they inherit WordPress’s benefits (easy UI updates, plugin ecosystem) and liabilities (WordPress maintenance, plugin conflicts, performance overhead). Easy!Appointments runs as a standalone application. If you don’t want WordPress, or you want scheduling on a non-WordPress site, this is a meaningful distinction.
Versus other open-source options. The open-source scheduling space includes Chapter (event management), OSEM (conference management), and various WordPress plugins [2]. Easy!Appointments is the most general-purpose standalone option in this category — it handles one-to-one appointment booking across arbitrary service types, not events with registration lists. Its ten-year track record across healthcare, salons, marketing, and recruitment is a real signal; most open-source scheduling tools come and go in two or three years [website].
On longevity and trust. The project celebrated its ten-year anniversary, which the website treats as a milestone worth commemorating [website]. For infrastructure that your business depends on, a decade-old project with a Discord community and a GitHub issues tracker is meaningfully less risky than a three-year-old tool with twelve contributors.
Features
Based on the README and official website documentation:
Booking and appointment management:
- Multi-provider, multi-service booking — each service has configurable duration and availability [README]
- Working plan rules per provider (available hours, breaks, days off) [README]
- Booking rules to prevent same-day scheduling, enforce buffer time, and cap daily bookings [website]
- Double-booking prevention built into the core [README]
- Customer and appointment management back-end [README]
Notifications and calendar sync:
- Email notifications for booking confirmations, cancellations, and reminders [README][merged profile]
- Google Calendar two-way sync — appointments appear in Google Calendar and Google Calendar blocks feed back into availability [README]
- Translated UI supporting multiple languages [README]
Installation and customization:
- Single-folder install — can live in a subdirectory of your existing site and share its MySQL database [README][website]
- Configuration via a single PHP config file [README]
- Open codebase under GPL-3.0 for custom modifications [README]
- Active community support via Discord and GitHub [website]
What requires premium add-ons or custom development:
- SMS notifications — mentioned on the website as a premium feature [website]
- Payment processing (Stripe, PayPal, etc.) — not in the base install [website]
- Reports and analytics dashboards [website]
- White labeling [website]
- Third-party integrations beyond Google Calendar [website]
The base install is genuinely capable for a one-to-one booking scenario. If you need payment capture at the time of booking, you’re either adding a custom integration or purchasing a premium add-on — this is not optional for many business types.
Pricing: SaaS vs Self-Hosted Math
Easy!Appointments is free software. There is no licensing fee for any use case, including commercial deployment [website][README]. The GPL-3.0 license means you can run it commercially — the restriction is on distribution with source modifications, not on using it to run your business.
Premium services from the project maintainer:
- Installation service: professional setup on your server (price not publicly listed — contact required) [website]
- Upgrade and migration services [website]
- Ongoing support contracts [website]
- Custom development and white labeling [website]
Pricing for these services is not published on the website. Exact figures are not available for this review.
Self-hosted infrastructure cost:
- Shared hosting or $5 VPS (e.g., Hetzner, DigitalOcean) is sufficient for a small-to-medium booking volume
- PHP 8.2+, MySQL, and Apache or Nginx required [README]
- Total monthly cost: $5–15 including the server
Calendly for comparison (representative SaaS):
- Free: 1 event type, unlimited bookings, 1 seat
- Standard: ~$10/mo per seat (billed annually)
- Teams: ~$16/mo per seat
- A five-person team on Calendly Standard: ~$50–80/mo depending on billing cycle
Acuity Scheduling (Squarespace) for comparison:
- Emerging: $16/mo (1 calendar)
- Growing: $27/mo (up to 6 calendars)
- Powerhouse: $49/mo (up to 36 calendars)
Math for a typical service business: A five-provider salon or clinic on Acuity Growing pays $27/mo — $324/year. On Calendly Standard with five seats, $600+/year. On Easy!Appointments self-hosted: $60–120/year in VPS costs, zero in software. Over three years, the difference is $800–1,700 in avoided SaaS costs, which covers a professional deployment and setup fee with room to spare.
The caveat: if you’re on Calendly’s free tier with one event type, the math doesn’t favor migrating. If you’re paying per seat for multiple staff, it does.
Deployment Reality Check
Easy!Appointments does not use Docker by default. The install path is traditional: copy files to a web server, set up a MySQL database, rename a config file, and navigate to the URL to run the web-based installer [README]. This is simpler in some ways than Docker (no container management) and more familiar to anyone who has ever deployed a WordPress site.
What you actually need:
- A web server with Apache or Nginx, PHP 8.2+, and MySQL [README]
- A writable
storage/directory on the server - A domain or subdirectory to point at the install
- An SMTP provider if you want email notifications to go out reliably (the app sends email; you need a working mail server or transactional email service like Mailgun or Postmark)
What the installation looks like in practice:
- Upload files (via FTP, rsync, or git clone)
- Create a MySQL database
- Rename
config-sample.phptoconfig.php, fill in database credentials - Visit the install URL — a web wizard runs the database migration
- Done [README][website]
The website calls it “straightforward” and the README is direct: “That’s it! You can now use Easy!Appointments at your will.” [README] This is accurate for someone who has deployed PHP applications before.
For a non-technical founder: The traditional PHP stack is less forgiving than a Docker Compose one-liner. If your shared hosting provider pre-installs PHP and MySQL (most do), the install is closer to 30–60 minutes. On a fresh VPS without PHP installed, budget 2–4 hours including web server configuration.
Potential friction points:
- No Docker Compose setup in the official repository — community workarounds exist but aren’t official
- Email deliverability requires a properly configured SMTP setup; the default PHP mail function is unreliable for production [website FAQ references email setup]
- Updates require manual file copy and a browser-based database migration step [website]
- Google Calendar sync requires API credentials from the Google Cloud Console — a moderately technical step that can trip up non-developers
The 1.6 Beta is available for download, suggesting active development continues [website]. The stable release is 1.5.2.
Pros and Cons
Pros
- Free for commercial use. GPL-3.0 allows you to run this in your business at zero software cost. Ten years of production deployments in healthcare, education, and hospitality validate that this works in real environments [website][README].
- No SaaS dependency. Your booking data lives on your server. No vendor can raise prices, change features, or discontinue the product and strand you.
- Slots into existing infrastructure. The single-folder install and shared-database support mean you don’t need a dedicated server environment — it runs alongside an existing site [README].
- Google Calendar sync. Two-way sync handles availability management for providers who already live in Google Calendar [README].
- Decade-long track record. Most open-source scheduling tools don’t survive five years. This one hit ten and is still actively maintained [website].
- Multi-provider and multi-service. Supports realistic team scheduling scenarios — multiple staff members, multiple service types, individual availability rules [README].
- Multilingual UI. Translated interface for international deployments [README].
Cons
- GPL-3.0, not MIT or Apache. If you build a SaaS product on top of Easy!Appointments and distribute it, GPL requires you to open-source your modifications. For embedding in a product you sell, this is a real constraint. Verify with legal counsel before building a commercial product on top of it.
- No native payment processing. Accepting a deposit or full payment at the time of booking requires custom development or a premium add-on. This is table stakes for salons, clinics, and consultants — it’s a gap [website].
- SMS notifications are premium. Email works in the base install; SMS requires a paid add-on [website].
- Traditional PHP stack, not Docker. Easier for developers familiar with shared hosting; harder for anyone who has only ever used containerized deployments.
- Single-developer maintenance. The project is primarily maintained by Alex Tselegidis, with community contributions. This introduces bus-factor risk that a multi-company open-source project doesn’t have.
- Thinner feature set than commercial tools. Calendly and Acuity have years of product iteration on booking UX, round-robin assignment, analytics, and integration ecosystems. Easy!Appointments doesn’t try to match them feature-for-feature — that’s partially a virtue (simpler, faster) and partially a real limitation.
- No published SaaS pricing for premium services. If you want the managed hosting or professional setup, you need to contact for a quote [website].
Who Should Use This / Who Shouldn’t
Use Easy!Appointments if:
- You run a service business with 1–10 staff members and you’re paying $20–50+/mo for Calendly or Acuity.
- You’re comfortable with (or can hire someone for) a PHP/MySQL deployment on shared hosting or a VPS.
- You don’t need payment capture at booking time, or you’re willing to build a custom integration for it.
- You want booking software you can hand to a developer to extend, under a license that covers commercial use.
- Data ownership matters — patient records, client lists, appointment history — and you don’t want that on a third-party SaaS.
Skip it (stay on Calendly/Acuity) if:
- You need payment collection at the time of booking without custom development.
- You need SMS reminders out of the box.
- You want Zoom link auto-generation, analytics dashboards, or deep CRM integrations without writing code.
- You’re a solo operator on a free Calendly tier — there’s no cost problem to solve.
Skip it (look at WordPress-native options like Simply Schedule Appointments) if:
- Your site already runs on WordPress and you want booking to live inside the same admin interface [1].
- You need tight integration with WooCommerce or other WordPress plugins.
- The thought of a separate server-side PHP install is more complexity than you want to manage.
Skip it (consider a commercial option) if:
- You need multi-location support at enterprise scale.
- Your compliance requirements (HIPAA, GDPR with a DPA) require a vendor with formal agreements — self-hosting puts the compliance burden on you.
Alternatives Worth Considering
- Cal.com — newer open-source scheduling, MIT-licensed, Docker-first, closer to Calendly’s feature set including Stripe payments. More actively developed in the AI-era. The more modern self-hosted choice if Docker is your preferred deployment model.
- Calendly — the incumbent. Easiest onboarding, biggest integration library, per-seat pricing that compounds at team scale. Closed source.
- Acuity Scheduling (Squarespace) — stronger payment processing and intake form features, per-calendar pricing, closed source.
- Simply Schedule Appointments — strong WordPress-native option with a genuinely functional free tier [1]. Only relevant if you’re running WordPress.
- Salon Booking System — another WordPress plugin with SMS, coupon codes, and payment gateways baked in [3]. More vertical-specific than Easy!Appointments but requires WordPress.
- TeleCRM / Booksy / Fresha — vertical-specific SaaS for salons and wellness. Not self-hostable, but built for the specific workflows of those industries.
For a non-technical founder who wants full data control and is not in the WordPress ecosystem, the realistic shortlist is Easy!Appointments vs Cal.com. Easy!Appointments wins on maturity and traditional-hosting compatibility. Cal.com wins on features, Docker support, and MIT licensing.
Bottom Line
Easy!Appointments is exactly what it says it is: a stable, ten-year-old, GPL-licensed appointment scheduler you install on your own server and run for the cost of hosting. It won’t compete feature-for-feature with Calendly or Acuity, and it doesn’t try to. What it offers is the core booking workflow — providers, services, availability rules, email notifications, Google Calendar sync — without a monthly bill and without a third party holding your data. The GPL-3.0 license is a real constraint if you plan to build a product on top of it, but for running your own business it’s a non-issue. If you’re paying $27–50/mo for scheduling software and your needs are straightforward, the math for self-hosting is obvious. The main blocker for most non-technical founders is the traditional PHP deployment model — if that step requires hiring someone, factor it in as a one-time cost against the recurring SaaS bill, and the numbers still favor the switch.
If the deployment is the blocker, that’s precisely what unsubbed.co’s parent studio upready.dev handles for clients. One-time setup, no monthly software fee, you own the infrastructure.
Sources
- Shreya, BlogVault — “Simply Schedule Appointments Review: Is It The Right Booking Plugin For You?” (October 6, 2025). https://blogvault.net/simply-schedule-appointments-review/
- Medevel — “17 Open-source Free Self-hosted Event and Appointment Management Solutions”. https://medevel.com/17-event-management/
- DJ Billings, WPMayor — “Run an Appointment Website Using a Salon Booking Plugin”. https://wpmayor.com/run-an-appointment-website-using-a-salon-booking-plugin/
Primary sources:
- GitHub repository and README: https://github.com/alextselegidis/easyappointments (4,115 stars, GPL-3.0 license)
- Official website: https://easyappointments.org
- Project FAQ and feature documentation: https://easyappointments.org/#faq
Features
Communication & Notifications
- Email Notifications
Related Booking & Scheduling Tools
View all 44 →Cal.com
41KCal.com is the open-source scheduling platform for individuals and teams — a fully customizable, self-hostable alternative to Calendly with round-robin, routing forms, and built-in video.
Postiz
27KStreamline your social media with Postiz. Schedule posts, analyze performance, and manage all accounts in one place.
QloApps
13KFree and open-source hotel reservation system and booking engine
Buildbot
5.4KBuildbot is a self-hosted booking & scheduling replacement for Azure DevOps.
Inngest
5.1KInngest gives you simplify backend processes on your own infrastructure.
Rallly
5KFor event management, Rallly is a self-hosted solution that provides user-friendly, tool for coordinating events and meetings without the hassle of...