For some reason I'm unable to view shared calendars in releases after 56.1. I have cleared the state folder after the update to 59, any ideas?
Device: Android 4.4.2
Zimbra 8.0.6
Z-Push: 2.1.1-1788
Working configuration in 56.1 (which shows me multi calendars):
define('ZIMBRA_URL', '-cut out-');
define('ZIMBRA_TIMEZONE', 'Europe/Amsterdam');
define('ZIMBRA_USER_DIR', 'zimbra');
define('ZIMBRA_SYNC_CONTACT_PICTURES', true);
define('ZIMBRA_VIRTUAL_CONTACTS', false);
define('ZIMBRA_VIRTUAL_APPOINTMENTS', false);
define('ZIMBRA_VIRTUAL_TASKS', false);
define('ZIMBRA_IGNORE_EMAILED_CONTACTS', true);
define('ZIMBRA_HTML', true);
define('ZIMBRA_ENFORCE_VALID_EMAIL', true);
define('ZIMBRA_SMART_FOLDERS', false);
define('ZIMBRA_DISABLE_MESSAGES', false);
define('ZIMBRA_DISABLE_CONTACTS', false);
define('ZIMBRA_DISABLE_APPOINTMENTS', false);
define('ZIMBRA_DISABLE_TASKS', false);
define('ZIMBRA_RETRIES_ON_HOST_CONNECT_ERROR', 5);
define('ZIMBRA_DEBUG', false);
define('ZIMBRA_LOCAL_CACHE', true);
define('ZIMBRA_LOCAL_CACHE_LIFETIME', 3600);
define('ZIMBRA_SERVER_INVITE_REPLY', false);
define('ZIMBRA_DISABLE_MULTI_CALENDARS', false);
define('ZIMBRA_DISABLE_MULTI_CONTACT_GROUPS', false);
define('MBSTRING_OVERLOAD', (extension_loaded('mbstring') ? ini_get('mbstring.func_overload') : false));
New configuration for 59 (no multi calendars):
define('ZIMBRA_URL', '-cut out-');
define('ZIMBRA_USER_DIR', 'zimbra');
define('ZIMBRA_SMART_FOLDERS', false);
define('ZIMBRA_SYNC_CONTACT_PICTURES', true);
define('ZIMBRA_VIRTUAL_CONTACTS', false);
define('ZIMBRA_VIRTUAL_APPOINTMENTS', false);
define('ZIMBRA_VIRTUAL_TASKS', false);
define('ZIMBRA_VIRTUAL_NOTES', false);
define('ZIMBRA_IGNORE_EMAILED_CONTACTS', true);
define('ZIMBRA_HTML', true);
define('ZIMBRA_ENFORCE_VALID_EMAIL', true);
define('ZIMBRA_DISABLE_MESSAGES', false);
define('ZIMBRA_DISABLE_CONTACTS', false);
define('ZIMBRA_DISABLE_APPOINTMENTS', false);
define('ZIMBRA_DISABLE_TASKS', false);
define('ZIMBRA_DISABLE_NOTES', false);
define('ZIMBRA_RETRIES_ON_HOST_CONNECT_ERROR', 5);
define('ZIMBRA_DEBUG',false);
define('ZIMBRA_MB_DETECT_ORDER', 'ASCII, UTF-8, ISO-8859-1, ISO-8859-15');
define('ZIMBRA_LOCAL_CACHE', true);
define('ZIMBRA_LOCAL_CACHE_LIFETIME', 300);
define('ZIMBRA_SERVER_INVITE_REPLY', false);
define('ZIMBRA_DISABLE_MULTI_CALENDARS', false);
define('ZIMBRA_DISABLE_MULTI_CONTACT_GROUPS', false);
define('ZIMBRA_DISABLE_MULTI_TASK_LISTS', false);
define('ZIMBRA_DISABLE_MULTI_NOTE_LISTS', false);
define('MBSTRING_OVERLOAD', (extension_loaded('mbstring') ? ini_get('mbstring.func_overload') : false));
Can you enable debug logging in z-push, and post a copy of the "START Logon" debug - you can hide your username if you wish
10/04/2014 14:39:08 [ 1159] [DEBUG] [myUser] Zimbra->Logon(): START Logon { username [myUser] - domain [] - password <hidden> - php [5.3.3] - zpzb [59.1] - ua [Apple-iPhone3C1/1104.169] - as [14.0] }</hidden>
There was an issue in release 56.1 that was causing the multi-folder support flags to not get honoured correctly. Fixing that has obviously taken away the ability for your phone to get multiple folders.
Support for multi-folder handling is enabled based on the UserAgent string passed by the device. I do not have an android 4.4.2 device to test with so I do not know what UA it sends.
Also, can you tell me what folder types your phone allowed multiples for - calendar?, tasks?, contacts?
Does android 4.4.2 support notes sync?
Thanks,
Vincent
10/04/2014 16:58:58 [ 5430] [DEBUG] [user@domain.tld] Zimbra->Logon(): START Logon { username [user@domain.tld] - domain [] - password <hidden> - php [5.4.4-14+deb7u8] - zpzb [59] - ua [Android/4.4.2-EAS-1.3] - as [14.0]</hidden>
My phone supports contacts, calendar and email sync. I don't think it supports notes as it doesn't give me the option when adding a new account. Perhaps I've deleted the corresponding application which handles them.
For release 59 - look at line 787
If you change it to
it will try to use multi-folders. Note the additional check [ || (stripos($this->_deviceAgent, "Android/4.4") !== false) ] added to the line.
On lines 793, 800, and 805 you can further tweak what it tries sync multiple folders for.
Not sure if you will need to escape the / character for it to match. Try it as is and if it doesn't match then try "Android\/4.4"
Note: if it works, and you get a full folder sync, for a time your device might have duplicates of calendar entries/contacts/etc as it might add the previously 'virtualized' ones to their newly recognised folder before removing them from the master folder they were virtualized into. Once the sync process completes, they should all end up in their right folders.
Who is the phone/device manufacturer?
If more and more operating systems begin to offer multi-folder support I will have to come up with a better way to support it.
Noticed the check when I walked through the code, but didn't want to fiddle with it and mess things up. Anyway, I added the Android user agent to the multi-folder capable check and multi-calendar is working again!
Android neatly lists all the calendars as separate calendars for the account. Normal calendars work perfectly, same goes for external calendars. Shared calendar has some glitches, it lists all the appointments correctly but when I open the appointment it incorrectly lists it as a meeting with the calendar owner. Also when creating a new appointment in the shared calendar it will be listed as meeting request in the Zimbra web UI. So calendar is working, but is usable read-only in a shared calendar unless you want some weird things to happen. This behavior also happened with 56.1.
Multiple contact lists won't be put in separate lists for the account. They are shown as one list "Contacts". Editing a contact from a different list works, no weird things seen so far.
Note syncing is not possible.
My z-push log is getting filled with:
and (these also appeared with 56.1):
I hope we can get the shared calendar workable in some way, but I guess this is some kind of default behavior by Zimbra?
I'm using a Nexus 5 from LG. Thank you so far for getting this working again!
Thanks for reporting back. Can you confirm the format you put the name in (with or without a )
When I get a chance I will look at the shared calendar appointments to see if I can do anything with them. Can you do a test for me - If you create an appointment yourself on the shared calendar, does it allow you to edit it on the phone?
Format is
I can't edit any of the shared calendar appointments using my phone, there is a delete button visible and an option to tell if I attend the meeting "Yes, Maybe or No" (like a meeting request) << Weird because this is an appointment and not a meeting.
If I create an appointment in the shared calendar with my phone I can edit it and the attend options are gone. When viewing this created appointment in the web UI it shows a meeting request with the shared account which still needs to get accepted.
Thanks for the UA string format.
With an iPhone, I can create an appointment in a shared calendar (i.e. no invitees) but not a meeting. If I open my Web Client, the appointment is there, and I am the owner. If I log into the web client as the Calendar owner, the appointment is there - but if I try to edit it it informs me that I can only edit a local copy of the appointment as I am not the owner - which is right.
If you are seeing different behaviour, perhaps your phone is sending through something unexpected/wrong.
You would need to provide a full WBXML enabled log file for me to see what is getting sent by the phone.
If you click through to my user profile by clicking my username to the left of this post, and use the Send a Message link - you can send me a private message - include in that message an email address that you use, and I will send you instructions on what to collect and where to send it.
By the way, are you still seeing these errors?
My z-push log is getting filled with:
11/04/2014 09:12:42 [ 4835] [WARN] [user@domain.tld] /var/www/domain.tld/z-push-zimbra-backend-59/zimbra.php:1519 Undefined property: stdClass::$perm (8)
Sent you a message.
The "Undefined property: stdClass::$perm" error seems to have stopped. "Illegal string offset 'tag'" still gets reported on most commands
Hello!
Do You know when Android started supporting Multiple Folders? I'm trying to do the same thing (multiple calendars) on Android 4.3.1 and I have no luck with either 56.1 or 59...
PS: Thanks for support!
Multi calendar support is added in Android 4.4. When you're at Android >=4.4 you can enable the support in the latest z-push-backend by adding your useragent on line 787 of zimbra.php as described by LiverpoolFCfan in https://sourceforge.net/p/zimbrabackend/support-requests/81/#32e4.
LiverpoolFCfan has fixed shared calendar appointments not being editable and wrongly showed as meetings. Don't know when he'll release the fix but I assume he wants to test it properly first.
Last edit: explorer129 2014-04-17
Just for Your consideration - there is Free SolCalendar App for Android that allows You to syncronize whole dav directory - http://zimbra.example.com/dav/username@example.com/
It supports multiple calendars in Android 4.3.x and probbably earlier. It also sync native Android Calendar.
Thanks for reply and clarifications!
Last edit: Leszek Piątek 2014-04-17
The fix adds Android/4.4 to the list of known user agent strings that handle multiple calendars.
The fix will allow appointments (no attendees) to be moved between calendars. It is not possible to move meetings (with attendees).
It will be in Release 60. Code is available as interim version 59.2 in the Code repository.
Closing ticket. Fix will be in Release 60