Ray Ozzie, a guy that works at Microsoft, posted about a new standard he and his group are proposing for sharing data like contact lists, task lists, calendars etc called. Really Simple Sharing
I only glanced at the spec for a few seconds but as far as I can tell it's really missing the point. Maybe there is time to fix it I hope.
I've thought about this in the past because I've actually wanted to do this for a while. I wanted to make something that would let me sync my home outlook calendar, tasks, contacts with my work Notes calendar, tasks, contacts and my cell phone. Most of the sync software out there is not very happy with syncing across more than 2 devices. Also, few of them sync across the web (required for office to home) and those that do generally require a pay for service which is scary. Who wants someone else to have access to your contact lists or your calendar (they'd know when to come rob your house for example). So, I wanted to write some open source software you could install on your own server or website if you wanted to run it yourself or you could pay me if you didn't want to be bothered (data encrypted of course). Think movabletype vs typepad.
Anyway, that's not the real problem.
The real problem is not just syncing. The real problem is updating across systems that support different things. For example, my cell phone's calendar supports an item name, date−time, place, and several alarm settings. Outlook on the other hand supports an INFINITE AMOUNT OF DATA PER ITEM! You can categorize items, you can add custom fields, those fields can themselves be fields of fields. Some fields might be specific enumerations. Go look at all the info you can put in an Outlook contact vs a typical cellphone contact.
The real problem is not sharing your contacts or calendars. There is plenty of software to do that. The real problem is that they don't all contain the same data so keeping them in sync his not as simple has Ray's standard suggests.
So, here is a typical usage that no one handles and that neither Ray's suggestion handles. You have a contact in outlook with some of it's zillion fields. Name, Company, Address, Phone #, Email, Webpage, Birthday, Department, Manager's name, Assistant's name. You sync to your cellphone which only handles, Name, Phone #, Email. You meet them and they tell you they have a new phone number so you edit in it your cell phone. You come home, sync and now your outlook has lost their Address, Webpage, Department, etc etc etc. 😞
The real problem that needs to be solved is not updating by item but updating by field. Cellphones are never going to be as flexible as Outlook is for Tasks, Contacts and Calendar items. In fact no other system I know of is as flexible. Notes certainly isn't so just syncing between Outlook and Notes or Notes and Thunderbird is going to have all kinds of problems that Ray's suggestion is not going to fix.
The only solution I could think of was to have a server (it could be running on your home machine, your website or a paid service). The server would record an item and all the fields. When sending an item to another piece of software it would also keep a record of what it sent and and how it endup up being stored by having the receiving software send back a response. That way, if it got an item back (an update) it could check which fields changed and only update those fields. Since it would have a record of ALL fields no fields would ever be lost.
Here's a concrete example. I make a new calendar entry in Outlook with name, time and category. When I sync to the server Outlook would send something like
id: "outlook at home" name: "Dinner with Keiko" time: 2005-12-15 7:00:00pm category: project XYZ updatetime: 2005-12-10 06:15:03pm
when my PDA connects to get the latest items it would receive
name: "Dinner with Keiko" time: 2005-12-15 7:00:00pm category: project XYZ updatetime: 2005-12-10 06:15:03pm
then it would immediately send back any parts it understands as it stored them. Since my PDA software can't handle the "category" field and it only supports 15 letter names and since it doesn't support seconds it would send back this response.
id: "gman's PDA" name: "Dinner with Kei" time: 2005-12-15 7:00pm
The server would record that "gman's PDA" stored "name" as "Dinner with Kei" and time as "2005−12−15 7:00pm".
2 days later I get a call from Keiko while out and she needs to change the time to 8:00pm. So I update it on my PDA. When the PDA contacts the server it would send
id: "gman's PDA" name: "Dinner with Kei" time: 2005-12-15 8:00pm
The server can now figure out I didn't update the "name" field so my outlook will still say "Dinner with Keiko" not "Dinner with Kei". The server also knows not to delete the "category" field.
Of course that's just the tip of the iceburg because systems like Outlook suppose infinite customization all of which needs to be synced.
No, my solution is not simple. But honestly this is what NEEDS to happen for things to "Just work" because otherwise software that's less capable (most software) will lose important data when syncing with software that is more capable making anything but the most very basic stuff un−syncable. The standard suggested by Mr. Ozzie does not actually solve a real problem. All it does is try to provide a standard for the current ways of syncing. Those ways already exist they are just not standard, "Really Simple Sharing" would not fix any of the real problems.
So, there you go, free idea. Since I've got too many other things to do please make it so I can use it 😊