Syncing: How can it be this difficult?

OK, prepare for a rant.

I’ve been looking at ways to sync data across multiple systems. Basically I’m looking for something that can sync contacts, calendars and tasks across multiple devices. Ideally, this would be between a couple of desktop systems and my Android phone (preferably with a web interface for the rare occasions I’m without either). I don’t need to sync email due to using IMAP and the excellent clients available for it nowadays (personally I use Thunderbird 3.1 and K9 Mail).

Now I bet you’re screaming at me: “Why don’t you just use Google Contacts/Calendar/Tasks?”. Well currently I am, but in my ongoing quest to replace as many of these things with Free Software implementations, I was wondering what else I could use. Basically, the answer is that there isn’t anything that satisfies my requirements. There are lots of solutions which will do part of this, but nothing that will do everything. Having said that, I’m not against putting multiple components together to make a system that suits me better – in fact this is probably the best way to go about it. Probably the best project I’ve looked into is Davical, which seems to have the calendaring down, but web interfaces and Android support are a problem.

I guess what I’m really wondering is why isnt’ there some nice web application I can install that does all of the above, has connectors for popular platforms (i.e. Thunderbird and Android) and is Open Source? I mean really? I don’t know why this isn’t solved yet! How difficult is it, compared to say web apps like WordPress or Drupal? (I’m kinda hoping that I’ve missed something like this and some helpful person will step out of the Internet woodwork and point me in the right direction).

Of course if I come up with a solution I’ll be happy to share it. If anyone has any tips, please comment below.