macrostack

Layer 5 · self-hosting reality check

What it actually takes to self-host Easy!Appointments

The docs say Not stated by the vendor. The install guide is written for ordinary PHP hosting (Apache 2.4+, PHP 8.2+, MySQL 5.7+, files uploaded by FTP), so a basic shared-hosting plan is the smallest documented footprint. In practice you want 1 GB on a VPS covers PHP and MySQL for one business's booking traffic. Here is the honest version — real requirements, real monthly cost, what you will be maintaining, and the one thing that catches people out.

Usually reached from Calendly alternatives, where Easy!Appointments is one of the picks.

Wondering whether you need to at all? Is Calendly free? — what the free tier actually allows, and where the wall is.

RAM — documented minimumNot stated by the vendor. The install guide is written for ordinary PHP hosting (Apache 2.4+, PHP 8.2+, MySQL 5.7+, files uploaded by FTP), so a basic shared-hosting plan is the smallest documented footprint
RAM — what it really needs1 GB on a VPS covers PHP and MySQL for one business's booking traffic
CPU1 vCPU
DiskA few GB at most: the app, a MySQL database and logs. Schedule the cleanup command so expired sessions, old logs and cache files don't pile up.
Monthly cost$0 extra on PHP hosting you already pay for, or $5–10/mo on a 1 GB VPS
Setup timeAn hour on shared hosting, plus an hour for Google Calendar sync
How you install itUpload the release to Apache or Nginx with PHP 8.2+ and MySQL, edit config.php and run the browser wizard; or use the official alextselegidis/easyappointments image with MySQL 8.0 from the easyappointments-docker repo
Ongoing maintenanceSet two cron jobs and leave them: console sync and console cleanup. Add console backup for the database. Upgrading means replacing files and running the migrate command. Read the release notes first, because settings have moved between config files in recent releases.
Where it stops scalingFine for one business with a handful of providers on one small server. It's one PHP app on one MySQL database, so growth means a bigger box, not a cluster.

The thing that catches people out

Calendar sync isn't live. Easy!Appointments syncs when a booking changes or someone clicks sync in the back end. The events you add straight into Google or CalDAV only come across the next time a sync runs, and the docs leave it to you to put the sync command on a cron job (they suggest hourly). Skip the cron and a customer can book a slot you already filled from your phone. Put php index.php console sync on a short cron schedule on day one.

When not to self-host Easy!Appointments

You already run Nextcloud, where Appointments for Nextcloud adds booking pages without a second app, or you just want a personal meeting link. Easy!Appointments is built for a business taking bookings for services, providers and a front desk.

Every guide here carries this section. A site that only ever tells you to self-host is selling something — the useful answer is sometimes no.

Other Layer 5 self-hosting guides

Common questions

How much RAM does Easy!Appointments actually need?
1 GB on a VPS covers PHP and MySQL for one business's booking traffic in practice. The documented minimum is Not stated by the vendor. The install guide is written for ordinary PHP hosting (Apache 2.4+, PHP 8.2+, MySQL 5.7+, files uploaded by FTP), so a basic shared-hosting plan is the smallest documented footprint, which is the figure at which the process starts rather than the figure at which it works under real use. 1 vCPU alongside it.
What does self-hosting Easy!Appointments cost per month?
$0 extra on PHP hosting you already pay for, or $5–10/mo on a 1 GB VPS This is commodity VPS pricing and excludes your time, which is the larger cost for most people — budget for set two cron jobs and leave them: console sync and console cleanup. Add console backup for the database. Upgrading means replacing files and running the migrate command. Read the release notes first, because settings have moved between config files in recent releases.
How long does it take to set up Easy!Appointments?
An hour on shared hosting, plus an hour for Google Calendar sync, via Upload the release to Apache or Nginx with PHP 8.2+ and MySQL, edit config.php and run the browser wizard; or use the official alextselegidis/easyappointments image with MySQL 8.0 from the easyappointments-docker repo.
When should I NOT self-host Easy!Appointments?
You already run Nextcloud, where Appointments for Nextcloud adds booking pages without a second app, or you just want a personal meeting link. Easy!Appointments is built for a business taking bookings for services, providers and a front desk.
What is the most common mistake when self-hosting Easy!Appointments?
Calendar sync isn't live. Easy!Appointments syncs when a booking changes or someone clicks sync in the back end. The events you add straight into Google or CalDAV only come across the next time a sync runs, and the docs leave it to you to put the sync command on a cron job (they suggest hourly). Skip the cron and a customer can book a slot you already filled from your phone. Put php index.php console sync on a short cron schedule on day one.
The Macrostack brief

New swaps, worth your inbox.

A short, occasional email when we add a high-intent alternative or ship a new head-to-head. No spam, no selling your address — unsubscribe in one click.