OpenSourcePicks

Open source alternatives to popular software, with live GitHub data

GitHub stats refreshed every day

Easy!Appointments

Self-hosted appointment booking for businesses with services, staff and customers

Open source alternative to

Visit Easy!AppointmentsGitHubDocumentation

Main features

  • Booking page with service, provider, date and time steps
  • Optional "any provider" choice for customers
  • Services and providers with per-provider working plans
  • Appointment and customer management
  • Two-way Google Calendar sync per provider
  • CalDAV calendar sync
  • Email notifications
  • Jitsi meeting links for appointments
  • REST API with OpenAPI file and API keys
  • Webhooks and LDAP sign-in
  • Multi-language interface

What Easy!Appointments does

Easy!Appointments is booking software for organizations that sell time by service and staff member: clinics, salons, tutoring centers, consultancies, public offices. Customers open the booking page, select a service, select a provider (or let the system pick any available one), choose a date and time, enter their details and confirm. On the back-office side, staff see a calendar of appointments, manage customer records, and define services, providers and working plans with booking rules.

That model differs from a personal Calendly link. Calendly starts from one host and their event types; Easy!Appointments starts from a business with several people offering several services. Both end with a customer booking a free slot, which is why it appears here as a Calendly alternative for businesses.

Calendar sync and integrations

Each provider can link a Google Calendar, and the documentation describes the sync as working in both directions: changes made in either system are reflected in the other. CalDAV sync is also built in, so providers can use a CalDAV calendar server such as Baikal, the one used in the project’s own guide. Booking confirmations can show an “Add to Google Calendar” button.

Since version 1.6.0 the application can generate a random Jitsi meeting link for an appointment, using the public meet.jit.si service by default. Other video platforms are not integrated.

For connecting other software there is a REST API covering appointments, customers, services and other records, described in an OpenAPI file and authenticated by an admin’s credentials or an API key. Webhooks fire on actions, and LDAP lets an organization import users from a directory and sign them in with their existing credentials.

Self-hosting Easy!Appointments

This is one of the easiest apps in the category to host. The README asks for Apache or Nginx, PHP 8.2 or later and a MySQL database; composer.json also lists the curl, json, mbstring, gd, simplexml and fileinfo extensions, and the FAQ mentions Apache’s mod_rewrite. Installation follows the classic PHP pattern: create a database, upload the folder, make storage writable, rename config-sample.php to config.php, fill in the settings and run the browser setup wizard. It can live in a subfolder of an existing site and share its database.

The Docker Compose file in the repository is described as a development environment; it includes Baikal and OpenLDAP for testing CalDAV and LDAP. Google Calendar sync requires your own Google Cloud OAuth client.

Hosted version

The developer offers managed hosting as a paid service on the project’s premium page, together with technical support, custom development and commercial white-label licensing for resellers. There is no free hosted tier.

Limitations

Easy!Appointments is not designed for a single person’s quick meeting links: setting up services, providers and working plans is more work than creating an event type. Video support is limited to generated Jitsi links, and there is no Microsoft 365 calendar connector in the code reviewed. It has no group polling, so it does not replace Doodle. The interface is functional rather than polished.

Who it suits

Easy!Appointments suits small and medium businesses that take customer appointments across several staff members and want the data on their own server, especially if they already have ordinary PHP hosting. Individuals looking for a personal booking link will be better served by Cal.diy or Tymeslot. See the scheduling guide for the full comparison.

License details

GPL-3.0. Code under GPL v3.0, content under CC BY 3.0. Paid services (custom development, managed hosting, support, white-label licensing) are offered separately; no premium code was found in the repository.

Technical details

Self-hosting needs

  • MySQL
  • Apache or Nginx

Built with

  • PHP
  • CodeIgniter
  • JavaScript

GitHub topics

  • appointments
  • codeigniter
  • events
  • google-calendar
  • javascript
  • mysql
  • php
  • rest-api
  • scheduler
  • sync
  • time
  • web

Reviewed by the OpenSourcePicks editors from the project's repository and documentation. Something out of date? Tell us.