Skip to main content

Fully Managed EasyAppointments
as a Service

Deploy EasyAppointments as a fully managed service starting at €9/mo. Get automated backups, SSL, updates, support and monitoring included.

Easy!Appointments is a self-hosted appointment scheduler — multi-provider calendars, public booking pages, Google Calendar two-way sync, and Jitsi video links — combining the convenience of Calendly and Acuity with the security and control of self-hosted infrastructure.

Free 7-day trial  99.9% Uptime SLA  No credit card  Cancel anytime

Free 7-day trial  99.9% Uptime SLA
No credit card  Cancel anytime

EasyAppointments

EasyAppointments

STARTING AT

€9/month
Automated Backups
Monitoring
Automated Updates
Auto SSL

USAGE

Unlimited
Human Support
Custom Domains
Terminal Access
File Manager Access
Deploy in your region 21 locations worldwide
GermanyFinlandNetherlandsUKSwedenUnited StatesCanadaSingaporeJapanAustraliaBrazilSouth Africa+9 more →
EasyAppointments Preview Image

ABOUT THE SOFTWARE

What is EasyAppointments

Easy!Appointments is an open-source self-hosted appointment scheduler — files, calendars, multi-provider booking, customer records, and a public booking page — combining the convenience of Calendly or Acuity with full control of where your data lives.

The project is licensed under GPL v3.0 and maintained by Alex Tselegidis out of Greece since 2014, with a roughly 4,200-star, 1,500-fork repository on GitHub and an active Discord and Google Groups support community.

The application runs on a standard PHP and MySQL stack and ships with a WordPress plugin, Joomla extension, and Drupal module — so the booking page can embed cleanly into whatever website your business already runs. It is used in production by salons, healthcare practices, recruitment agencies, tutoring centers, driving schools, photography studios, and accommodation operators across roughly 50 translated language packs.

FEATURES

What EasyAppointments does

Multi-provider scheduling, public booking page, two-way Google Calendar sync, SMTP notifications, Jitsi video integration, REST API, webhooks, and a customer-records backend — all in a single self-contained PHP application.

Multi-provider working plans

Each provider has their own working hours, breaks, services, and Google Calendar — with optional Any-Provider round-robin for teams where any team member can take the call.

Public booking page

White-label, mobile-friendly, embeddable via iframe or the official WordPress / Joomla / Drupal plugins. Customers book without creating an account.

Customer records and history

Per-customer booking history, contact details, custom fields, and provider-customer association — exportable as CSV at any time.

REST API and webhooks

Full REST API for appointments, customers, services, and providers. Webhooks fire on appointment events for SMS reminders, CRM sync, or ATS integration.

Two-way Google Calendar sync

Bookings flow into Google Calendar; provider time-off in Google Calendar blocks the booking page. Driven by the cron jobs we wire by default.

Jitsi video meetings (1.6)

Every online appointment gets a unique Jitsi meeting link generated and included in the confirmation email and Google Calendar event — no Zoom licence needed.

Multi-language UI

Roughly 50 translated language packs maintained by the community. The booking page can run in your customer's language while the backend stays in yours.

Working-plan exceptions (1.6)

Per-date and per-service overrides for school holidays, public holidays, one-off closures, and special-hour days — without rewriting the weekly working plan.

WHAT'S ALWAYS INCLUDED

Every app. Fully managed.
Nothing extra to pay for.

Every app you deploy includes the full managed service — security, backups, updates, and support from day one.

Automatic updates and patches

Apps run the latest stable version. Security patches applied silently, with rollback if needed.

Daily off-site backups

Multiple daily backups in redundant off-site locations. One-click restore if anything goes wrong.

24/7 uptime monitoring

Continuous monitoring with instant alerting. We respond before you notice.

SSL, firewall, DDoS protection

Auto-renewing SSL, hardened firewall rules, DDoS mitigation on every deployment.

Performance and scaling

We monitor resource usage continuously. When your app needs more headroom, we flag it and upgrade with your explicit approval.

Dedicated engineering support

Real engineers on chat. DNS, SMTP & migration help. All included in €9.

WHY MANAGED

Why teams pick managed EasyAppointments

Calendly's Teams plan now lands a 5-provider business at $100/month and a 10-provider business at $200/month — and Easy!Appointments 1.6 narrows the feature gap to near-zero. The only question left is who runs the stack.

The math has shifted in 2025–2026. Calendly's tiered Teams pricing still charges $20/seat/month for the first 30 seats and only discounts above that, putting most multi-provider service businesses on a four-figure annual bill. Acuity Premium — the only tier with the patient-confidentiality features regulated practices need — runs $61/month per practitioner. Meanwhile Easy!Appointments 1.6 has added Jitsi video meetings, multi-language UI, two-way CalDAV sync, per-service working-plan exceptions, and the ALTCHA spam protection that the upstream project needed to reach booking-page parity with the SaaS alternatives.

Running it yourself is real work. The Easy!Appointments support history surfaces the recurring failure modes — SMTP delivery silently dropping confirmation emails, the PHP server timezone offsetting every Google Calendar entry by an hour, the default working-plan breaks blocking 3-hour services, the missing cron job that means Google Calendar changes don't reach the booking page until someone opens the backend. Each of those is fixable in an afternoon if you've read the GitHub issues and the official FAQ. Each of them is six hours of customer-facing pain if you haven't.

REVIEWS

Hear from customers ​like you​​​​​​​

Successful businesses and professionals around the world rely on DANIAN every day

USE CASES

Three teams who run EasyAppointments on DANIAN

These are representative team types we set up most often. Each starts with the same flat €9 plan.

6-PROVIDER DERMATOLOGY CLINIC

Replacing Acuity Premium after the patient-data tier hit $61 per practitioner

Germany region, pre-booking intake form capturing medical history before the slot is confirmed. 30-minute consultation services, 60-minute procedure services, working plan per practitioner with mid-morning and mid-afternoon admin blocks. SMS reminders via a Twilio webhook firing on appointment-created.

12-STYLIST INDEPENDENT SALON GROUP

Moving off per-seat booking SaaS at the 10th-stylist hire

Brazil region, dual-language UI (Portuguese front-of-house, English backend). Each stylist as a separate provider with their own Google Calendar. Public booking page embedded into the existing Squarespace site via iframe. Default working-plan breaks removed so 3-hour colour services book without availability gaps.

3-INSTRUCTOR DRIVING SCHOOL

Replacing a $60/month team SaaS that couldn't model lesson types vs vehicles

UK region, separate services per pickup location (in-car North, in-car South, online theory), instructor-vehicle pairing through provider-service assignment, weekly recurring slots for regulars learning toward their test. Working-plan exceptions wired for UK bank holidays.

COMPARISON

Four ways to run EasyAppointments

The choice between Calendly, a self-hosted VPS, a home server, and DANIAN comes down to where the monthly bill sits and where your operational hours go. The math, at 1, 5, and 10 providers:

 PATH1 USER5 USERS 10 USERSOPERATIONAL TIME
Calendly Teams 
Proprietary SaaS, monthly billing
$20/mo$100/mo$200/moZero — but no data export beyond a CSV, and the bill grows linearly with every new provider.
Self-host on a VPS 
$24/mo production-class VPS + your time
~$44/mo + 1–2h/mo~$44/mo + 2–3h/mo~$64/mo + 3–5h/moYou patch PHP, tune MySQL, manage SMTP, fix the cron when it dies, restore from backup when it doesn't.
Home server 
Synology DS923+ or similar
€210–667/mo effective€210–667/mo effective€210–667/mo effectiveSame ops as VPS, plus hardware amortisation, electricity at €0.30/kWh, and a business-grade uplink with static IP.
DANIAN Managed EasyAppointments€9/mo€9/mo€9/moZero. We handle the stack; you handle the bookings. The price doesn't move with your provider count.

The shape of the comparison flips around the 5-provider mark. Below that, the Calendly Teams bill is competitive with running your own VPS once you cost in 2 hours of monthly ops. Above that, every new provider is +$20/month on the SaaS path, +0 on the DANIAN path. The home-server path makes sense only when you genuinely have spare hardware, spare electricity capacity, a business uplink with static IP, and the willingness to be on call for it yourself — which excludes most service businesses that need the booking page up reliably during opening hours.

The numbers in the table are the visible monthly costs. The harder number to put a price on is the half-day spent reading GitHub issue #22 about the PHP timezone offset, or the Friday afternoon spent fixing a silently-dropped SMTP relay, or the migration from Easy!Appointments 1.5.2 to 1.6 once the upstream project ships it stable. Those are the hours we cover. The €9 is what they cost when you pay someone to do them in bulk across 150+ apps instead of one at a time.

BY INDUSTRY

EasyAppointments for specific industries

Five industries where Easy!Appointments sits ahead of per-seat booking SaaS — either on cost, on configuration depth, or on data-handling that the closed platforms surface only on their top tier.

Chiropractors, physiotherapists, mental-health practitioners, and dental practices carry patient-confidentiality obligations that the booking trail has to respect — and Acuity puts those features on the Premium tier at $61 per practitioner per month. The public booking page must collect only the fields you mark required, the appointment history needs deletion controls, and the data should sit in a region you can name.

DANIAN's default configuration for healthcare provisions Easy!Appointments with 30-minute consultation slots and 60-minute procedure slots, off-site encrypted backups daily, and the application data in the region you pick at signup with no cross-border copying. We wire the cron job that drives two-way Google Calendar sync at 5-minute intervals — so a practitioner rescheduling on their phone calendar shows up on the booking page before the next patient hits it. A 6-provider clinic moving off Acuity Premium typically lands at €9/month flat, saving roughly $352 per month against the SaaS bill, with the working plan, intake forms, and SMS reminder webhook already configured on day one.
Salons with five or more stylists hit a per-seat ceiling on the booking SaaS market — Calendly Teams at $20/seat lands a 10-stylist salon at $200/month, and customer-record retention rules vary by region so the "data lives in our region" question gets asked by the more careful owners. Salons also have the long-service problem: a balayage or full colour runs 3+ hours, and the default Easy!Appointments working plan has built-in breaks that block exactly that window.

DANIAN configures each stylist as a separate provider with their own Google Calendar sync, their own working plan, and their own service list — colorist offering balayage, root touch-ups, gloss; barber offering fade, beard trim, hot towel. We enable the multi-language UI for English/Spanish or English/French salons, embed the booking page into your existing brand site via iframe with zero DANIAN branding on the customer-facing flow, and tune the working plan to remove the default mid-day breaks that block 3-hour services. A 12-stylist salon group typically saves $231 per month against a per-seat SaaS, and the bill stays flat at €9/month no matter how many chairs fill.
Tutoring centers booking minors are subject to data-protection rules that vary by region — collected fields, parental consent capture, retention windows, and "delete on request" workflows all need to be controllable, not buried behind a SaaS support ticket. Tutoring also needs continuity: a student booking Tuesday 4pm should keep landing with the same tutor for 12 weeks, which means the Any-Provider round-robin that SaaS schedulers default to is wrong for this segment.

DANIAN configures Easy!Appointments to mark which booking-form fields are required versus optional, capture a parent or guardian email separately, and define weekly recurring slot patterns for regulars. We remove the Any-Provider option from the booking page by default for tutoring instances, connect the Jitsi video integration from Easy!Appointments 1.6 so online tutoring sessions get an auto-generated meeting link, and wire working-plan exceptions for school holidays at instance-setup time. An 8-tutor center moving off a $20/seat SaaS saves roughly $151/month and retains the recurring-booking continuity that the SaaS schedulers cannot model.
Recruitment agencies running screening calls deal with candidate data that has to be deletable on request, traceable through a logged activity record, and synchronisable with whatever ATS the client agency uses. Per-seat scheduling SaaS handles the round-robin but not the candidate-data lifecycle — agencies end up either over-retaining (legal risk) or manually pruning records (operational drag).

DANIAN configures the appointment-status feature (Easy!Appointments #244, added in 1.6) to tag every screening as Booked / Held / Cancelled / Hired / Withdrew, making the recruitment funnel queryable later. We wire the webhooks feature (#581) to fire on every appointment change — pushing data into your ATS without polling. The candidate-data purge cron deletes appointment records older than your retention window (typical: 12 months for unsuccessful candidates, longer for placements) and exports the data nightly to encrypted off-site backup in your chosen region. A 6-recruiter agency moving off Calendly Teams saves $111/month and gains the deletion-on-schedule discipline that the SaaS cannot enforce automatically.
Driving schools, photography studios, mobile-service businesses, and franchise operators run into a problem most booking SaaS handles badly: per-location availability that depends on which instructor or vehicle is at which location that day. A driving school with three branches and ten instructors cannot list a single "in-car lesson" service — the location is part of the offering, and so is the instructor-vehicle pairing.

Easy!Appointments models this through services scoped to providers, so a driving school can list "In-car lesson, North branch" and "In-car lesson, South branch" as separate services tied to separate instructors. The 1.6 release added per-service working-plan exceptions (#1706), so a holiday closure at one branch doesn't suppress availability at the others. DANIAN sets up the per-location instance configuration, the working-plan exceptions for your regional school holidays, and the booking-page URL parameters so each location's website can deep-link to its own filtered booking flow. A 3-location, 10-instructor school moving off a per-seat SaaS at $20/seat saves $191/month and gains the per-location modeling the SaaS schedulers can't reproduce without paying for the enterprise tier.

FAQ

Frequently asked questions

Everything teams ask before signing up — answered straight, without sales speak.

Three groups: technical setup, migration, and how DANIAN works as a service.

01

Technical and configuration

The default Easy!Appointments install uses PHP's native mail() function, which most modern hosts either disable, rate-limit, or route through addresses that get flagged as spam. The fix is to configure SMTP in application/config/email.php with a transactional sender — set $config['protocol'] to 'smtp', supply host, port, crypto, and credentials.

We provision every Easy!Appointments instance with an SMTP relay account pre-wired and verified, so booking confirmations and reminders deliver to the customer's inbox from day one rather than after a week of troubleshooting.
This is the longest-running bug pattern in the Easy!Appointments support history — issues #22, #171, #427, and #480 in the upstream tracker all trace to the same root cause. The application stamps appointments using the PHP server's date.timezone setting in php.ini. If that's wrong, or unset (defaults to UTC on most shared hosts), Google Calendar receives the appointment with a time that's off by 1–2 hours, and the offset shifts during DST transitions.

We set the PHP date.timezone, MySQL time_zone, and the OS-level timezone all to the region you pick at signup, and we verify the values match on every deploy.
Easy!Appointments doesn't ship native SMS, but the webhooks feature added in 1.5 (#581) fires on every appointment-created, -updated, or -cancelled event with a JSON payload. That webhook can target a Twilio function, a serverless endpoint, or an n8n workflow that handles the SMS send.

We help wire the Twilio side during onboarding — most customers land at $0.0079 per SMS in the US, around €0.06 in EU markets. For salons and clinics that need same-day SMS reminders to cut no-shows, this is what we recommend.
Yes. Easy!Appointments uses FullCalendar for the booking-page calendar view, which adapts to mobile breakpoints. The 1.5 release fixed the mobile-tablet reservation-display bug (#179) that was the last sticking point.

We test every fresh deployment on iPhone Safari, Chrome on Pixel, and a desktop browser to confirm the booking flow renders correctly across the three viewport sizes your customers actually use.

Three official ways:
iframe embed — paste the booking-page URL into a Squarespace, Webflow, or Notion code block, takes 30 seconds.
The Easy!Appointments WordPress plugin — official, in the WP plugin repo, updates synced with core releases.
The Joomla extension or Drupal module — both maintained by the upstream project.

We help pick the embedding approach during onboarding based on whether your existing site builder allows iframe (most do) or whether the CMS plugin gives you a tighter visual fit (sometimes worth the extra setup).

Easy!Appointments 1.6 added ALTCHA integration (#1155) — an open-source, privacy-respecting alternative CAPTCHA that runs a proof-of-work challenge in the browser without third-party trackers. We enable ALTCHA on every public booking page by default.

It blocks the form-spam pattern that became common in 2024–2025 (automated bots filling slots to clog your calendar) without sending visitor data to Google reCAPTCHA or hCaptcha.

02

Migration and onboarding

We can activate your app on your own custom domain/subdomain. Examples: mydomain.com, anyword.mydomain.com.
Or, on our randomized free subdomain. Example: 963.apps.danian.cloud
If you wish to use a custom domain/subdomain, select that option when ordering your app (or notify us later). We will send you the required DNS records and if needed, our tech team will modify them for you.
21 datacenter locations across six continents. You choose the region at provisioning. Application data sits in the region you choose; pick whichever is closest to your users or matches your data-residency preference.
Yes. Request a region migration from the dashboard and we run the move in the background. The system emails you when the migration completes; total transfer time depends on data volume but typical instances finish in a few hours. There is no extra charge for a region change.
Yes. Full data export is available at any time, in a portable format you can bring to any infrastructure.
Easy!Appointments supports customer import via CSV through the backend interface, and the REST API accepts bulk appointment data. Historical appointments are usually best left in the old system as a read-only archive; new bookings start clean.

03

Billing, support, and platform

€9 covers everything we do for that app: hardware in the region you choose, daily off-site backups with one-click restore, automatic security patches and version upgrades, 24/7 monitoring, SSL and firewall, and engineering support on Email/LiveChat. There are no setup fees or hidden line items. For more info see our Pricing page.
If you decide to continue, we charge €9/app/month from day 8. If you don't, the trial ends and you can export your data. No card is required for the trial, and we never auto-charge you without explicit consent.
No. The €9/month is flat regardless of how many users log into your app. Add 5 users or 50; the price doesn't change.
24/7 Live chat and email support, both staffed by engineers who run the systems. We handle DNS configuration, SMTP setup, app integrations, performance tuning, troubleshooting, and migration help. Response time is typically under an hour. There is no tier system — every customer gets the same support.
Yes. Cancel from the dashboard. We don't charge a cancellation fee, we don't lock data, and we will export your data to you on request before deletion. data to you on request before deletion.
Every customer instance is backed up daily to a separate region from the primary. We test restores. You can request a restore at any backup point within the retention window — usually 7 days for daily backups.
Your application data sits in the region you choose at provisioning — 21 datacenter locations across six continents. Account-level data (billing, account email, support ticket history) is processed centrally. Application data region is picked by you, per app.
99.9% uptime SLA on every app, every tenant. Service credits are documented at danian.co/service-level-agreement. The status page is located at status.danian.co.
When your tenant approaches the resource ceiling — the base tier holds 1 vCPU/RAM, 30 GB storage — we notify you. Resource upgrades happen with your explicit consent; we will not upgrade your tenant or charge you without it.
We wait. We don't suspend the app or delete your data on the first failed charge. We email you, you fix the card on file, and we continue.
Invoices can be downloaded from the billing dashboard in PDF the day each charge succeeds. EU VAT is added where applicable and the VAT-reverse-charge regime applies for VAT-registered businesses with a valid number.
150+ open-source apps across automation, team chat, file sync, analytics, AI, password management, email marketing, dev tools, project management, smart home, CMS, and federated social. See the full catalog →
Yes. Every instance comes with a web-based terminal and a file manager in your DANIAN management dashboard. Useful for managing your data and customizations.
Resources scale with your usage. If your app needs more vCPU, RAM, or storage, we add it — and we ask first before any change to your plan. €9 is the floor; resource-heavy workloads may price higher, but you'll always know in advance.
Yes. We have both a Partner program and an Affiliate program available. Anybody can sign up.
No contract. No minimum commitment. Cancel anytime from the dashboard with one click. The 7-day free trial requires no credit card. After the trial converts to paid, you can still cancel at any month without notice or penalty.

DEPLOY IN YOUR REGION

21 datacenter locations on six continents

Pick the region closest to your users.

United States, Germany, Finland, Singapore, Australia, Brazil, Canada, Netherlands, UK, Spain, Italy, France, Sweden, Malaysia, India, Japan, Mexico, Poland, South Korea, Chile, South Africa and more coming soon

Global Reach Map

Try managed EasyAppointments for 7 days

No card. Cancel from the dashboard.