Synchronizing Calendars and
Address Books Between Macs for FREE

or

Making Any Mac into a Calendar
and Contacts Server

One feature
which is sorely missed by owners of multiple Macs is the ability to easily
share their calendars and contacts between their computers. There are
third-party software solutions, such as Mark/Space's The Missing Sync -
but they cost money. There are also web services that offer calendars and
contacts synchronization, but they either cost (such as MobileMe), or they are
not completely dependable and compatible (such as Plaxo and Google). In the
case of Google, the company is the first to admit that its calendar solution is
not completely compatible with iCal, and worse yet - its contacts solution does
not have individual first, middle and last name fields - which renders it
useless for the purposes of an accurate synchronization between Macs.

Apple has
another solution for you, except MobileMe - and that's to get a Mac OS X
Server. Among other things, the server edition of OS X has a built-in calendar
and contacts server. As of the Snow Leopard version, both are based on the
newest standards - CalDAV for calendars, and CardDAV for contacts. All you need
to do from your client computer is to subscribe to the server from within iCal
and Address Book, and you are all set for bi-directional sync.

Fortunately
enough, these portions of OS X Server are also open-source, and are known as
the Darwin Calendar and Contacts
Server. The two servers are still separate projects (written in Python and
based on the Twisted framework), and are very much under development. The
CardDAV server was only released in early 2010. Consequently, a lot of the
installation, configuration and operation is only half-baked, and it takes some
work to get to the point of the famous Apple "It just works" (well, they do
want you to buy OS X Server). Nevertheless, once you have everything up and
running, this is exactly what you get - the most dependable way to sync your
calendars and contacts, within a local network or over the internet, for free.
You can designate any Mac on your network to be the server, and it will serve
itself as well.

1. Setting
Up the Calendar Server

My tutorial
is based on the one found here (a
Google translation from German is available here).

First of
all, the version of Darwin CalDAV under development now is version 3. Since it
is actively developed, many times a check-out snapshot simply does not work. We
will use, therefore, version 2.3

Using terminal, Create
a new folder in your home directory, and cd into it:

This will take a few minutes,
and at the end will display the revision number which was downloaded. Once it
is done, cd into the subfolder CalendarServer, and run the command to perform
initial installation:

cd CalendarServer
./run -s

This can take up to 10 minutes.
The computer will download the necessary extensions to Python, as well as the
Twisted framework, and install them alongside CalendarServer in
your calendar folder. When you see"Using python as
Python"- the
installation is done.

Now it is time to configure the
server. The basic configuration files are stored in the folder CalendarServer/conf.
The server first accesses a file named caldavd-dev.plist,
but this file does not
yet exist. Using the Finder, duplicate the filecaldavd-test.plistand then rename
it:

Double-clicking the
file caldavd-dev.plist will open it in the property list editor.We need to modify several
properties:

1. The string ServerHostName. If
you are going to use the server only on your home network, you can give it the
computer's internal IP address, such as 192.168.1.3. This will also work if you
plan to connect to this computer over the internet by using a VPN. If you plan
to connect to the computer using a dynamic DNS service, such as DynDNS or NoIP,
you need to enter your assigned address here (make sure the router forwards the
ports indicated below in the file to the proper computer). Finally, if you plan
to use an SSH tunnel to connect to this computer, then put the local host's
address: 127.0.0.1.

2. The array
BindAddresses. Click on the little arrow to the left of the array, so it points
down. Now click on the button to the right of the line to add items to the
array. We need to create two strings: one for the localhost (127.0.0.1) and one
for the computer's address on the local network (in this example it is
192.168.1.3). You may also need to add your dynamic DNS address as a third
item, if you choose to use one.

The top of the file
should look similar to this:

Before we can start
testing our server, we need to add user accounts. The proper configuration file
is located in the folder CalendarServer/conf/auth,
and it is named accounts-test.xml.
First duplicate it in Finder so that you have a backup of the original, and
then open it in TextEdit.

It took me a while to
figure out which is the best, most stable way of handling users and groups in
this file. This is what I concluded: for each set of calendars (meaning a set
of "Home", "Family" and "Work" etc. that an average person uses) we need to
create a separate user and a separate group. Whoever connects with the
credentials of this user later on will be presented with this group of
calendars. Below you'll see the code you need, starting with the line <accounts realm="Test
Realm">, to create two individual sets and one that can be used as a
shared set (meaning, all users will login with the username "shared" and the
proper password). Please note, that at this time you should NOT add a guid line for any of
the users. We will do that later. You will need to substitute all the
upper-case uid
names and passwords with lower-case names and suitable passwords (the passwords
can be upper- or lower-case, of course).

At this point, without
closing the terminal, open iCal. Go to the iCal menu, and choose Preferences.
Open the Accounts tab, and click the + sign on the bottom left. A dialogue will
open, asking you to configure the new account:

Choose to add a CalDAV
account type, and fill in the username and password for one of your users. The
address should be the same one you defined earlier as ServerHostName in the
plist file. The port chosen above is for SSL connection, which is always
recommended. NOTE: Do NOT add more than one user at this time - the reason for
this will become clear in a moment.

Next you will be
presented with an SSL certificate warning. By clicking the little arrow for
details, you can choose to add this certificate as a permanent exception, and
thus this message will not bother you again.

After iCal finds the
settings on its own and configures the account, you will be presented with a
screen like this:

The only thing that
you may wish to modify is the description. The description you choose will be
the title of the calendar group on the left bar of iCal. After modifying it,
you may close the Preferences dialogue.

You will now see that
a new group of calendars appears at the left iCal bar. It includes only one
calendar, named "calendar". You may rename it and edit its color if you wish,
but this is the main calendar of this group, and can only be deleted if you
unsubscribe through the Preferences dialogue. You can, however, add additional
calendars to this group, through the File menu:

You can now export
your old, local calendars one at a time, and import them to your newly created
calendars. When you are done, quit iCal.

If everything worked
so far, then we are almost set. Almost, but not quite. The problem is that the
CalDAV server identifies the calendar groups (meaning, the users) by assigning
them unique, long guid values. We have
to locate the newly-created guid value for our
first user, and add it to the file accounts-text.xml, or
the server will not know which calendar belongs to that user the next time we
run it. This is why we must add one user at a time to iCal - so that we can
identify the proper guid for this
user.

You must perform the
following for each user you add through iCal, after each addition. Using
Finder, go to the following folder: HOME/calendar/CalendarServer/twistedcaldav/test/data/calendars/__uids__.
If you did everything correctly so far, there should be only one subfolder (see
note below if there are more), with two random letters as its name. Enter that
subfolder, and you will find another, similar one. Enter that one as well. The
next subfolder's name is the guid we are looking
for. Click on its name once, make sure you don't delete it, and click Command-C
to copy it to the clipboard:

Note: If there were
more than one folder inside __uids__, then go
inside the subfolders until you reach one called "calendar". If you already
imported your calendars, it should be full. If it is empty, then this is the
wrong subfolder and you should go back to __uids__ and try
another one.

So now you have the
proper guid in
your clipboard. Reopen the file HOME/calendar/CalendarServer/conf/auth/accounts-test.xml
in TextEdit, and add the following line just below the uid line of the
proper user:

<guid>PASTE_THE_GUID_HERE</guid>

Save the file, and now
go back to the terminal. To shut down the current instance of the server press
CTRL and C. Issue the ./run command again,
wait for the messages to stop, and open iCal to see if everything remained as
it should. If it did, you can go on and add the next user, repeating the
process for identifying and copying the guid value (yes, some
of the times this will involve adding a user on iCal on a different computer,
and then coming back to the server computer in order to edit the xml file).
Don't forget to restart the server after every such addition. This process
needs to be done only once for each uid in the xml file,
regardless of the computer iCal was run on.

We are almost done!
Everything is functioning, all the users have been added, and all we need to do
is to make sure that the server runs in the background. Check and see if there
is a folder named LaunchAgents in HOME/Library. If
there isn't one, create it. Download this file and place it there.
The file will make sure that when you log on to the computer, the server will
start running in the background (give it a minute before you open
iCal).

If you use iSync to
synchronize your calendar with your mobile device, then launch iSync and click
on the icon of that device. The window will expand, and you'll notice that the
list of calendars to choose from now includes the ones on the server. Choose
the calendars you wish to synchronize, click on "Device" at the top menu bar,
and choose to reset the device, so that you are spared resolving conflicts in
your appoitments. This is important, as iSync will view all of the appointments
you previously copied to the server as new ones, and will not know to relate
them to the existing information on your mobile device.

If you plan to
configure the Contacts Server as well, you may want to wait until the end of
the next section before you perform the reset.

That's it! Now it is
time to set up the very very new CardDAV Server for contacts.

2. Setting Up the Contacts
Server

The CardDAV Server,
which was released in the beginning of 2010, is so new, that it has no stable
version. Additionally, the most recent versions (when these lines are being
written) of Address Book (5.0.1, revision 864) and of iSync (3.1.0, revision
585.0) are not yet fully compatible with the CardDAV Server. Nevertheless, we
can still get it to work without any glitches.

Basically, the setup of the
CardDAV Server is very similar to that of the CalDAV Server. It is obvious that
these two projects are going to be merged, and that actually creates, at
present, collisions between the two servers.

The first thing we need
to make sure of, therefore, is that we install the CardDAV Server in a
different folder than the CalDAV Server. If they are installed in the same
folder, both will try to impose the revisions of the Python extensions and the
Twisted framework that they work with, and consequently - disable each
other.

This will take a
couple of minutes, and will be finished with the announcement of the revision
that was checked out (in my case, it was 4964). Next we need to run the basic
installation:

cd
ContactsServer

./run -s

All of the supporting
libraries will be downloaded and configured. The final message, after close to
10 minutes, will be "Using python as
Python". If for some reason you get an error message, that means that
the revision you checked out is broken. Delete the ContactsServer folder, wait
a couple of days for the developers to upload a new revision, and try again.
Sorry, I have no better advice.

Once the basic setup
is done, we need to create the configuration file that the server will use.
Similarly to what we did with the Calendar Server, use the Finder to go to
HOME/contacts/ContactsServer/conf, duplicate the file carddavd-test.plist
and rename it to carddavd-dev.plist:

Now we need to edit
this file. Double-clicking on it will open it in the propety list editor. As
before, the string ServerHostName needs to be either your
computer's IP address within the local network, its dynamic DNS address if you
are going to contact the server remotely through the internet, or the localhost
address (127.0.0.1) if you plan to use an SSH tunnel for the
connection.

Although we did not
change the values of the HTTPPort and the
SSLPort when we
configured the Calendar Server, now they are of concern. This is because as
long as the two servers are separate entities, and for the time being they are,
their ports must be different. The default HTTPPort is indeed
already different, but we must change the SSLPort here to a
different value, such as 8444.

Next we need to expand
the array BindAddresses by clicking the small triangle to its left. We need to
add new strings (by clicking on that line and then on the little icon to its
right) with all the addresses that apply to this computer: 127.0.0.1, the
internal network's IP address, and the dynamic DNS address, if it is used.
Press the Enter key when you are done editing a line, and don't forget to save
the file.

The edited file should
look similar to this:

Before we can start
testing our server, we need to add user accounts. The proper configuration file
is located in the folderContactsServer/conf/auth,
and it is namedaccounts-test.xml.
First duplicate it in
Finder so that you have a backup of the original, and then open it in TextEdit.
The following is an example of what you should change the file into, starting
from the line <accounts realm="Test
Realm">:

Once again, we keep
the admin user,
and add another for our own purposes; change everything in capital letters to
suit your needs. Do not add guid lines yet
- we will do that soon. For each shared contacts database use its own username
and its own group, and configure later on the address book applications on all
of your computers to use the same username for the same database.

It is time for us to
start the server for the first time:

cd
cd contacts/ContactsServer
./run

There will be a long
list of messages, which will stop with the words 'peopleNode':
'/Search/Contacts', 'queryPeopleRecords': True}. Do not close the
terminal. Now we need to contact the server through its web-page, so that it
will create the folders and the guid for our account.
Open a web browser, and enter the address http://YOUR_LAN_ADDRESS:8800.
The page should look like this:

Click on the
linkprincipals. You will be asked for a
username and password - provide the ones you configured in the accounts file.
Next click onusers. Finally, click on your
username. The following page provides us with plenty of necessary data, so keep
it opened.

As was the case with the
Calendar Server, we need to add theguidvalue to the fileaccounts-text.xml.This is theguidvalue that appears on the
webpage underPrincipal
Information:

Mark thatguidvalue, copy it to the clipboard
with CMD-C, and paste it into the file
HOME/contacts/ContactsServer/conf/auth/accounts-test.xml as a new line under
your username'suid:

<guid>PASTE_THE_STRING_HERE</guid>

If you are using more
than one user, then do the same for each of your users. Now restart the server:
click on the terminal window, and press CTRL-C; then type ./run
again.

It is time for us to
configure Address Book. Keep the server running, and open Address Book. Go to
the Address Book menu at the top, and choose Preferences. Click on the Accounts
tab, and then on the plus sign on the bottom left. Add your details to the
following screen according to this example:

Now it is time for us
to make two annoying discoveries:
1. Unlike the CalDav Server, the SSL implementation of the CardDAV Server is
broken (as of the current revision). We have to use an unsecure connection,
which is less than ideal (and thus it's recommended to connect to this server
later through a VPN or an SSH tunnel).
2. Apple did not finish debugging and refining the CardDAV implementation of
Address Book. You received, most likely, the following message:

Indeed, click Create.
In the screen that follows enter a description of the server you added, make
sure the username and password are correct, and set a reasonable interval for
synchronization. 15 minutes is a good idea. The "automatically" option, in my
experience, does not work very well. Additionally, you will notice that whereas
iCal has the option to manually refresh calendars, Address Book has no such
option with contacts servers - for the time being.

Unfortunately,
clicking on the "Server Settings" tab will be less than helpful, since the
current version of Address Book does not let us edit the server path. We will
have to do that manually. Quit address book, and using Finder, find the file
HOME/Library/Application Support/Address
Book/Sources/LONG_GUID_STRING/Configuration.plist. Double-click the file. We
are interested in the string servername, which
should be modified to this value:

http://LAN_ADDRESS_OR_DYNAMIC_DNS:8800/principals/__uids__/YOUR_GUID

Modify the other
values according to the example above.

Launch Address Book.
On the left column you should see an active spinning icon just to the right of
the server's description - this means that Address Book was configured
correctly and that it is synchronizing with the server. Once it's done you can
drag all of your contacts onto the server's description, and after a short
while they will all be copied. Do not delete them from "On My Mac", unless you
are absolutely sure you will not need to use iSync. Using iSync requires a
local copy of the contacts; more on the subject later.

We are almost done.
The only thing we need to do now is to configure the server to run in the
background from the moment you log on to the computer. Use Finder to check
whether the folder LaunchAgents exists in your HOME/Library folder. If it does
not, create it. Download this
file and place it there, and the next time you log on to your computer the
server will run automatically in the background.

That's it! If you
don't use iSync, then you are done. You can delete the local copy of your
contacts (although it is prudent to back it up first through File -> Export
-> Address Book Archive), and set up Address Book in a similar way on all of
your other computers. You will have to copy the file we modified manually,
Configuration.plist,
to each client computer.

If you do use iSync to
synchronize your contacts with your mobile device, then things are not going to
be as simple as they were with the calendars. Once again, Apple's
implementation of the CardDAV server is incomplete. iSync cannot synchronize
contacts from a server as it can synchronize calendars. I tried all kinds of
hacking methods to resolve this issue, and ended up with SmartFolders in
Address Book as the most dependable solution.

Launch Address Book,
and click on "On My Mac" in the left column. Then click on File at the top menu
bar, and choose to create two groups (actual ones, NOT smart ones): call one
"My Contacts" or something similar, and call the other "iSync Contacts". Now
drag all of your contacts (or, rather, the ones you want on your mobile device)
to BOTH groups.

Next click on "All
Contacts" in the left column. Using the File menu once more, choose to create
two smart groups according to these examples:

When you are done
creating all the groups, your Address Book should look similar to
this:

Next, launch iSync and
click on the icon of your mobile device. The window will expand, and you will
see that you can choose which of the groups you created to synchronize. Choose,
naturally "iSync Contacts". Now you can use the "Device" menu to reset your
device and make sure there are no conflicts between the information already on
it and the newly created calendars and contacts on your computer.

In the future, any contact
you create on your mobile device will appear, after synchronization, in Address
Book's "iSync Imports" smart group. It will be simple enough to drag it into
both the Contacts Server and into "My Contacts" group (it will already be in
the "iSync Contacts" group). Once you dragged the new contact into both
locations, it will be on your server and no longer a member of that smart
group.

On the other hand, any
contact you create on your Mac will appear immediately in the "New Contacts"
smart group. You will need to drag it into three locations: the Contacts
Server, the group "My Contacts" and the group "iSync Contacts".

I leave it to the
enthusiastic reader to create an Automator workflow or an Applescript that
automates all of this, and to Apple to fix that oversight in iSync.

Enjoy your synchronized
calendars and contacts!

Comments:

Name: Will E-mail: wmbrook@hotmail.com Date posted: May 08, 2014 - 02:16 pmMessage: Does anyone know of a forum where this install is discussed? I'm having problems with the install on my iMac with Snow leopard and could use some help.

Name: Williah E-mail: wmbrook@hotmail.com Date posted: April 28, 2014 - 02:12 pmMessage: I'm in the process of setting up 5.2. Definitely a neub to all this.

KG, at what stage did you enter your two variables?

After I created the accounts & groups, I ran it and received an Atributeerror: "modul' ojbect has no attribute "check_output" Wondering if anyone has seen this.

Name: KG E-mail: PrivateDate posted: April 02, 2014 - 03:06 pmMessage: I've tried this on Mavericks (10.9.2) using XCode 5.1.I checked out the 5.1 release (which seems to be the latest one) instead of the 2.3 version used in this guide.I had to set two environment variables

Name: Em E-mail: PrivateDate posted: October 26, 2013 - 04:18 pmMessage: I realize that this is a very old thread, but it may have become more relevant this week (October 2013). With the release of OS X 10.9 Mavericks, Apple no longer supports USB sync for Contacts and Calendar. Customers must sync their contacts and calendars over the Internet and store them on Apple's iCloud servers. Many people object for varied reasons - personal privacy, security concerns (what if the iCloud servers are hacked in the future?), etc. Your thread may give people another tool to sync their contacts and calendars without resorting to iCloud.

Applying patches to PyXML in /Users/genius/calendar/PyXML-0.8.4..../run: line 309: cd: /Users/genius/calendar/PyXML-0.8.4: No such file or directory

Name: newuser E-mail: Date posted: March 24, 2013 - 12:14 amMessage: To geniusengine et al.I have successfully set up the latest ical server (4.2) on Lion, which uses postgresql for data storage (installed via macports), and with LDAP for authentication. Perhaps it also works on 10.5.8

Name: geniusengine E-mail: PrivateDate posted: March 01, 2013 - 05:31 pmMessage: I realize this is from 2010, but shouldn't it still work for a Mac running 10.5.8? After doing ./run -s I get:

I'm currently putting a version of this onto an iMac running snow leopard and have plans to put it onto a linux server as well. Maybe I could give you some updated information when it's complete. Should I just contact you at Low End Mac?

Indeed, my article is old. I have since been using Google's services in conjunction with my Macs. I fear I have no time to revisit the concept at the moment. Feel free to use this article as a starting point to your research, and to re-use any portion of it you see fit. If you are successful, send me the link to your tutorial and I'll post it here.

Name: Dan Knight E-mail: PrivateDate posted: March 08, 2012 - 11:59 pmMessage: Ron, I use older Macs and versions of OS X, and I am frustrated that iCloud will not work with anything prior to Lion. I want to set up a server on my Intel Mac mini (OS X 10.6) so my OS X 10.4 and 10.5 Power Macs can sync iCal and Address Book. Your article is now two years old, and I'm wondering how much has changed since them. Perhaps we could work together to update this and adapt it for Low End Mac, where we support a lot of people using "outdated" Macs and versions of OS X.

Name: lukas E-mail: PrivateDate posted: February 29, 2012 - 06:02 pmMessage: quick question, I accidentally put the first folder one level up before starting the installation. Effect - my home directory has bunch of folders and files.. what should I do? move them, re-install?

Name: Ron E-mail: Date posted: December 17, 2011 - 11:58 amMessage: I am afraid I no longer maintain this thread. I am working now with a combination of Google, ios and os x, and it all works nicely for me. With iCloud, I think we don't really need this tutorial. Perhaps just for small business environments. Take what you can from this, and good luck!

Name: Turbovin E-mail: PrivateDate posted: December 17, 2011 - 12:51 amMessage: Not sure if this threadcis still active. My requirement is to have multiple gmail accounts as the sources of contacts - family common, work, wife's work, son's school and so on. Would like to keep family common synced across all the devices - 3 iphones & 2 ipads + 1 mba and each individual account on top of the common one.

Ical and mail in lion along with an App called today has solved has solved the calendar, tasks and notes issue on the mac side, but the adress book still remians - especially on the mac. The iOS devices are fine to handle all this even the multiple contacts. An app called gTasks takes care of the tasks, and a little tweaking makes notes work with gmail notes.

Had to physically import the contacts seperately from gmail in to the Address Book. That piece of book is the only out-of-sync db on my mac.

I am not a mac person. Am a very recent convert and such have lots of legacy Windows stuff still being used including Microsoft Windows Home Server.

I thought, moving to Apple, everything will be seamless and smooth. Maybe, I thought wrong.

I am almost there but keep getting problems with TCP listening. If I try the SSH route and using only 127.0.0.1 in the caldavd-dev.plist can I perform the next steps from my computer or do I need to be outside of our internal network?

Or, do I have the IP of this computer and 127.0.0.1 listed. Ideally, I would like to access externally and we do have a static IP so am I best to insert all IP's and open ports etc?

Sorry for the long post, but I am very keen to get this working as a number of our workers are juggling more than one diary.

Cheers

Stu

Name: Marcelo Guinea E-mail: PrivateDate posted: April 12, 2011 - 05:32 pmMessage: I had problems with Xcode 4 since it doesn't have the PPC assemblers required. Eventually, I had to copy back the ppc assemblers from a previous version of Xcode, the folders ppc and ppc64 from the location

Name: stacey lang E-mail: stacey.lang@gmail.com Date posted: January 22, 2011 - 12:06 amMessage: id like to totally delete this from my system now as i'm using mobile me (for many reasons having to do with off-site users), and it's continuing to send commands. how do i get stop?

Name: Dave E-mail: PrivateDate posted: December 28, 2010 - 06:29 amMessage: @Joeri - yes, the site appears to be gone. Try downloading Pyflakes from http://pypi.python.org/pypi/pyflakes and comment out the line 'svn_get "Pyflakes" "${top}/Pyflakes"...' in build.sh

Name: Christian E-mail: PrivateDate posted: October 19, 2010 - 07:17 pmMessage: Joochen:they have merged now. But you can inactivate caldav in the settings-files if you want.

I just successfully installed CalenderServer on Ubuntu, with both CalDAV and CardDAV working.Both Calender and Contacts work in OS X 10.6 (ical and addressbook) and on iPhone 3GS (iOS 4)

I have tried to get i to work for a month. And removed and redid allt steps and now it works great!Read the comments on this post before you ask questions :)

Name: Joochen E-mail: PrivateDate posted: October 12, 2010 - 09:43 pmMessage: Hey folks, am I blind or are the svn sources not available anymore on the site: svn checkout http://svn.macosforge.org/repository/calendarserver/ContactsServer/ does not work ... Did the project merge the sources of CalendarServer and ContactServer? I only want to install the CardDav contactserver. Can anyone help me? Thx in advance!

Name: Dani E-mail: contact@buechele.cc Date posted: September 16, 2010 - 04:34 pmMessage: Connecting to the server using Address Book (Snow Leopard) worked fine. But I have trouble accessing it via iPhone (iOS 4.1). Can anyone help me?

Thanks a lot.

Name: EkDor E-mail: PrivateDate posted: September 01, 2010 - 04:30 pmMessage: Ron, sorry to hear your not interested any more; I was more than pleased to find this tutorial and think it's a nice alternative to buying and installing Server X. I don't want to do that as I'm using an iMac that is in use already and have no desire to mess with reinstallation, or pay for something that I feel should be included with the software I already paid for.

I am about to try the CardDav tutorial as that bit I haven't got running via other means yet. For anyone who is having trouble with CalDAV follow this link:

http://www.timefold.com/osx/tips/webdavical.html

I followed it and worked well. The author does assume a certain amount of familiarity but I managed and mine is quite low. It is a different approach. It also works without user log-in being required as it's setup under its own user _www which starts when the computer is booted. Only issue is each calendar can only be edited by one user. I assume this is also the case with the method outlined in this tutorial?

I'll try check in the near future if anyone has questions about the tutorial I posted link to here. I might be able to help. Cheers,.

Great to see CardDAV/CalDAV becoming more popular vs the closed-solutions such as Activesync

Name: Ron E-mail: Date posted: August 29, 2010 - 06:02 amMessage: Guys, I never ran into this problem. As I said in the tutorial, this is all highly developmental, so things must have changed and broke the simplicity of the build. Beyond Ken's suggestion I cannot help. There has to be a build.sh file in the support directory.

Another confession: I am not highly motivated to rework the tutorial since I have purchased an Android phone. The Google method of syncing works well for me.

Name: EkDor E-mail: PrivateDate posted: August 29, 2010 - 03:27 amMessage: I have got the same error as Sean. Have tried a couple of times. I have no "build.sh" file what so ever to edit. But realised I didn't have xcode installed, as far I could tell. Have installed it and started fresh.

thanks for the great guide. CardDAV and CalDAV up and running. Both together after copying carddav-dev.plist to calddav-dev.plist and activating both services within the file.

iphone with ios 4 suports both services. my problem: I need a carddav-client to publish my local address book under 10.5 (leopard) - does anybody has an idea??

thanks in advance.

Name: Ron E-mail: Date posted: June 22, 2010 - 02:46 pmMessage: The service is one now. As for open directory - should be possible, but it is not documented anywhere. You can experiment, and if it works - I would love to incorporate your results into the tutorial.

Name: john E-mail: PrivateDate posted: June 21, 2010 - 10:07 pmMessage: Although they are bundled together now, do they still run as separate services? Is there a way still run just one (for instance the CardDAV service?) also -- is there a way to tell carddav to use open directory for authentication instead of building an XML file of users and groups?

The tutorial was tested and written on 10.6. I cannot help you, since I do not have a machine running Tiger.

Name: Sebastian Adorján Dyhr E-mail: PrivateDate posted: June 16, 2010 - 08:52 pmMessage: HiAm I missing something, or does the software only work for 10.5/10.6?I've managed getting the svn from the server after digging around and changing the path.

I had to update my python and link to the right distro 2.6 instead of the by Apple supplied 2.3

But then I get errors from the run-command complaining about problems with PyOpenDirectory

I tried googling and it seems PyOpenDirectory doesn't work on 10.4, is that so?

/Sebastan

Name: Ron E-mail: Date posted: June 04, 2010 - 12:38 pmMessage: As I posted below, the calendar server and the contacts servers have merged. The new download command is:

Name: samiam E-mail: smarks.other@gmail.com Date posted: June 04, 2010 - 01:21 amMessage: Hi, I managed to get the ical server up and apparently working, but when I tried to get the contacts server working, I had less good luck. I assume the run command should run both now? If not, I could not find

cd contacts/ContactsServer./run

Here's the error I get is:

Safari can’t open the page “http://10.0.1.11:8800/” because Safari can’t connect to the server “10.0.1.11”.

is in my plist as per instructions. any debugging hints appreciated. thanks.

I am sorry this did not work for you, but it is also the least secure way of connecting to the calendar remotely.

Two things you should know:1. If you were trying this configuration from within your home network, many routers don't allow loop-back. That means that your router cannot resolve the no-ip address of itself. You should try it from an outside location.

2. It is safer and quite easy to use an SSH tunnel for the connection. Just activate "Remote Login" from the sharing tab of the System Preferences of the server, and forward port 22 in the router to this computer. Configure the server and the client so that the primary connection is to 127.0.0.1.

I sent you specific instructions via email. I will add them to the tutorial soon.

Name: Cal E-mail: PrivateDate posted: May 23, 2010 - 01:50 amMessage: I'm using no-ip on leopard (10.5.8) and I can't seem to get the calendar server to run through the ports. In caldavd-dev.plist, I've entered the name of the URL (not the ip) in the ServerHostName field and in the BindAddresses array, I've entered the 127.0.0.1 (localhost) and the local ip from the Airport Base Station that's assigned to the computer. The third field has the name of the URL again, not the ip.

In Airport Utility, I've passed UDP and TCP ports 8008 and 8443 through to the IP of the server. No joy. If I skip the no-ip URL and just use the IP and localhost, everything works great, but when I try using it I get an error "twisted.internet.error.CannotListenError: Couldn't listen on :8008: (49, "Can't assign requested address")."

Any ideas? Thanks!

Name: Ron E-mail: Date posted: May 15, 2010 - 11:12 pmMessage: Well, here are some tips until I find the time for a general rewrite:

The ContactsServer branch has been merged into the general CalendarServer trunk. To check out the combined version, your svn command should be (from within your home folder):

Building PyXML...unable to execute gcc-4.2: No such file or directoryerror: command 'gcc-4.2' failed with exit status 1

I am using an Intel iMac running 10.6.3.

Any ideas?

Thanks

Name: Ron E-mail: Date posted: May 13, 2010 - 05:43 pmMessage: @Sam:

I need to find some time to see how the integrated server (both CalDAV and CardDAV) is coming along, and update my tutorial. It is possible that they removed the 2.3 version. I am sorry I can't do it right away.

@Ritchie:

The Pro version exists. It is called "Mac OS X Server", and you can feel free to purchase it. Since the core of the server is open source, Apple had to release it - but the GUI goodness is exactly their excuse for charging money.

On the up side, the moment you are done with setting up - it simply works, and you don't have to touch any configurations again.

Name: Ron E-mail: Date posted: May 04, 2010 - 04:01 pmMessage: No, the guide is not updated. I also found a solution for reliably launching the server at login, which I have not yet included. Can you give me the link to the merged server? I'll test it and rework the guide.

LDAP is a directory server - you can poll information from it, but you cannot synchronize. CardDAV allows sync.

Name: lg E-mail: PrivateDate posted: May 04, 2010 - 03:12 pmMessage: Is the guide updated for the merged versions of the servers?

Best regards and thanks for a very detailed guide!

(btw, what is the relationship between CardDAV and LDAP - can they be integrated?)

Thank you for the input. I am sorry for the delay in my reply. I did not try switching users on the client machine; it seems to me that you have to make sure that the data directories are separate, and that different users and different groups are defined in the xml files.

Please post again and include a private email address, so that I can contact you. I want to hear more of your progress and experiences, and if indeed the two projects have merged - I need to update my guide.

The current problem is, the I setup on user on the mac like your tutorial. Now I switched to another user - I set it up the same way. But it doesn't show the contacts. Caldav works as expected. In the accesslog on the server I only see some PROFINDs ... in Adressbook it just spins for a second. If I create a Card - it's not save on the server.

But nevertheless I'm trying to get it further :)If you have any suggestions - please let me know.

btw.: I'm using svn trunk - as carddav was merged. It's running on a linux server. For the one user it now works with https. (Also I tried http - it's just the same)

Another bug in adressbook:If you copy a Card with two phonenumbers - both in one category (f.i. work) - only the first one survives.

Name: Ron E-mail: PrivateDate posted: March 21, 2010 - 06:44 pmMessage: I am afraid you did not provide enough information for me to know what's wrong. Try to go through the tutorial again, and see if you missed anything.

I got on vlient running with CardDav.But the second doesn't see anything...

Name: Ron E-mail: PrivateDate posted: March 11, 2010 - 12:51 amMessage: It seems that the startup scripts don't always work. I am experimenting with adding delays to them, and I'll post the corrected ones as soon as I get them to work.

-Ron

Feel free to enter your comments and/or questions below.

Name:

E-mail:
Make Private

Message:

After submitting the form you will have to undergo a little turing test
(reading a randomly generated security code on an image) before your message is posted