View Single Post
Several of us have bumped into an issue when trying to sync with iCal where Sync Services hasn't properly managed its cache. With OmniFocus, this can manifest itself in different ways ("Cannot sync..." error messages, duplicate or no TODOs, etc.) so I thought I'd make note of a couple solutions to this problem.

The first thing to note is that OmniFocus 1 only syncs with local calendars. In order to maintain compatibility with Mac OS 10.4, support for calDAV calendars was pushed off the 1.x feature list. If you're having trouble synching to a local calendar, read on.

Before we try to fix the Sync Services problem, let's double-check a few other things that could cause this problem.

In iCal, select View -> Show To-Do List. The actions you synched to iCal should appear in that list. (We sync actions as To-Do's, not as events on the calendar.) If the events do not show up on the To-Do list, continue reading.

Next, open the Sync pane of OmniFocus' preferences and double-check that the OmniFocus contexts you want to synch have been mapped over to your calendars in iCal. (If all your OmniFocus contexts are in the 'Unsynchronized' category, that's what's preventing the synch from doing anything.)

If the synch still isn't working properly, open up iCal's preferences. Switch to the "General" tab and uncheck the 'Show Birthdays calendar' box. Quit and restart iCal, quit OmniFocus, restart it, and try to sync.

If none of those steps fix the problem, go ahead and proceed with the following.

The first method of fixing this is by far the easiest, but it will reset every application that interacts with Sync Services, effectively making the application appear as if it's never synced. For some people who need to maintain a sync history, this might not be the best approach but for most applications, it should be okay. Please feel free to get in touch or post here if you have questions.

For method one, please paste the following into Terminal.app (found in the Utilities subfolder of the Applications folder on your hard drive):

killall SyncServer
Then, press return. You may get a 'no such process' response. That's okay. That just means that SyncServer wasn't running when we told it to stop.

Next, enter the following command into Terminal and press Return again:
rm -rf ~/Library/Application\ Support/SyncServices/*

If no error messages appear, you can quit Terminal. (If one does appear during the second step, please copy it into a message to us at the address above.) The second command totally resets the Sync Service database, forcing it to rebuild everything from scratch.

For the folks that don't want to completely reset Sync Services, the other option is to think of everything that's interacted with Sync Services since using OmniFocus and then to go through and reset each application or service individually until it's fixed.

The usual suspects are .Mac, Entourage, and iSync. If you sync via .Mac, logging in and logging out in the preference pane should do the trick. If you use Entourage, the fix is as easy as quitting and relaunching (just like OmniFocus) and in iSync, going into iSync Preferences and then clicking the button at the bottom that reads "Reset Sync History..." should help there.

Again, please feel free to get in touch or post here if you have questions.

Thank you very much!

Last edited by Brian; 2008-01-29 at 09:55 PM.. Reason: clarified an instruction