Loading...
 

Calendar Sync

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

date.png (5.17 Kb)
  1. This is a suggestion of a project to enhance Tikis PIM ability.

  2. 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

  3. First we should check out, wich technologies we need and what we do have built in already.

  4. Should Tiki behave like an iCal / CalDAV client or server or both?


An example usecase

I got a usecase, where the board of an association is looking for an easy to maintain Online Calendar and the option for Groupware Capabilities. The president of the association uses Google Calendar privately and in business between international workgroups and does not want to log in to the assotiations website, just to check his associations appointments, when he is sheduling in his job.


=> 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.

T.


Thoughts (technicals)

There are a few standarts developing (or developed / introduced) that should be more or less easy to be included in Tiki.
  • 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

+While other calendar applications support CalDAV, Google Calendar only supports CalDAV using Apple iCal or Mozilla Sunbird.

Keywords

The following is a list of keywords that should serve as hubs for navigation within the Tiki development and should correspond to documentation keywords.

Each feature in Tiki has a wiki page which regroups all the bugs, requests for enhancements, etc. It is somewhat a form of wiki-based project management. You can also express your interest in a feature by adding it to your profile. You can also try out the Dynamic filter.

Accessibility (WAI & 508)
Accounting
Administration
Ajax
Articles & Submissions
Backlinks
Banner
Batch
BigBlueButton audio/video/chat/screensharing
Blog
Bookmark
Browser Compatibility
Calendar
Category
Chat
Comment
Communication Center
Consistency
Contacts Address book
Contact us
Content template
Contribution
Cookie
Copyright
Credits
Custom Home (and Group Home Page)
Database MySQL - MyISAM
Database MySQL - InnoDB
Date and Time
Debugger Console
Diagram
Directory (of hyperlinks)
Documentation link from Tiki to doc.tiki.org (Help System)
Docs
DogFood
Draw -superseded by Diagram
Dynamic Content
Preferences
Dynamic Variable
External Authentication
FAQ
Featured links
Feeds (RSS)
File Gallery
Forum
Friendship Network (Community)
Gantt
Group
Groupmail
Help
History
Hotword
HTML Page
i18n (Multilingual, l10n, Babelfish)
Image Gallery
Import-Export
Install
Integrator
Interoperability
Inter-User Messages
InterTiki
jQuery
Kaltura video management
Kanban
Karma
Live Support
Logs (system & action)
Lost edit protection
Mail-in
Map
Menu
Meta Tag
Missing features
Visual Mapping
Mobile
Mods
Modules
MultiTiki
MyTiki
Newsletter
Notepad
OS independence (Non-Linux, Windows/IIS, Mac, BSD)
Organic Groups (Self-managed Teams)
Packages
Payment
PDF
Performance Speed / Load / Compression / Cache
Permission
Poll
Profiles
Quiz
Rating
Realname
Report
Revision Approval
Scheduler
Score
Search engine optimization (SEO)
Search
Security
Semantic links
Share
Shopping Cart
Shoutbox
Site Identity
Slideshow
Smarty Template
Social Networking
Spam protection (Anti-bot CATPCHA)
Spellcheck
Spreadsheet
Staging and Approval
Stats
Survey
Syntax Highlighter (Codemirror)
Tablesorter
Tags
Task
Tell a Friend
Terms and Conditions
Theme
TikiTests
Federated Timesheets
Token Access
Toolbar (Quicktags)
Tours
Trackers
TRIM
User Administration
User Files
User Menu
Watch
Webmail and Groupmail
WebServices
Wiki History, page rename, etc
Wiki plugins extends basic syntax
Wiki syntax text area, parser, etc
Wiki structure (book and table of content)
Workspace and perspectives
WYSIWTSN
WYSIWYCA
WYSIWYG
XMLRPC
XMPP




Useful Tools