Planning and Room-Reservation tool for Jitsi-Meet and ViOffice Conference. Live Version at
Go to file
ViOffice f96f3e9eaf Update Recurring selector in admin interface 2021-05-19 17:00:46 +02:00
.reuse REUSE compliance 2021-02-12 14:52:32 +01:00
LICENSES Make unknown licenses REUSE conform 2021-04-12 15:13:53 +02:00
conf Show recurring state to user 2021-05-19 16:43:10 +02:00
docs Explain the project 2021-02-13 13:35:03 +01:00
lib Fixing latest merge 2021-04-12 15:15:26 +02:00
misc add missing quotes 2021-05-19 15:38:21 +02:00
static Layout fixes 2021-05-13 11:19:39 +02:00
.gitignore Make waiting spinner a sample 2021-02-12 15:00:34 +01:00 Explain upgrade procedure 2021-05-19 15:08:34 +02:00 REUSE compliance 2021-02-12 14:52:32 +01:00
admin.php Update Recurring selector in admin interface 2021-05-19 17:00:46 +02:00
booking.php Apply Recurring status in Copy-Text and E-mail 2021-05-19 16:56:53 +02:00
cal.php Introduce intervalls for recurring events 2021-05-19 14:43:56 +02:00
index.php Introduce intervalls for recurring events 2021-05-19 14:43:56 +02:00
inv.php v0.3 2021-05-13 15:58:32 +02:00
out.php disable cleanup script when no HTML is shown 2021-05-13 16:05:12 +02:00


reuse compliant Hosted on Codeberg Github Mirror Latest Release

Planning and Room-Reservation tool for Jitsi-Meet and ViOffice Conference. Live Version at

  • To be used with either Jitsi-Meet or any compatible Conference solution.

  • Jitsi-Meet does not require any special configuration, nor does it require to be aware of Planado.

  • Please read the documentation & examples if you want to learn more.


  • PHP (>=7)

  • Webserver with PHP support (e.g. Apache2)

  • MySQL or MariaDB


  1. Clone the repository
git clone 
cd Planado
  1. Make your individual configuration changes to the configurations in conf/:
  • common.php

    • Supported languages
    • DB configurations
    • Domains for Planado and the Jitsi-Meet instance in use
  • i18n.php

    • Language strings for the configured languages in common.php
    • More languages may be added via additional else if ($lang == "xx") { ... } statements
cp conf/common.php.sample conf/common.php
cp conf/i18n.php.sample conf/i18n.php

Then edit either file, accordingly. Note: i18n.php.sample already contains working defaults, however common.php.sample does not.

  1. Optional: Add your own CSS, JS, images and fonts
  • Custom CSS: static/css/custom.css
  • Custom JS: static/js/custom.js
  • Custom images: static/img/background.jpg, static/img/waiting.gif & static/img/favicon.ico
  • Custom fonts: static/img/fonts/ (also add to your CSS)
cp static/img/bg.jpg.sample static/img/bg.jpg
cp static/img/waiting.gif.sample static/img/waiting.gif
cp static/img/favicon.ico.sample static/img/favicon.ico
  1. Create the database according to your configurations either manually or via the create_db.php script:

Note: The create_db.php may create the database and db-table, but you still need to configure the user and their access to the database manually:

# mysql -e "CREATE USER <your-user>@localhost IDENTIFIED BY '<your-password>';"

Then execute the create_db.php script:

php misc/create_db.php

Finally, grant the user access to the database:

# mysql -e "GRANT ALL PRIVILEGES on <your-database>.* to '<your-user>'@'localhost';"
# mysql -e "FLUSH privileges;"
  1. Deploy Planado to your webroot:
sudo cp -r ../Planado /var/www/html/planado
curl http://localhost/planado/misc/tests.php?tests=all
> OK!
  1. Optional: Let Cron do some automated cleanup of rooms and recurring events:
crontab -u www-data -e

the entry should look similar to this (change the directory path accordingly):

0 * * * * php /var/www/planado/misc/cleanup.php

This will run the cleanup-script every hour, even if nobody is visiting your Planado instance.


If you are running Planado straight from main branch:

git pull
php ./misc/upgrade_db.php

If you are running from a specific release:

git checkout main
git pull
git checkout 0.1.0
php ./misc/upgrade_db.php

Either way, please take a look at the changelog from last commits or releases and update your configurations and translations in conf/ accordingly.



Any pull requests or suggestions are welcome on the main repository at, the Github-Mirror at or via e-mail to the maintainers.

Please make sure, your changes are REUSE-compliant


Copyright (C) 2021 Weymeirsch und Langer GbR

See Licenses here.