This page describes developments performed towards (semi)automated syncronisation between the Tiki Calendar and other remote calendar apps (through caldav, iCal or others)
Significant progress has been made to allow Tiki to serve group calendars via caldav protocol to remote calendar applications (other websites, desktop applications, mobile apps, etc).
1. Testing as Anonymous
I (Torsten) tried to get some kind of Anonymous setup running, but could not resolve. User Anonymous + arbitrary password did not work in any case for me. From my point of view, after getting in trouble with existing users, I think Anonymous is likely not a major issue to follow. I tested DAVx5 (former DavDroid) and there we need user/password aswell.
Anyway we can display a calendar publicly for Anonymous on the website (as public webfrontend) and we might be able to provide a standard registered user with no permissions other than viewing public calendars to provide to Anonymous public visitors ... in case that would be needed.
I think most use cases are with registered user groups and we should focus on Registered, in case you have no quick and easy solution.
What do you think?
2. Testing as Registered
Linux = tested with Linux Mint 19.2 Cinnamon of Kubuntu 18.04
Android = Android 7
2.1 Thunderbird on Linux
I (Torsten) got setup Registered with read-only and Registered with read-write permission, BUT it looks like that with Thunderbird we can only setup one user/password per domain/subdomain. This seems a Thunderbird issue, respectively limitation. I did not find an option to have different user/password combinations for different calendars of the very same (sub)domain.
I got 1, 2 and 3 calendars from site1 synced at the same time, but always with the permission of the same user, independantly, wether this user was the creator or a permitted user ... only measure was permission in Tiki or no permission in Tiki.
2.2 DAVx5 (DavDroid) on Android
There seem to be few Android CalDav Clients. DAVx5 is OpenSource and free from F-Droid (it costs coms money if obtained through Google PlayStore instead). DAVx5 seems to be the defacto FOSS standard CalDav bridge for Android somehow, thus a Tiki CalDav server should work with DAVx5, but there are some issues in some setups (simple sbuscription to public calendars works out of the box once you know the url to use).
Tests got a bit complex. I (Torsten) have some error logs to send you and there is an odd behaviour:
- I was able to reproducably add and sync an account to DAVx5 with the user "publiccalendar" and the latest created calendar-6. User publiccalendar is the creator of this very calendar.
- Strange and unexpected: up to now I was NOT able to add any account to DAVx5 with the user "torsten.fabricius" and I need more testing with DAVx5 on Android to get an idea what's going on from the user perspective ... want to give you more visible reports before you start digging.
- There might be another additional issue, as we have only a complete link for the calendar.
DAVx5 asks for kind of a base url for account, where then DAVx5 wants to check for various calendars, contacts and tasks.
It works with our url though, but not in all cases.
They obviously know about the various levels of implementation and offer like one account for Cal and one for Card, but one DAVx5 account (local registered "account" on the device) per one single calendar seems not to be what they are looking for in general.
2.3 Gnome Calendar on Linux
I (Torsten) just tried to add calendar-6 (publicly visible) and calendar-4 (limited to logged in users) to my local Gnome-Calendar and failed ... Gnome seemed not not recognise them as calendar link at all.
But then I went on and tried with Evolution. After setting up Evolution with the CalDav calendars from Tiki, the Gnome calendar displays the Tiki calendars aswell.
2.4 Evolution on Linux
The only one so far, that worked like a charm!
It was self-explaining, quick and easy to add two calendars with two different users and password whilst they had the exact same subdomain ... Evolution adds the url for the calendar with user/password on a per calendar base.
Added url and login credentials and it instantly synched the calendar from Tiki.
Currently I (Torsten) have added 4 calendars from site1.tikiclearosmail.suite.wiki (ask Torsten, Xavi or Marc to get an account on that server/site to test) with two different users at the same time.
I wanted to check wether I can setup a calendar with a user that is not the creator, but has permission. I have to re-check that a second time.
2.5 Kontact (by KDE) on Linux
It seems as if Kontact (by KDE, tested with Kubuntu 18.04, kontact v 5.7.3) is not able to sync a calendar using caldav, but only import events in a one-time-basis via some file.
3. Provisional Conclusions
There are a huge number of FOSS and proprietary CalDav clients for various Operating Systems (OSes) available and they all seem to have individual odds and issues and rely on different specific parts of the CalDav specifications.
It will be a hard route to identify the most important parts of the specifications and then implement that in Tiki to solidly communicate with enough clients on the most important OSes.
We could start to get solidly running implementations for one or two common FOSS clients per OS including Android and iOS.
For Linux we have a start, as there we have a working setup with Thunderbird (with some limitation compared to Evolution) and Evolution, more clients to test.
In Windows we have Thunderbird aswell and we should look for some other free calendar (I will look into that).
Afaik MacOSX has Thunderbird aswell plus some standard OSX calendar at least a free legacy client, if not FOSS. Test on MacOS is welcome.
Android might be a problem, as there are not a lot of free (FOSS, adfree) options and DavX5 testing did not look so good for the start for use cases different that the standard (sync a shared calendar with user/pass from a tiki site).
Currently we seem to have a Tiki calendar webfrontend that can be edited online from local (device installed) clients with Tiki user and Tiki permissions.
This is a huge step forward!
Project suggestion (as of 2017) - Calendar Syncronisation
This is a suggestion of a project to enhance Tikis PIM ability.
It should be achieved, that in other Calendar applications like "Google Calendar" Tiki Calendar events would be made visible and perhabs editable in second step
First we should check out, wich technologies we need and what we do have built in already.
Should Tiki behave like an iCal / CalDAV client or server or both?
An example usecase
=> Those event calendars used by him in the association should be made visible in his Google Calendar and therefore be synchronized just with one or a few clicks.
Thoughts (technicals)
- Tiki already has the ability to export the iCal format
- Tiki has some WebDAV ability
- CalDAV is a WebDAV extension that uses the iCal protocol
- A lot of applications understand iCal; some have CalDAV capabilities
- Google Calendar is limited in its CalDav capabilities (synchronisation only with a few apps in particular MS Outlook, Apple iCal and Mozilla Sunbird
- So Google can synchronise with a Open Source Application - Mozilla Sunbird - via CalDAV
Maybe there is an opportunity to get some inspiration or help by them?
Here some reflections (as of 2017), I mentioned in a Mail to the Devlist and the Userlist. Feel free to take out the information and reorganise together with more information and close this TAB, once the project develops further.
Cheers, Torsten
Start of Mail:
Hello @all from both lists, Devs and Users,
I got some minutes free time and played around a bit with Tiki and Google and more Calendars to get a bit more clear picture where we are right now in respect of calendar synchronisation.
I am referring to the page http://dev.tiki.org/Calendar+Synchronisation and will add my thoughts there aswell. Some reply from the community would be nice. So what's about?
Thoughts:
Before the TikiFest Strasbourg I started with thoughts about a possibility to realise a more or less automattical synchronisation between Tiki Calendars and Google Calendars (and between several Tiki calendars of different installations and maybe more applications).
- In Tiki we have iCal/ICS and .CSV export and .CSV import (iCal/ICS import is sadly missing!)
- in Tiki 6.x we have an ADDTOGOOGLECALENDAR Plugin, wich is already integrated in the view mode of Tiki calendar events.
=> that means, that if I view an existing Tiki calendar event, i can click on a button and send this event to my Google Calendar.
=> provided I am logged in in my Google Calendar aswell and I want to add it to my default GC, it is just two clicks:
1st click in Tiki - button add to google calendar and
2nd click in the then opening Google Calendar browser window - button save
=> optionally some extra clicks for choosing a different calendar in my google account (dropdown) or choosing a certain colour
- Google Calendar is able to import/export iCal/ICS
- There is a possibility to import/export iCal/ICS in Sunbird and its Thunderbird/Lightning variant
- There are ways to import/export and even synchronise between Google Calendar and 1) Apple iCal 2) MS Outlook 3) Mozilla Sunbird and Lightning (as far as I know synchronisation only Sunbird, but not Lightning)
- Not to forget the WebDav technique, wich we already started to implement in Tiki and wich is or will be used by Google Calendars in the form of it's extension CalDav
- As I use Linux on a PC Notebook and my focus is on multiplatform-FOSS, I did not (yet) look into MS Outlook and not into Apple iCal.
I tried the following:
Export and Import whole Calendars
- Export iCal aka ICS from Google Calendar and import to Thunderbird/Lightning and vice versa.
=> Both ways worked so far by: export - save an .ics file locally - import that file
- Export iCal from Google Calendar and import to Tiki and vice versa.
=> Export from Google in iCal/ICS is alright, but there is no way to export in .CSV
=> thus it is not possible to import a Google Calendar into Tiki
=> but it should be as easy/difficult to be implemented as it would be to add/code iCal/ICS import as a function for Tiki calendar
=> Export from Tiki in iCal/ICS and import in Google Calendar works, but in my case under all cirumstances broke the time stamps.
=> I had to manually correct the starttime and endtime in the iCal/ICS file before importing to Google Calendar ...
from
DTEND:20110803T130500
DTSTART:20110803T050500
to
DTEND;TZID=Europe/Berlin:20110803T150500
DTSTART;TZID=Europe/Berlin:20110803T070500
... to make it appearing with the correct start and endtime in Google Calendar, respectively with the time stamps than I added the events with in +Tiki at the first place (very bad with more than a few test events).
=> note1: either in my Tiki installation and in my Google Calendar the same time zone is choosen, but the export file from Tiki "moves" the correct times two hours in advance (Europe/Berlin=GMT+1 day saving time will be GMT-1 day saving time aka GMT +/-0 standart time) in the iCal/ICS file from Tiki.
=> note2: to get the right iCal/ICS export file from Tiki, the export must be triggered in the right view mode - if not, it can happen, that only one of several events will be triggered in Tiki and eventually not be updated in Google Calendar.
- synchronise/export the Thunderbird/Lightning Calendar by the "publish" function
=> That did not work, but maybe due to a lack of my knowledge
Export and Import single Events
- copy an event from Tiki to Google Calendar by using the ADDTOGOOGLECALENDAR Plugin Button, wich is already integrated in Tiki 6.x Calendar (or earlier)
=> this is quite easy, but at the moment just and only possible for single events
=> maybe this plugin could be a starter to make it possible to publish complete Tiki Calendars in personal Google Calendars? That would be great and maybe give Tiki a perceptible unique selling point in the field of client/server based PIM software (Tiki is a Groupware!)
- => I have read in several big software communities forums, that Google Calendar Synchronisation is an ongoing unsolved issue all over the place (for ex.: Typo3, egroupware and others)!
Reflections:
- Each event in Google Calendar, in Thunderbird/Lightning and in Tiki has a specific UID (unique identification number)
=> Google Calendar uses a unique code that identifies the event in my specific personal calendar -> for ex: UID:aiulqcv6fbillqqfro1a8iqq00@google.com
=> Thunderbird uses a long mostllikely same unique code -> for ex: UID:d68b4721-e73d-4c3a-aa7e-7a47697d867c
=> Tiki uses a code, that is based on the Tiki Calendar ID and is not suitable to distinguish between different Tiki installations -> for ex: UID:tiki-1-1
- Working between Google Calendar and Thunderbird/Lightning or from Tiki to Google there is one very good point:
=> Due to the UIDs, it is possible to change events in a Tiki Calendar and export/import the iCal/ICS file to Google Calendar again, wich does not add more events, but really updates the events (wich were imported earlier on).
- The bad point at the moment is the problem with the wrong time stamps DTEND and DTSTART generated by Tiki at export.
- Another bad point: The way Tiki builds its UIDs, in my mind makes it difficult to get synchronisation realised if a user is dependant to use different calendars from different Tiki installation either to synchronise them with Google Calendar, with Sunbird or Thunderbird/Lightning or between two or several Tiki installation (if iCal/ICS import would work).
=> I suggest, that the way Tiki builds its Calendar UID would be changed respectively extended; for ex. the domain/subdomain or a unique installation number could be added.
- To make real synchronisation possible with Tiki, the import function iCal/ICS to Tiki must be coded/added at the first place.
- The ADDTOGOOGLECALENDAR Plugin button should be extended in a way, that copying (and updating) complete Tiki Calendars would be same easy as copying single events to Google Calendar.
- Could we realise a somehow automatted synchronisation functionallity between Tiki and Google calendars?
- At the moment, the basic technique is iCal/ICS, but as far as I read on several places, in near future Google Calendar and other applications will move to the CalDav format, wich is kind of an extension of the WebDav format. In Tiki we have already started with WebDav implementation.
=> shouldn't we incorporate the CalDav into the Tiki WebDav development from start (at least from now). I mean just not to loose functionality when other applications might sease iCal support and switch to CalDav.
=> With early CalDav Support besides completing and fixing iCal/ICS support, Tiki should gain an even more powerful perceptible unique selling point than I already mentioned above.
I know, this might be a lot of stuff just for one mail, but I think this is a quite important project and the appropriate information should be shared completely.
I will add this to the Tiki page on dev.t.o now and hope for interest and replies by you devs and users.
Cheers
Torsten
End of Mail
Comments:
Related
- Description of Google Calendar
- Google mobile syncronisation
- Sync GoogleCal with Outlook
- Sync options with Google Calendar Sync
- Introduction to Googles CalDAV Support
Please mind the following sentence on the google website:
(Using other CalDAV-supported calendar applications)
+While other calendar applications support CalDAV, Google Calendar only supports CalDAV using Apple iCal or Mozilla Sunbird.
- http://code.google.com/p/sabredav/wiki/CalDAVIntegrationGuide
- https://www.ohloh.net/p/compare?project_0=DAViCal+Web+Client&project_1=SabreDAV&project_2=DAViCal+CalDAV+Server
- http://caldav.calconnect.org/implementations/servers.html
- CalDAV for Zeta Components, being added for PHProjekt
- Look at various PHP groupwares for ideas and hopefully code as well
- dmfs CardDAV-Sync, CalDAV-Sync and Contact Editor Pro Android client
- https://github.com/xbgmsharp/sogosync -> ActiveSync Implementation in PHP with caldav and cardav backend
- http://www.syncroton.org/ -> Syncroton is a PHP based implementation of the Exchange ActiveSync protocol, which is licensed under the LGPL V3.
- https://github.com/fullcalendar/fullcalendar/issues/690
- http://www.cyrusimap.org/imap/release-notes/2.5/x/2.5.0.html#caldav-and-carddav-support Cyrus is the mail server in ClearOS and will support JMAP in v3
- SabreDAV
- https://unterwaditzer.net/2015/kill-webdav.html
- https://github.com/agendav/agendav