CalDAV calendar server

From Group-Office Groupware and CRM Documentation
Jump to: navigation, search

With the CalDAV calendar server built in you can connect to the Group-Office calendars with other clients. You have to add them to your sync settings first at Settings (top right) -> Synchronization. To add a calendar you must first determine your baseURI. Ideally your webserver is configured with an alias:

Server Installation

If you installed the Debian packages you don't have to install anything on the server. Everything is configured by default and you can move on to the client configuration.

Alias /caldav /path/to/go/modules/caldav/calendar.php

In that case the base URI to your CalDAV server is:

http(s)://your.url.to.groupoffice/caldav/

Otherwise it's this:

http(s)://your.url.to.groupoffice/modules/caldav/calendar.php/

The CalDAV feature is based on SabreDAV. You can find more information about clients on that page too.

Testing the server

You can simply open the URL in a web browser. If you get a blank page then there's an error. Check the error log in that case. It could be that the caldav module isn't installed.

Note: Unlike Group-Office, the username for all DAV servers is case sensitive!

Installation when PHP runs in CGI mode

If you use PHP through CGI or FastCGI and Apache authentication headers are not passed through by default. You can enable this with the following mod_rewrite rule:

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
</IfModule> 

If you already had a mod_rewrite rule to map all urls to a server file, you might need to change this to something like:

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteRule .* /modules/caldav/calendar.php [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
</IfModule> 

Note the /modules/caldav/calendar.php. Make sure this reflects the correct relative URL of your server file.

Service discovery

For iOS7 it's required to setup service discovery. On a standard Debian box we add this to the virtual host (since 4.2.22):

Redirect 301 /.well-known/carddav /carddav
Redirect 301 /.well-known/caldav /caldav

For more information read:

https://code.google.com/p/sabredav/wiki/ServiceDiscovery

The Apple iCal client

Connecting with iCal:

  • Go to preferences in the iCal calendar application menu (Do not use System Preferences -> Accounts. This does not work).
  • Go to the Accounts tab
  • Press the + button to add a new account
  • Select 'CalDAV server' for account type
  • Enter your username, password
  • For server address, enter <baseURI>/principals/<your.groupoffice.username>/. Do NOT forget the trailing slash!

The Evolution CalDAV client

Connecting with Evolution:

  • Find your calendar URL at: <baseURI>/calendars/

Select your username and then find your calendar.
Eg. for John Smith: <baseURI>/calendars/jsmith/smith-john-1/

  • Connecting to a CalDAV server is done through the "New > Create new calendar" dialog. In this dialog it is possible to specify a CalDAV location. (Replace http(s) with caldav)


To setup TODO lists through Evolution works the exact same (select New tasklist instead of calendar).

Thunderbird with the lightning and cardbook plugin

You can synchronize your mailbox, calendar and addressbook to/from Thunderbird using DAV and IMAP

Mail

You can setup you e-mail with IMAP the same way you did in Group-Office

Calendars

For this you'll need the Lightning plugin

To add a Calendar:

  • Right Click on the list of calendars in the Lightning plugin in Thunderbird and pick "New Calendar..."
  • Choice "On the Network", choice CalDAV and enter "http(s)://your.url.to.groupoffice/caldav/calendars/yourusername/calendarname/" in the location field
  • Note: if unsure about the calendarname use your webbrowser and go to http(s)://your.url.to.groupoffice/caldav/ to find the available calendars
  • Give your calendar a display name and color for Thunderbird and press Finish.
  • Thunderbird will now ask for a Username and Password. Enter your Group-Office credentials

Addressbook

Synchronize your address book using CardDAV with CardBook

To add an address book:

  • Click the menu button on the left of the menubar and choice: Address Book > Add address book
  • Pick "Remote" and click Next
  • In the URL field enter: "http(s)://your.url.to.groupoffice/carddav/addressbooks/yourusername/" and use your Group-Office username and password

Cardbook1.png

  • Click the "Validate" button. If all goes well the "Next" button will be enabled and you can continue.
  • You will then see the address book that are made available to the user for synchronization

Cardbook2.png

  • Check the address book you want available in Thunderbird and Finish.


Multiple accounts

If you want to setup multiple accounts on the same domain you have to edit an advanced configuration parameter.

Go to Edit > Preferences > Advanced > Config Editor. Click the "I'll be careful, I promise!" warning, find "calendar.network.multirealm", double click it to toggle it to "true" and finally restart Thunderbird. You should get an auth dialog for all configured CalDAV accounts.

Maximum age of events

By default, Group-Office only synchronizes events that are not older then 1 month. If you would like to change this you can control it with this parameter in config.php:

$config['caldav_max_months_old']=6;