Easy Appointments

Easy Appointments is an open source web application for booking / scheduling appointments. It allows for many customization options and use-cases and provides optional sync to Google Calendar.

Easy Appointments was first released 2016 and is maintained by Alex Tselegidis. It is distributed under GPL 3.0.


Note

For this guide you should be familiar with the basic concepts of

Prerequisites

You’ll need your MySQL credentials. Get them with my_print_defaults:

[isabell@stardust ~]$ my_print_defaults client
--default-character-set=utf8mb4
--user=isabell
--password=MySuperSecretPassword
[isabell@stardust ~]$

We suggest using an additional database. Create one with:

[isabell@stardust ~]$ mysql -e "CREATE DATABASE ${USER}_ea"

We’re using PHP in version 8.1:

[isabell@stardust ~]$ uberspace tools version show php
Using 'PHP' version: '8.1'
[isabell@stardust ~]$

Your domain needs to be setup:

[isabell@stardust ~]$ uberspace web domain list
isabell.uber.space
[isabell@stardust ~]$

Installation

cd into your document root, download the latest build, unzip and remove the zip file. Make sure to replace x.y.z with the latest version number.

[isabell@stardust ~]$ version=x.y.z
[isabell@stardust ~]$ cd /var/www/virtual/$USER/html/
[isabell@stardust html]$ wget https://github.com/alextselegidis/easyappointments/releases/download/$version/easyappointments-$version.zip
[isabell@stardust html]$ unzip easyappointments-$version.zip
[isabell@stardust html]$ rm easyappointments-$version.zip
[isabell@stardust html]$ rm nocontent.html
[isabell@stardust ~]$

Configuration

To get started set some basic configuration variables. First, copy the sample configuration:

[isabell@stardust ~]$ cd /var/www/virtual/$USER/html/
[isabell@stardust html]$ cp config-sample.php config.php
[isabell@stardust html]$

Then, edit config.php. In here you need to enter your base-URL, MySQL credentials database connection parameters and the name of your database (e.g. isabell_ea).

// GENERAL SETTINGS
// ------------------------------------------------------------------------

const BASE_URL      = 'https://isabell.uber.space';
const LANGUAGE      = 'english';
const DEBUG_MODE    = FALSE;

// ------------------------------------------------------------------------
// DATABASE SETTINGS
// ------------------------------------------------------------------------

const DB_HOST       = 'localhost';
const DB_NAME       = 'isabell_ea';
const DB_USERNAME   = 'isabell';
const DB_PASSWORD   = 'MySuperSecretPassword';

Finishing installation

[isabell@stardust ~]$ cd /var/www/virtual/$USER/html/
[isabell@stardust html]$ php index.php console install
[isabell@stardust ~]$

Alternatively, point your browser to your domain, https://isabell.uber.space/ in this example, where you can set up admin credentials and basic settings for your intended usage.

Easy Appointments is now ready to use.

Tuning

Translations

Easy Appointments’ inbuilt language translations are not always perfect and you might want to change some wordings to better fit your needs. You can remove unneeded translations by removing them from the array in /var/www/virtual/$USER/html/application/config/config.php, for instance:

/*
|--------------------------------------------------------------------------
| Available Languages
|--------------------------------------------------------------------------
|
| Each item of this array must be a directory with the translation files in
| the /application/language directory. The users will be able to select one
| of these languages.
|
*/
$config['available_languages'] = [
 'english',
 'french',
 'german'
];

You can also add a new translation by copying and renaming a translation-folder in /var/www/virtual/$USER/html/application/language/ and adding its name to the array above.

You can modify an existing translation by editing the translation_lang.php file in the desired language folder. For English this would be /var/www/virtual/$USER/html/application/language/english/translation_lang.php

Note

The official documentation contains additional information on translation and other topics.

Updates

Note

Check the update feed regularly to stay informed about the newest version.

Warning

Backup all your files and the database before updating!

Download the new version, unzip it and overwrite all the files in your document root except config.php.

[isabell@stardust ~]$ version=x.y.z
[isabell@stardust ~]$ cd /var/www/virtual/$USER/html/
[isabell@stardust html]$ wget https://github.com/alextselegidis/easyappointments/releases/download/$version/easyappointments-$version.zip
[isabell@stardust html]$ unzip easyappointments-$version.zip
[isabell@stardust html]$ rm easyappointments-$version.zip
[isabell@stardust ~]$

If updating from version 1.3.x also remove /system and /autoload.php

[isabell@stardust html]$ rm -r system/
[isabell@stardust html]$ rm autoload.php

Run a database update

[isabell@stardust ~]$ cd /var/www/virtual/$USER/html/
[isabell@stardust html]$ php index.php console migrate
[isabell@stardust ~]$

Tested with Easy Appointments 1.4.3, Uberspace 7.15.6, PHP 8.1

Written by: Lukas Herzog <hallo@lukasherzog.de>