C'est ce qu'est censé faire iCloud tel que présenté dernièrement par Steve Jobs lors de son keynote de mai dernier.
Pour ma part, j'ai réussi cà faire ce que tu demandes mais en utilisant gmail et les google calendar.
Lorsque tu crées une adresse gmail, tu as en plus un calendrier associé que tu peux partagé moyennant la possession d'un URL assez compliqué (tu peux sécuriser l'accès avec login et mdp) dans ical tu peux paramétrer un compte gmail et il va automatiquement synchroniser les données. Tu peux faire pareil avec tes contacts.
Ensuite, lorsque tu paramètres ta boite dans ton iphone, tu la rentre en sélectionnant Mail Exchange et non Gmail. tu coches les 3 services (mails, contacts et ical) comme vous l'évoquiez et ça marche. sur le mac il est possible de forcer la synchro en cliquant sur isync l'icône en forme de deux flèches rondes situées dans la barre de tache près de l'heure.
Perso tout contact entré dans mon mac, iphone ou encore sur le site de google contacts de gmail est automatiquement synchronisé sur les autres supports. il est ainsi pas nécessaire de brancher son iphone sur le mac pour synchroniser les données (ce que je fais quasiment jamais)
Bien sur d'autres services de mail contacts calendar doivent pourvoir fonctionner de la même sorte (google est ma solution car j'utilisais gmail) L'essentiel c'est d'avoir un service centralisé sur internet (un cloud)