Skip to content

h44z/kopano_webapp_calendarimporter

Repository files navigation

CALENDAR IMPORTER AND EXPORTER:

Building the calendar importer plugin from source:

Dependencies

Add JAVA_HOME (e.g. C:\Program Files\Java\jdk1.8.0_161) to your path. Also add Ant, Composer, PHP and Java to the global PATH variable!

Compiling the plugin

Unzip (or use git clone) the sourcecode of Kopano WebApp to a new directory. In this README we call the source folder of WebApp "kopano-webapp-source".

Then generate the WebApp build utils:

cd kopano-webapp-source
ant tools

Next clone the plugin to the WebApp plugin directory:

cd kopano-webapp-source\plugins
git clone https://git.sprinternet.at/zarafa_webapp/calendarimporter.git

Now lets build the plugin:

cd kopano-webapp-source\plugins\calendarimporter\php
composer install
cd kopano-webapp-source\plugins\calendarimporter
ant deploy

The compiled plugin is saved to kopano-webapp-source\deploy\plugins\calendarimporter.

Installing the plugin

From compiled source

Copy the whole folder "calendarimporter" to your production WebApp (kopano-webapp-production\plugins\calendarimporter)

For example:

cp -r kopano-webapp-source\deploy\plugins\calendarimporter kopano-webapp-production\plugins\

Installing the sync backend

From source

Copy the whole folder "kopano-webapp-source\plugins\calendarimporter\backend" to a destination of cour choice.

For example:

cp -r kopano-webapp-source\plugins\calendarimporter\backend /opt/ical-sync/backend

From precompiled download

Download the newest backend release from https://git.sprinternet.at/zarafa_webapp/calendarimporter/tree/master/DIST.

Unzip the downloaded file and copy the backend folder to a destination of cour choice.

For example:

cp -r Downloads\calendarimporter_backend /opt/ical-sync/backend

WebApp Plugin Configuration

Edit the config.php file in the plugin root path to fit your needs.

Available configuration values:

Configuration Value Type Default Desctription
PLUGIN_CALENDARIMPORTER_USER_DEFAULT_ENABLE boolean false Set to true to enable the plugin for all users
PLUGIN_CALENDARIMPORTER_USER_DEFAULT_ENABLE_SYNC string true Set to true to enable the sync feature for all users
PLUGIN_CALENDARIMPORTER_DEFAULT string "Kalender" Default calendar folder name (might be "Calendar" on english installations)
PLUGIN_CALENDARIMPORTER_DEFAULT_TIMEZONE string "Europe/Vienna" The local Timezone
PLUGIN_CALENDARIMPORTER_TMP_UPLOAD string "/var/lib/kopano-webapp/tmp/" Temporary path to store uploaded iCal files

Sync Backend Configuration

First you have to create a new Kopano user with admin rights. For example:

kopano-admin -c adminuser -e admin@domain.com -f "Calendar Sync Admin" -p topsecretpw -a 1

Then edit the config.php file of the sync backend to fit your needs.

Available configuration values:

Configuration Value Type Default Desctription
$ADMINUSERNAME string "adminuser" The newly created Kopano admin user
$ADMINPASSWORD string "topsecretpw" The password of the admin user
$SERVER string "http://localhost:236/kopano" Kopano Socket or HTTP(S) connection string
$CALDAVURL string "http://localhost:8080/ical/" Kopano CalDAV URL
$TEMPDIR string "/tmp/" Temporary path to store synchronised iCal files (must be writeable by the user executing the sync script)

Next set up a cronjob to allow periodic syncing of ical items.

For example: (/etc/crontab):

# sync ics calendars every minute (interval can be changed by the user)
* * * * * icssync /opt/ical-sync/backend/sync.php > /var/log/icssync.log 2>&1

If you get an error, make sure that the mapi module is loaded for php-cli. Therefore create or modify: /etc/php7/cli/conf.d/50-mapi.ini

extension=mapi.so 

Do no run the sync script as root! Create a user without admin rights (adduser icssync), and change permissions of the tmp folder accordingly.

Usage

The plugin add context menu entries to calendar folders.

Plugin Context Menus

If syncing is enabled, the calendar section in the WebApp settings gets extended with a synchronisation overview. There you can add new iCal URLs for syncing.

Plugin Settings Menus