This manual is deprecated. Please visit https://groupoffice.readthedocs.io for the latest documentation.

Difference between revisions of "CalDAV calendar server"

From Group-Office Groupware and CRM Documentation
Jump to: navigation, search
(Calendar synchronization)
(Thunderbird with the lightning and cardbook plugin)
 
(9 intermediate revisions by the same user not shown)
Line 16: Line 16:
  
 
The CalDAV feature is based on [http://code.google.com/p/sabredav/ SabreDAV]. You can find more information about clients on that page too.
 
The CalDAV feature is based on [http://code.google.com/p/sabredav/ 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 [[Troubleshooting#Error_log|error log]] in that case. It could be that the caldav module isn't installed.
 +
 +
<b>Note:</b> Unlike Group-Office, the username for all DAV servers is case sensitive!
  
 
===Installation when PHP runs in CGI mode===
 
===Installation when PHP runs in CGI mode===
Line 38: Line 44:
  
 
Note the /modules/caldav/calendar.php. Make sure this reflects the correct relative URL of your server file.
 
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):
 +
 +
<pre>
 +
Redirect 301 /.well-known/carddav /carddav
 +
Redirect 301 /.well-known/caldav /caldav
 +
</pre>
 +
 +
For more information read:
 +
 +
https://code.google.com/p/sabredav/wiki/ServiceDiscovery
  
 
==The Apple iCal client==
 
==The Apple iCal client==
Line 62: Line 81:
 
To setup TODO lists through Evolution works the exact same (select New tasklist instead of calendar).  
 
To setup TODO lists through Evolution works the exact same (select New tasklist instead of calendar).  
  
==Thunderbird with the lightning plugin==
+
==Thunderbird with the lightning and cardbook plugin==
  
* Find your calendar URL at: <baseURI>/calendars/<br />
+
You can synchronize your mailbox, calendar and addressbook to/from Thunderbird using DAV and IMAP
Select your username and then find your calendar.<br />
+
Eg. for John Smith: <baseURI>/calendars/jsmith/smith-john-1/
+
  
* In the main menu go to: File -> New -> Calendar
+
===Mail===
* Select "On the network" in the dialog that pops up
+
You can setup you e-mail with [[Installing_on_Debian_or_Ubuntu#Connecting_an_external_mail_client|IMAP]] the same way you did in Group-Office
* Enter the URL you found in the first step
+
  
 +
===Calendars===
 +
For this you'll need the [https://addons.mozilla.org/thunderbird/addon/lightning/ Lightning] plugin
  
==Maximum age of events==
+
To add a Calendar:
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:
+
* 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
  
$config['caldav_max_months_old']=6;
+
===Addressbook===
 +
Synchronize your address book using CardDAV with [https://addons.mozilla.org/thunderbird/addon/cardbook/ 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
 +
[[File: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
 +
[[File:Cardbook2.png]]
 +
* Check the address book you want available in Thunderbird and Finish.
  
==Android with caldav sync client==
 
  
===Task synchronization===
+
===Multiple accounts===
In order to see the group office tasks list in your android phone, you need to assign a task list to be synchronized.
+
If you want to setup multiple accounts on the same domain you have to edit an advanced configuration parameter.
In Group Office, go to Calendar -> Administration -> Double click your calendar -> Select the caldav tasklist. These tasks will be included in the caldav function.
+
Also, install the cost free https://play.google.com/store/apps/deta ... dmfs.tasks "Tasks" app from google play. Then, configure the caldav settings like described below.
+
If you already had caldav configured, delete the account and re-configure it, else the tasks won't appear in the "Tasks" app.
+
  
===Calendar synchronization===
+
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.
After installing "caldav sync beta" https://play.google.com/store/apps/deta ... caldav.lib from google play, in the settings menu, under accounts, there is a new account provider named "caldav". In the caldav provider list following, choose the top entry "caldav" again.
+
 
For the server address, use the entry from above (e.g. http://www.domain.tld/caldav) and enter your username and password.
+
==Maximum age of events==
You then get a list of available calendars in group office. Choose the one(s) to be synchronized. Name the calendar and finish.
+
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;

Latest revision as of 17:54, 23 November 2017

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;