Skip to content
Offerel edited this page Apr 29, 2024 · 7 revisions

A plugin for Roundcube to include CalDAVZap in to the main GUI. CalDAVZap is included in the plugin folder since version 1.02 of this plugin. The latest version of CalDAVZap I could found is 0.13.2rc1 from https://www.inf-it.com/mlmmj/davclients/2015-11/0000004.html. All credits goes to inf-it.com, the developers of CalDAVZap.

Installation

  • Extract the downloaded archive into Roundcube’s plugin directory <roundcube>/plugins/ and rename it to caldavzap.
  • copy config.inc.php.dist to config.inc.php
  • change $config['caldav_server'] and $config['caldav_path'] to your CalDAV Servers values. Be aware, that CalDAVZap is only successfully tested without a crossdomain setup. This meas, that $config['caldav_server'] should point to the same domain, as where your Roundcube is installed to. If the CalDAV server runs on a other domain, you can workaround this by using a reverse proxy.
  • Activate the plugin in /config/config.inc.php in the way that you add it to the active plugins array, like $config['plugins'] = array('primitivenotes');

Issues

For issue reporting, please use the issue tracker at Codeberg.org. I have disabled the issue tracker on GitHub.com

How to report bugs

If the plugin does not work as expected, the error should be reported here as a issue. I will then try to fix the problem. However, I need your help to find the cause of the problem. Important are especially the different log files.

  • Mainly I need the output of the browser's webconsole. In most browsers under Windows, you can access it by pressing the F12 key, please tell me all listed errors and warnings.
  • The output of the Roundcube error log file is also useful. Please attach this to the issue. Remove any confidential text
  • Sometimes the issue depends more at the server configuration. Helpful in these cases are the two logfiles of the webserver: error.log and access.log
  • There is also a separate PHP Logfile. Please attach this file also to the issue

Please also note that I can only give very limited tips and advice on server configuration.

FAQ

Which CalDAV servers are supported?

Basically, any server that offers authentication via http Basic Auth should work. The connection to SabreDAV 3.2. x was tested on a local server.

Why only one local server?

Currently no crossdomain setup is supported. The background is, that CalDAVZap is based on JavaScript and cross-domain setups pose a security risk.

So I can't use the plugin if my CalDAV server is on a different host than my Roundcube installation?

It may still work under certain circumstances. If you can administer the server with the Roundcube installation by yourself, you can try to set up a "reverse proxy" to the CalDAV server, so that there is a local path to the CalDAV server. The configuration for this depends on the used local web server and the remote CalDAV server. Refer to the documentation of the web server and the remote CalDAV server for configuration instructions.

Where are the access data to the CalDAV server stored and configured?

Not at all. The logon to the CalDAV server is done with the credentials of the registered Roundcube user customizable. This means that both must be identical.

What else has to be configured?

The config.inc.php in the plugin directory is responsible for the configuration. The only important parameters are $config['caldav_server'] and $config['caldav_path']. The Roundcube host is specified in the first one, which can also be 'localhost'. In the other parameter, the local folder path to the CalDAV server is entered.

What about the other parameters of CalDAVZap?

These can be changed in caldavzap_0.13.2/config_rc.js if necessary. The meaning of the parameters is explained in config_rc.js. It is only important that the special variant globalNetworkRoundcubeSettings is used as connector. You should not change the values there if you don't know exactly what you are doing.

What about globalSubscribedCalendars?

Here you could subscribe to calendars like Google's calendar. But only in theorie, because we have here the same problem with the crossdomain setup in it's full bandwidth, as with the normal setup. A reverse proxy can also be work here as a workaround.