FYI: aCalendar+ does this, using OpenTasks storage backend. (Not open source though.)
Allow syncing one or more contact lists or calenders to multiple accounts
Currently, creating an account means having a seperate list for contacts and calenders. This is fine if you want to sync a contact list or calender to one account, but not if you want to sync a contact list or calender to multiple accounts.
I’m not sure whats use case you have but generally Contacts and Calendars are always bound to one account in Android.
So this is more so a limitation of android than just a missing feature? I’m kind of new to the android scene. Use case is for backing up to different accounts for extra caution in case one service goes down, or something else pops up. I can also be sure that modifications I make to my contacts or calender are synced across all my accounts instead of having to manage seperate contacts and calenders on seperate accounts.
All the Contacts are stored in the contacts storage in Android (this is a seperate system app). Also DAVx⁵ is saving and reading it to/from this storage. However all other apps also have access (if you grant this permission) to this storage and can read and duplicate it into their own database. Facebook and Whatsapp does it like this if I’m not wrong…
Here is a nice view we made where you can see how it all works together:
Have a look at the image there.
Yes, it’s a limitation of Android, which only provides one set of SyncColumns per event or per contact: this only supports one sync adapter per contacts list or per calendar.
However at the server side there is no such limitation. Any authorised program can connect to the CardDAV or CalDAV server. So if your server is on your PC and you can find a PC program (or write one) which synchronises between the CardDAV server and your Google contacts list or between the CalDAV server and your Google calendar, you can get those synced up with your Android device.
It looks as if Google’s calendar and contacts will now act as CalDAV and CardDAV servers, so an alternative option might be to use those as your server instead of your own PC if you were using that. If you have a PC application that also talks to your server, it should be able to talk to Google’s one as well.