Importing ICAL ics files into Zarafa

From Zarafa wiki

Revision as of 14:13, 15 March 2010 by Robin (Talk | contribs)
Jump to: navigation, search

This page describes the import of ICal calendar files into Zarafa via the zarafa-ical gateway.

For the import of the ICal ics files we will use curl. The curl package will be installable on most linux distributions via the default repositories.

On Centos/Redhat:

yum install curl

On Ubuntu/Debian:

apt-get install curl

With curl you are able to import ICal ics files into Zarafa. Before you do this, you need to make sure that the zarafa-ical service is started:

/etc/init.d/zarafa-ical start

The zarafa-ical service runs on port 8080 by default. You can change these settings in /etc/zarafa/ical.cfg. In this document we use the default settings.

Now you can import ics files to the users default calendar using curl:

curl -u [username]:[password] -T [path to ics file] http://[zarafa-ical-server]:8080/ical/[username]

You can also import to users default calendar using a zarafa-admin user:

curl -u [zarafa-admin user]:[password] -T [path to ics file] http://[zarafa-ical-server]:8080/ical/[username]

If you want to import calendars to different calendars then the default calendar, use:

curl -u [username]:[password] -T [path to ics file] http://[zarafa-ical-server]:8080/ical/[username]/[calendar name]/

Or if you want to import to a subfolder of a yet existing calendar (in the next example we import to a subfolder of a calendar named "Calendar"):

curl -u [username]:[password] -T [path to ics file] http://[zarafa-ical-server]:8080/ical/[username]/Calendar/[calendar name]

If the calendar does not exist yet, the last example will not work when using a zarafa-admin user. This needs to be done as the user itself. There is a workaround however if you need to do some massive scripting on this and you don't know the users' passwords.

You will need to run the zarafa-ical service and zarafa-server on the same host and the zarafa-ical service needs to run as root. Change the server_socket in /etc/zarafa/ical.cfg to:

server_socket = file:///var/run/zarafa

After this change restart the zarafa-ical service.

You can now import calendars (both to default calendars and to calendars that need to be newly created) as the user. But now the zarafa-ical service will accept any password as the users' password as long as it is not empty:

curl -u [username]:[any password] -T [path to ics file] http://[zarafa-ical-server]:8080/ical/[username]/[calendar name]

Important: Revert the server_socket back to it's original setting before going into production, as setting the server to a unix socket creates a security leak. So edit the file /etc/zarafa/ical.cfg and change server_socket back to:

server_socket = http://localhost:236/zarafa

Compatibility issue: Importing large ics files with Zarafa 6.40 beta fails. Tested this on Centos 5.4 Final with stock curl version and latest compiled curl version. Thanks to the community for this input.

Personal tools