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:

mkdir calendar
cd calendar

Now we will download the code from Apple:

svn checkout http://svn.calendarserver.org/repository/calendarserver/CalendarServer/tags/release/CalendarServer-2.3 CalendarServer

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 file caldavd-test.plist and then rename it:

Duplicate caldavd-test.plist and rename it to caldavd-dev.plist

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:

caldavd-dev.plist

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).

<accounts realm="Test Realm">

<user>
<uid>admin</uid>
<guid>admin</guid>
<password>admin</password>
<name>Super User</name>
<first-name>Super</first-name>
<last-name>User</last-name>
</user>

<user>
<uid>USER1</uid>
<password>PASSWORD1</password>
<name>USERNAME1</name>
<first-name>FIRST NAME1</first-name>
<last-name>LAST NAME1</last-name>
</user>

<user>
<uid>USER2</uid>
<password>PASSWORD2</password>
<name>USERNAME2</name>
<first-name>FIRST NAME2</first-name>
<last-name>LAST NAME2</last-name>
</user>

<user>
<uid>shared</uid>
<password>PASSWORD3</password>
<name>Shared Calendars</name>
<first-name>Shared</first-name>
<last-name>Calendars</last-name>
</user>

<group>
<uid>user1group</uid>
<password>PASSWORD4</password>
<name>USER1's GROUP</name>
<members>
<member type="users">USER1</member>
</members>
</group>

<group>
<uid>user2group</uid>
<password>PASSWORD5</password>
<name>USER2's GROUP</name>
<members>
<member type="users">USER2</member>
</members>
</group>

<group>
<uid>shared</uid>
<password>PASSWORD6</password>
<name>Shared Calendars Group</name>
<members>
<member type="users">shared</member>
</members>
</group>

</accounts>

Note that the first user in the code is the Administrator. Do not delete this user, and make sure you change the password.

Now it is time for a first test run. Change the working directory and issue the command:

cd ~/calendar/CalendarServer
./run

You will see many messages, and finally the screen will stop with a message that looks like this:

2009-05-07 15:23:25+0200 [-] [caldav-8010] [-] AMP connection established (HOST:UNIXSocket(None) PEER:UNIXSocket('logs/caldavd.sock'))

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:

Add New Server 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:

Change Calendar Group Description

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:

Add a Calendar

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:

Copy the GUID from the Finder

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.

We'll start by creating a new folder:

cd
mkdir contacts
cd contacts

Now we will download the most recent snapshot of the server:

svn checkout http://svn.macosforge.org/repository/calendarserver/ContactsServer/

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:

Duplicate 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:

The edits of carddavd-dev.plist

Before we can start testing our server, we need to add user accounts. The proper configuration file is located in the folder ContactsServer/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. The following is an example of what you should change the file into, starting from the line <accounts realm="Test Realm">:

<accounts realm="Test Realm">

<user>
<uid>admin</uid>
<guid>admin</guid>
<password>NEW_PASSWORD</password>
<name>Super User</name>
<first-name>Super</first-name>
<last-name>User</last-name>
</user>

<user>
<uid>USERNAME</uid>
<password>PASSWORD</password>
<name>FULL_NAME</name>
<first-name>FIRST_NAME</first-name>
<last-name>LAST_NAME</last-name>
</user>

<group>
<uid>group01</uid>
<password>PASSWORD</password>
<name>Group 01</name>
<members>
<member type="users">USERNAME (FROM BEFORE!)</member>
</members>
</group>

</accounts>

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:

CardDAV Server Webpage

Click on the link principals. You will be asked for a username and password - provide the ones you configured in the accounts file. Next click on users. 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 the guid value to the file accounts-text.xml. This is the guid value that appears on the webpage under Principal Information:

Principal Details

Mark that guid value, 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's uid:

<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:

Add CardDAV Account

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:

Cannot configure CardDAV server

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.

CardDAV Server Description

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

Configuration.plist

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:

First Smart Group

Second Smart Group

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

Address Book Groups

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: Ariel
E-mail: profile@elvis.vipower.pl
Date posted: October 12, 2018 - 10:01 am
Message:


Name: Will
E-mail: wmbrook@hotmail.com
Date posted: May 08, 2014 - 02:16 pm
Message: 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 pm
Message: 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: Private
Date posted: April 02, 2014 - 03:06 pm
Message: 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


CFLAGS = -Qunused-arguments
CPPFLAGS = -Qunused-arguments

to quiet some clang error when compiling zope.

Apart from that everything went fine.
Thanks for the guide!!

Name: jesus
E-mail: Private
Date posted: February 13, 2014 - 01:03 pm
Message: got the same error as garret:

./run -s

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

running 10.7.5


Name: Joe
E-mail: Private
Date posted: January 16, 2014 - 10:44 pm
Message: Echoing Joochen's October 12, 2010 - 09:43 pm comments. Does this still work with Mavericks and iOS7?


Name: Em
E-mail: Private
Date posted: October 26, 2013 - 04:18 pm
Message: 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.


Name: Antony Martin
E-mail: Private
Date posted: October 22, 2013 - 03:27 pm
Message: Hi, I typed the .run command and got the following error - help!

Antony


./run -s

Downloading PyXML...

curl: (6) Couldn't resolve host 'internap.dl.sourceforge.net'


Name: geniusengine
E-mail: Private
Date posted: April 04, 2013 - 11:41 am
Message: Thanks newuser. I'm getting closer. My latest attempt fails with:

geniusengines-computer:CalendarServer genius$ ./run -s

Downloading PyXML...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 4298 100 4298 0 0 634 0 0:00:06 0:00:06 --:--:-- 634
Unpacking PyXML from cache...

gzip: stdin: not in gzip format

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 am
Message: 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: Private
Date posted: March 01, 2013 - 05:31 pm
Message: 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:

Downloading PyXML...

curl: (6) Couldn't resolve host 'internap.dl.sourceforge.net'


Name: edfsadasd
E-mail: dasdasd@dasda.com
Date posted: January 14, 2013 - 02:01 pm
Message: dasfdwqf afasdsadsada


Name: Ricardo
E-mail: interface.video@terra.com.br
Date posted: May 11, 2012 - 01:18 pm
Message: About curl: (6) Couldn't resolve host 'internap.dl.sourceforge.net'

Solution: Change line at run file http://interapdl.sourceforge.... to http://http://sourceforge.net/projects/pyxml/files/pyxml/0.8.4/PyXML-0.8.4.tar.gz


Name: VJ
E-mail: Private
Date posted: April 02, 2012 - 10:17 am
Message: Hey Dan,

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?


Name: Ron
E-mail:
Date posted: March 09, 2012 - 01:01 am
Message: Dear Dan,

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: Private
Date posted: March 08, 2012 - 11:59 pm
Message: 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: Private
Date posted: February 29, 2012 - 06:02 pm
Message: 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 am
Message: 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: Private
Date posted: December 17, 2011 - 12:51 am
Message: 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.

Any suggestions?

Thanks


Name: PhilG
E-mail: Private
Date posted: May 12, 2011 - 04:55 pm
Message: XCode 4 and ppc assembler:

before run -s type:

export ARCHFLAGS="-arch i386 -arch x86_64"


Name: Stuart Stokes
E-mail: Private
Date posted: April 26, 2011 - 05:23 pm
Message: Hi All,

further to my post below I now have the server running!

However, I now have another problem. Ideally, I would like to have the option of seeing all people's calendars on the server so that I can easily see what people are up to.

Any help greatly received.

Cheers

Stu


Name: Stuart Stokes
E-mail: Private
Date posted: April 21, 2011 - 12:24 pm
Message: Hi There,

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: Private
Date posted: April 12, 2011 - 05:32 pm
Message: 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

/usr/libexec/gcc/darwin/

Terrible workaround... but it did work for me!


Name: t
E-mail: Private
Date posted: February 23, 2011 - 03:33 am
Message: Open::
CalendarServer/
config/
accounts.xml

Accounts Settings

It cost me 6 hours to find the actual source on macosforge.
All other Releases are 100% outdated and even couldn't find
the right python libs.

WHY DO WE HAVE TO COMPILE SUCH
A TINY APPLICATION ???

One link to ZIP-FILE would save many many people bloody time.
I don't want to get a developer to share my calendar !

Apple - wake up !


Name: tacheles
E-mail: Private
Date posted: February 23, 2011 - 03:32 am
Message: Gentleman OS X Client 10.6.6 running iCal Server

xcode4 including UNIX Package ! (3.2 forget it)

cd Library
mkdir calendar
cd calendar

svn checkout http://svn.
macosforge.org
/repository/
calendarserver/
CalendarServer/
trunk CalendarServer

cd CalendarServer
./run -s

./run


Name: tacheles
E-mail: Private
Date posted: February 22, 2011 - 10:33 pm
Message: Oh my goodness - could anybody update this website !!!
How many people running in this trap here.

PLEASE UPDATE THE LINE WITH LINK TO::

svn checkout http://svn.macosforge.org/repository/calendarserver/CalendarServer/trunk CalendarServer

Otherwise you run in totally outdated trouble.

THANK Youuuu


Name: stacey lang
E-mail: stacey.lang@gmail.com
Date posted: January 22, 2011 - 12:06 am
Message: 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: Private
Date posted: December 28, 2010 - 06:29 am
Message: @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: Jane
E-mail: jy@chalkconsultancy.com
Date posted: December 26, 2010 - 04:46 pm
Message: Couldn't seem to get past the first steps about:

cd CalendarServer
./run -s

just says

Unpacking PyXML from cache...

gzip: stdin: not in gzip format

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


-
any help would be greatly appreciated.


Name: Joeri
E-mail: jrtemp@gmail.com
Date posted: December 22, 2010 - 05:34 pm
Message: fyflakes is down..?
divmod.org doesn't work at all.


Name: A. Igel
E-mail: Private
Date posted: December 18, 2010 - 07:12 pm
Message: There's a problem on running the server:

Silence:CalendarServer admin$ ./run -s

Downloading PyXML...

curl: (6) Couldn't resolve host 'internap.dl.sourceforge.net'
Silence:CalendarServer admin$


Name: Vasya
E-mail: kvocha@gmail.com
Date posted: November 01, 2010 - 01:38 pm
Message: Can't find ContactsServer here : http://svn.macosforge.org/repository/calendarserver/ContactsServer/


Name: Christian
E-mail: Private
Date posted: October 19, 2010 - 07:17 pm
Message: 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: Private
Date posted: October 12, 2010 - 09:43 pm
Message: 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 pm
Message: 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: Private
Date posted: September 01, 2010 - 04:30 pm
Message: 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,.


Name: Brett Jones
E-mail: calacode2002@hotmail.com
Date posted: August 31, 2010 - 10:04 am
Message: Great tutorial - I setup my CardDAV server successfully and using the Atmail as a "client" to my CardDAV server - My employees and contractors love it.

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 am
Message: 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: Private
Date posted: August 29, 2010 - 03:27 am
Message: 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.

Seeing how it goes... waiting...

Hmm nothing has changed. Message quoted bellow. Note I substituted names only:

###

100 1204 100 1204 0 0 1 0 0:20:04 0:18:09 0:01:55 345
Unpacking PyXML from cache...

gzip: stdin: not in gzip format

Applying patches to PyXML in /Users/NAME/calendar/PyXML-0.8.4…
./run: line 309: cd: /Users/NAME/calendar/PyXML-0.8.4: No such file or directory
COMPUTER:CalendarServer NAME$

###

Really have no idea what to do. I have previously setup iCal to share using epache2 webDav. Would this have something to do with it. I wouldn't think so at this stage anyway.

Cheers,. EkDor


Name: Ken
E-mail: Private
Date posted: August 24, 2010 - 02:55 pm
Message: Sean,

I ran into the same problem. To work around you need to edit ./support/build.sh to correct the download URL for PyXML. Search for PyXML.

local px="PyXML-0.8.4";
py_dependency
"PyXML" "xml.dom.ext" "${px}"
"http://cdnetworks-us-1.dl.sourceforge.net /project/pyxml/pyxml/0.8.4/${px}.tar.gz";

In order to get this comment posted I had to add a space in the middle of the URL - The comment tool was complaining that things are too long.


Name: Sean
E-mail: Private
Date posted: August 17, 2010 - 02:27 am
Message: i seem to be having a problem unpacking PyXML. Here is the relevant info from terminal:



PostgreSQL installation complete.

Using system version of Zope Interface.


Downloading PyXML...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1204 100 1204 0 0 1 0 0:20:04 0:18:00 0:02:04 298
Unpacking PyXML from cache...

gzip: stdin: not in gzip format

[snip]

line 142: cd: /Volumes/Data/calendar/PyXML-0.8.4: No such file or directory
Sean-MacBook:CalendarServer sean$


Name: nebolsin
E-mail: Private
Date posted: August 11, 2010 - 04:49 pm
Message: Thank you!!! I'm trying!


Name: Ron
E-mail:
Date posted: August 11, 2010 - 04:37 pm
Message: Nebolsin - install the Developer Tools (XCode) from the MacOSX DVD before you do anything.


Name: nebolsin
E-mail: Private
Date posted: August 11, 2010 - 04:33 pm
Message: Hello! Thank you very much for your work!
I have next problem, I hope you can help me.


svn checkout http://svn.macosforge.org/repository/calendarserver/CalendarServer/trunk CalendarServer
...
[bla-bla-bla]
...

Checked out revision 6045.
localhost:~ Elena$ cd CalendarServer
localhost:CalendarServer Elena$ ./run -s

...
[bla-bla-bla]
...

Removing build directory /Users/Elena/postgresql-8.4.4/build...
Removing pyc files from /Users/Elena/postgresql-8.4.4...
Building PostgreSQL...
checking build system type... i386-apple-darwin10.4.0
checking host system type... i386-apple-darwin10.4.0
checking which template to use... darwin
checking whether to build with 64-bit integer date/time support... yes
checking whether NLS is wanted... no
checking for default port number... 5432
checking for block size... 8kB
checking for segment size... 1GB
checking for WAL block size... 8kB
checking for WAL segment size... 16MB
checking for gcc... no
checking for cc... no
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.

__________

What to do?


Name: tigger
E-mail: api2309@googlemail.com
Date posted: July 20, 2010 - 07:25 am
Message: HI,

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 pm
Message: 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: Private
Date posted: June 21, 2010 - 10:07 pm
Message: 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?


Name: Ron
E-mail:
Date posted: June 17, 2010 - 07:43 am
Message: Dear Sebastian,

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: Private
Date posted: June 16, 2010 - 08:52 pm
Message: Hi
Am 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 pm
Message: As I posted below, the calendar server and the contacts servers have merged. The new download command is:

svn checkout http://svn.macosforge.org/repository/calendarserver/CalendarServer/trunk CalendarServer

The port for both iCal and Address Book will now be the same, naturally. I will update the guide soon.


Name: Michael
E-mail: Private
Date posted: June 04, 2010 - 10:58 am
Message: Unfortunately, the SVN repo of the contactsserver doesnt exist anymore, so the call:
svn checkout http://svn.macosforge.org/repository/calendarserver/ContactsServer/

doesnt work. Where can i get a snapshot of the contactsserver?!


Name: samiam
E-mail: smarks.other@gmail.com
Date posted: June 04, 2010 - 01:21 am
Message: 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.


Name: Ron
E-mail:
Date posted: May 23, 2010 - 08:20 am
Message: Hi Cal,

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: Private
Date posted: May 23, 2010 - 01:50 am
Message: 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 pm
Message: 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):

svn checkout http://svn.macosforge.org/repository/calendarserver/CalendarServer/trunk CalendarServer

The rest of the tutorial will be pretty much similar, only with different locations of the ContactsServer files (they are hiding in the CalendarServer folders), and the same port for both servers.

I hope this helps in the meanwhile.


Name: kn3pp
E-mail: me@kn3pp.se
Date posted: May 15, 2010 - 10:51 pm
Message: Hi..
Ive successfully set up the calendarServer.. great guide!

however.. it seems that the CardDAV server is merged(?) and removed so some kind of update is needed here i think.. or pointers how to fix the broken svn-url for the CardServer..

thanx ;)


Name: garrett
E-mail: Private
Date posted: May 15, 2010 - 08:02 am
Message: OK my bad. New computer. Xcoce not installed. Installed now and its working (so far).


Name: garrett
E-mail: Private
Date posted: May 15, 2010 - 07:50 am
Message: Hi. I got an error when I tried running the ./run -s command:

garrett-A102:CalendarServer gmn$ ./run -s

Building PyXML...
unable to execute gcc-4.2: No such file or directory
error: 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 pm
Message: @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: Ritchie
E-mail: Private
Date posted: May 13, 2010 - 05:28 pm
Message: Ok, this proves that these software work.

Now, how do we make it more pro ?

How do we interface it with the User management in the System Pref. Pane on the Mac so that I don't see everyone's password ?

How do I install these as System software ? (Under /Library ... )

Ritchie


Name: Sam
E-mail: Private
Date posted: May 06, 2010 - 05:20 pm
Message: Hi,
When I follow these instructions, I don't get very far. I think something might have changed.

My svn checkout ends with:

A CalendarServer/calendarserver/CalDAVClientLibrary/trunk/README
Checked out revision 5570.
svn: '/CalendarServer/tags/release/CalendarServer-2.3' does not appear to be a URL

then when I cd in CalendarServer, I only see:

pwd
/Users/sam/calendar
Stone:calendar sam$ cd CalendarServer/
Stone:CalendarServer sam$ ls
calendarserver

any help appreciated.

Thanks in advance and sorry for the bother.

S.


Name: Ron
E-mail:
Date posted: May 04, 2010 - 04:01 pm
Message: 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: Private
Date posted: May 04, 2010 - 03:12 pm
Message: 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?)


Name: Ron
E-mail:
Date posted: April 07, 2010 - 09:30 am
Message: Dear Gads,

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.


Name: Gads
E-mail:
Date posted: March 22, 2010 - 10:35 am
Message: Thanks for your Response Ron!

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: Private
Date posted: March 21, 2010 - 06:44 pm
Message: 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.


Name: Gads
E-mail:
Date posted: March 21, 2010 - 05:09 pm
Message: Thanks :)

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


Name: Ron
E-mail: Private
Date posted: March 11, 2010 - 12:51 am
Message: 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:  

Add bold text  Add italic text  Add colored text  Add bold and colored text  Insert link. Replace the sample link address with your own  Insert image. Replace the sample image address with the address of your image  Add a smilie

  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

 

 



Powered by The Easy PHP Guestbook