Planning and Room-Reservation tool for Jitsi-Meet and ViOffice Conference. Live Version at
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ViOffice f96f3e9eaf Update Recurring selector in admin interface 1 year ago
.reuse REUSE compliance 2 years ago
LICENSES Make unknown licenses REUSE conform 1 year ago
conf Show recurring state to user 1 year ago
docs Explain the project 2 years ago
lib Fixing latest merge 1 year ago
misc add missing quotes 1 year ago
static Layout fixes 1 year ago
.gitignore Make waiting spinner a sample 2 years ago Explain upgrade procedure 1 year ago REUSE compliance 2 years ago
admin.php Update Recurring selector in admin interface 1 year ago
booking.php Apply Recurring status in Copy-Text and E-mail 1 year ago
cal.php Introduce intervalls for recurring events 1 year ago
index.php Introduce intervalls for recurring events 1 year ago
inv.php v0.3 1 year ago
out.php disable cleanup script when no HTML is shown 1 year ago


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.