Roundcube Community Forum

 

Sabre issue

Started by sheri207, March 20, 2025, 11:23:41 AM

Previous topic - Next topic

sheri207

Hello!

I was working on integration of calendar in Roundcube. I have Mailcow Suite where I am have installed Rouncube. As Roundcube does not have any official calendar plugin, I used Kolab plugin. The documentation I followed was of this below link attached. Although the steps were bit different as I am using Dockerized Mailcow

Link of Kolab:   https://packagist.org/packages/kolab/calendar

I have successfully integrated the Kolab and when I open RoundCube I can see Calendar option from where I can add and remove event. But after event creation on calendar, that event is not Synced to Sogo. Upon debugging the issue, this is the error which I came across


[20-Mar-2025 15:03:15 Etc/UTC] PHP Deprecated:  Return type of Sabre\VObject\Node::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /web/rc/vendor/sabre/vobject/lib/Node.php on line 83
[20-Mar-2025 15:03:15 Etc/UTC] PHP Deprecated:  Return type of Sabre\VObject\Node::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /web/rc/vendor/sabre/vobject/lib/Node.php on line 162
[20-Mar-2025 15:03:15 Etc/UTC] PHP Deprecated:  Return type of Sabre\VObject\Node::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /web/rc/vendor/sabre/vobject/lib/Node.php on line 177
[20-Mar-2025 15:03:15 Etc/UTC] PHP Deprecated:  Return type of Sabre\VObject\Node::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /web/rc/vendor/sabre/vobject/lib/Node.php on line 193
[20-Mar-2025 15:03:15 Etc/UTC] PHP Deprecated:  Return type of Sabre\VObject\Node::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /web/rc/vendor/sabre/vobject/lib/Node.php on line 213
[20-Mar-2025 15:03:15 Etc/UTC] PHP Deprecated:  Return type of Sabre\VObject\Node::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /web/rc/vendor/sabre/vobject/lib/Node.php on line 142


The sabre version installed through Kolab setup is

sabre/vobject                 3.5.3    The VObject library for PHP allows you to easily parse and manipulate iCalendar and vCard objects
This seems that the version of sabre is not compatible.

Should I update it? If yes, wouldn't it cause compatibility issues with other libraries.

Has anyone ever faced this issue. Any help would be highly appreciated.

SKaero

I don't think that version of the calendar plugin is being updated anymore since it was last updated in 2021. Try manually using the version here: https://git.kolab.org/diffusion/RPK/browse/master/plugins/calendar/

sheri207

Quote from: SKaero on March 20, 2025, 06:15:43 PMI don't think that version of the calendar plugin is being updated anymore since it was last updated in 2021. Try manually using the version here: https://git.kolab.org/diffusion/RPK/browse/master/plugins/calendar/

Hey this has worked.Thanks for sharing. Could you please help me on one more issue.

After integrating the Kolab plugin and we need to change the config.php file too. So these following variables were changed according to my requirement


$config['calendar_driver'] = "caldav";
$config['calendar_caldav_server'] = "https://mail.example.com/SOGo/dav/";
$config['calendar_caldav_url'] = 'https://mail.example.com/SOGo/dav/%u/Calendar/';


Now when I try to create an event on Roundcube it fails. Upon element inspect on Chrome, the request is failing with this payload

{
    "action": "event",
    "exec": "this.display_message(\"Failed to save changes.\",\"error\",0);\n",
    "callbacks": [
        [
            "plugin.unlock_saving",
            false
        ],
        [
            "plugin.refresh_calendar",
            {
                "source": ""
            }
        ]
    ]
}


Docker logs are fine and showing no error. What issue it can be. Is there any way to debug it

SKaero

I'm not an expert on the calendar plugin so without digging into the code I don't know where to look for errors.