This plugin for the Kopano WebApp provides a ICAL calendar importer and exporter. Here is the Zarafa project page: https://community.zarafa.com/pg/plugins/project/16145/developer/h44z/webapp-ical-calendar-importer
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.
Christoph Haas 6af790cb44 Added 2.2.3 build (Build on PHP 7.2.6) 9 months ago
DIST Added 2.2.3 build (Build on PHP 7.2.6) 9 months ago
backend 2.2.2 release, updated documentation, copyright updates 1 year ago
js Fixed JS error 9 months ago
languages Added Translation 2 years ago
php 2.2.2 release, updated documentation, copyright updates 1 year ago
resources Line endings 2 years ago
.gitignore 2.2.2 release, updated documentation, copyright updates 1 year ago
.gitlab-ci.yml Add .gitlab-ci.yml for github mirroring 1 year ago
LICENSE Add LICENSE 1 year ago
Makefile Added Translation 2 years ago
README.md 2.2.2 release, updated documentation, copyright updates 1 year ago
build.xml Added Translation 2 years ago
changelog.txt Updated version, fixed manifest structure 9 months ago
config.php Added Translation 2 years ago
manifest.xml Updated version, fixed manifest structure 9 months ago
usage.png 2.2.2 release, updated documentation, copyright updates 1 year ago
usage_sync.png 2.2.2 release, updated documentation, copyright updates 1 year ago

README.md

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