README.md 5.2 KB
Newer Older
1
2
CalDAV/iCAL Support for Roundcube Calendar
==========================================
Daniel Morlock's avatar
Daniel Morlock committed
3
This repository was forked from [roundcubemail-plugins-kolab](http://git.kolab.org/roundcubemail-plugins-kolab) and contains a modified version of the Roundcube calendar plugin that enables client support for CalDAV and iCAL calendar resources. We added a feature branch [feature_caldav](https://gitlab.awesome-it.de/kolab/roundcube-plugins/tree/feature_caldav) with the modified calendar plugin and we try to frequently merge the latest release tags from upstream. You can find further information and a short introduction to this plugin on our [website](http://awesome-it.de/2014/02/22/Kolab-CalDAV-iCAL/).
4
5
6
7
8
9
10
11

Requirements
============
* Roundcube 1.0-RC or higher
* Optional: Kolab 3.1 or higher

Installation
============
12
* Clone this repo and checkout the appropriate tag from the `feature_caldav` branch. Please note that we assume that you are using Kolab Groupware and that there is supported version of Kolab Roundcubemail Plugins installed.
Daniel Morlock's avatar
Daniel Morlock committed
13
For example if `roundcubemail-plugins-kolab-3.1.13` is installed, you must checkout `roundcubemail-plugins-kolab-caldav-3.1.13[-rn]`. If you can't find an appropriate tag in the `feature_caldav` branch, you're version of Kolab Roundcubemail Plugins is not supported.
14
15
16
17

    ```bash
    $ cd /path/to/your/roundcube/
    $ git clone https://gitlab.awesome-it.de/kolab/roundcube-plugins.git plugins-caldav
18
    $ cd plugins-caldav 
19
    $ git checkout roundcubemail-plugins-kolab-caldav-<VERSION>-<REVISION>
20
    ```
21
22
    
* Only the calendar plugin was modified, so you only have to replace the calendar plugin:
23
24

    ```bash
25
    $ cd /path/to/your/roundcube/    
26
    $ mv plugins/calendar plugins/calendar.orig
27
28
    $ cd plugins
    $ ln -s ../plugins-caldav/plugins/calendar
29
30
    ```

31
    If you use Roundcubemail without Kolab, you should put all plugins from the `feature_caldav` branch into your plugins folder. Please note that this is only rarely tested and we won't offer any support for this right now.
32

Daniel Morlock's avatar
Daniel Morlock committed
33
34
35
36
37
38
39
* Install/update dependencies using PHP Composer (https://getcomposer.org/)

    ```bash
    $ cd plugins/calendar/lib
    $ composer install
    ```

40
41
42
43
44
45
* Copy `plugins/calendar.orig/config.inc.php` to the new plugin folder and modify accordingly:

    ```bash
    $ cp plugins/calendar.orig/config.inc.php plugins/calendar/config.inc.php
    $ vi plugins/calendar/config.inc.php
    ```
46

47
    If you replace existing Kolab Roundcubemail Plugins as described above, make sure to copy the configuration files of those plugins to the new plugin folders!
48

49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
* The calendar setting `calendar_driver` now accepts an array with calendar drivers you want to enable:

    ```php
    $config['calendar_driver'] = array("kolab", "caldav", "ical");
    ```

    Note that the very first array value is used a default driver e.g. for creating events via email if no calendar was chosen.
    Further you can drop the Kolab dependency of the calendar by remocing the `kolab` driver.

* It is always a good idea to set a new crypt key to be used for encryption of you CalDAV passwords:

    ```php
    $config['calendar_crypt_key'] = 'some_random_characters`;
    ```

* Update Roundcube's MySQL database:

    ```bash
    $ mysql -h <db-host> -u <db-user> -p <db-name> < /path/to/your/roundcube/plugins-caldav/plugins/calendar/drivers/database/SQL/mysql.initial.sql

    # For CalDAV support
    $ mysql -h <db-host> -u <db-user> -p <db-name> < /path/to/your/roundcube/plugins-caldav/plugins/calendar/drivers/caldav/SQL/mysql.initial.sql

    # For iCAL support
    $ mysql -h <db-host> -u <db-user> -p <db-name> < /path/to/your/roundcube/plugins-caldav/plugins/calendar/drivers/ical/SQL/mysql.initial.sql
    ```

76
77
78
79
80
81
82
83
84
85
* Make sure that the calendar plugin is enabled the Roundcube config e.g. `/path/to/your/roundcube/config/config.inc.php`:

    ```php
    $config['plugins'] = array(
        // ...
        'calendar',
        // ...
    );
    ```

86
87
88
89
90
* You should now be able to select one of your configured drivers when creating a new calendar.

Troubleshooting
===============

Daniel Morlock's avatar
Daniel Morlock committed
91
Enabling debug mode in `config.inc.php` will output additional debug information to `/path/to/your/roundcube/logs/console`:
92

Daniel Morlock's avatar
Daniel Morlock committed
93
94
95
96
```php
$config['calendar_caldav_debug'] = true;
$config['calendar_ical_debug'] = true;
```
Daniel Morlock's avatar
Daniel Morlock committed
97
98

If you find any bugs, please fill an issue in our [bug tracker](https://gitlab.awesome-it.de/kolab/roundcube-plugins/issues).
99
100
101

License
=======
Daniel Morlock's avatar
Daniel Morlock committed
102

Daniel Morlock's avatar
Daniel Morlock committed
103
CalDAV/iCAL Extension
Daniel Morlock's avatar
Daniel Morlock committed
104
105
---------------------

106
107
108
109
110
111
112
113
114
115
116
117
118
119
Copyright (C) 2014, Awesome Information Technology GbR <info@awesome-it.de>
 
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
 
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Daniel Morlock's avatar
Daniel Morlock committed
120
121
122

Kolab Plugins
-------------
Daniel Morlock's avatar
Daniel Morlock committed
123
See http://git.kolab.org/roundcubemail-plugins-kolab/tree/plugins/calendar/LICENSE.