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.
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>