Introduction
ASynK CmdLine is a powerful open source Contacts synchronization program that works with a variety of Contacts software such as Microsoft Outlook, Microsoft Exchange Server, Google Contacts, Any standards compiant CardDAV server, and Emacs BBDB.
Some of the key features of ASynK are:
- ASynK allows two-way sync of Contacts across any two supported sources. For e.g. you can use this to copy contacts from one Google account to another, or from your Google account and your official MS Exchange account etc.
- ASynK is the only two-way synchronization option for BBDB known to be in existence today. So if you are keen to keep your BBDB content synchronized with a mobile device or Outlook, look no further.
- ASynK works on Windows, MacOS X, and Linux. Outlook synchronization only works on Windows.
- Synchronization is granular to the level of 'Folders', i.e. you can synchronize one folder of Google Contacts with a Outlook folder (on Windows at work, say), and another Google folder in the same account with BBDB (On your Mac, say)
- The infrastructure is there to add more database and item types (i.e. tasks, notes, etc.), but currently only Contacts synchronization is supported
- It is free software, and released under the GNU AGPL (Affero GPL) version 3
Announcements
Sat Aug 15 20:46:49 IST 2015
Go grab the latest release from the Downloads page!
Tue Jun 30 16:43:40 IST 2015
Go grab the latest release from the Downloads page!
Sat Jan 24 12:08:43 IST 2015
- This release supports like-pair synching. This means you can now use ASynK to copy contacts from one google account to another. As always this copy/synchronisation works at a Folder level, so you could synchronize your My Contacts from your Work email address to a specific folder in your personal Gmail account.
Go grab the latest release from the Downloads page!
Sat Jan 24 12:05:32 IST 2015
- It includes MS Exchange support - see notes below for the -rc1 release. The present release includes all of those plus some minor bug fixes.
- Bug Fix: Fixes a long standing bug in Google's contact API that was preventing contact udpates from being posted. If you were facing errors in synching to google contacts, you should be interested in this release.
Go grab the latest release from the Downloads page!
Sun May 04 12:13:29 IST 2014
- It has been tested with Exchange Online / Office 365. However it should work with Exchange Servers 2007_SP1 onwards.
- This release incudes a new submoduel. Ensure you fetch the code for that repo as well.
- There are some additional python package dependencies that have been added. Install the dependencies in the requirements.txt file.
- The config.json format has changed to accomodate the requirements of a new datastore. Your config will be seamlessly upgraded to the new format
Sun Sep 04 12:13:29 IST 2013
- It has been reported to work with the following servers:
- Apple CalendarServer
- Baikal
- OwnCloud.
- The config.json format has changed to accomodate the requirements of a new datastore. Your config will be seamlessly upgraded to the new format
Mon Apr 22 16:07:32 IST 2013
- It is only tested with Apple's Calendar Server on my local Mac with a few test BBDB files . I would love to hear how this works with other carddav servers out there.
- The new branch on the git repo has a bunch of new git submodules. If you are an existing user of ASynK, I would recommend you checkout a fresh copy of the carddav branch for your initial trials. The config.json format has changed to accomodate the requirements of a new datastore. You should copy the config.json from the asynk source directory manually to your asynk user dir. This step will be automated at a later time before official release.
- The CardDAV protocol does not have a batch write operation - but has a batch read method - which means that writing lots of contacts to a remote server may be slow - much slower than synching to a google contacts server using ASynK. This situation will not change unless something changes with the WebDAV protocol.
Sun Mar 24 22:01:16 IST 2013
- Double-quote and newline characters in many fields are now quoted before being written to BBDB.
- sync_dir profile config was when set to SYNC1WAY was being ignored; same was case with the conflict_resolve config variable list-folders operation was not working with BBDB data stores
- folder name field was getting written to BBDB multiple times
- You can create new profiles to non-existent BBDB datastores; files will get created on sync.
- Outlook backend was having issues with the BBDB timestamp format. Fix so BBDB<->Outlook sync works.
- A bunch of errors flagged by pychecker static analysis have been fixed
- A bunch of bugs fixed in handling of the 'affix' BBDB field and synching it to and from google google
Go grab the latest release from the Downloads page!
Thu Jul 05 15:00:01 IST 2012
- ASynK now ships with two default sync profiles called: "defgcbb" and "defgcol", so there is out of the box support for what should be the most common use cases - synching entire ~/.bbdb or outlook contacts folder with google contacts. (Thanks to John Wiegley for the idea)
- ASynK now uses ~/.asynk/ as the directory to store all state information, logs and backups. Thus you can now have a single installation of ASynK for all users in your system, and they will each get .asynk/ directory in their home directories. If you have any existing sync profiles and state, ASynK will notice this, and migrate your current sync state to the ~/.asynk/ directory. You can override the default directory name by passing the --user-dir command argument to any invocation of ASynK. (Thanks to Ivan Miljenovic for the idea)
- ASynK can now be invoked from anywhere; earlier you had to
ensure the present working directory was the root of the asynk
source directory. (Thanks to Ivan Miljenovic for the idea)
Important Note: The above two changes together imply that if you have existing sync state you want migrated, the first run after your upgrade to v0.3.0 should be from inside ASynK directory for us to be able to locate your config and state. Subsequent runs can be done from anywhere and we will pick up your stuff from ~/.asynk/
- Bug fix: Google Contacts' multiple group membership information is now correctly synched back and forth to BBDB and Outlook.
- Bug fix: The first email address in the BBDB email list is treated as the primary address, and marked accordingly in Google Contacts. Without this the order the email addresses in BBDB could have appeared random, and changing from one sync to another.
Go grab the latest release from the Downloads page!
Fri Jun 15 07:40:54 IST 2012
- Now Item deletions are synched. i.e. if you have a sync
profile set up between Google folder and a Outlook folder, say,
and you delete a contact in Google, the next time you sync that
entry will be deleted from the corresponding Outlook folder as
well.
For this to work correctly, it is recommended that you do a full sync of all your configured profiles once - note that a dry run is not sufficient.
- Log files older than 7 days will be cleared every time asynk is executed - except if it is a dry run. The duration can be configured in config.json by changing the 'log_hold_period' parameter.
- BBDB Backup files older than 7 days will cleared every time asynk is executed - except if it is a dry run. The duration can be configured in config.json by changing the 'backup_hold_period' parameter.
- Misc bug fixes
Go grab the latest release from the Downloads page!
Thu May 17 20:14:28 IST 2012
- BBDB file format 6 is now supported - with an important caveat - Please refer to the Dependencies section of the documentation. BBDB file format 6 is used by BBDB versios 2.x bundled with XEmacs.
- Attempt is made to parse the BBDB file with multiple encodings - for now utf-8 and latin-1. Additional encodings can be specified in the config.json config file.
- Building documentaiton from source is now trivial, and does not need autotools
- Instant Messaging fields are now synched across all sources
- Better error recovery in case of parse error with BBDB store
- Bugs fixes dealing with fax, notes, and company fields in BBDB and Google Contacts
All in all an exciting release if you are a BBDB user! Go grab the latest release from the Downloads page!
Sun May 13 13:54:50 IST 2012
Downloads
Download Source
The source code for ASynK is available publicly on github. You can clone the repository with git clone --recursive https://github.com/skarra/ASynK.git or browse the source code here.Documentation
The current stable released vesion is v2.2.0. Refer to the Announcements and FAQ sections to know what's changed between versions. ASynK v0.1.0 was called Gout at the time of its release, had a GUI and did not support BBDB.
Documentation on ASynK is available in the following formats:
- A single Info file - for download and use with Emacs Info documentation reading system
- HTML for online browing, single html page (will open new window)
- The main source Texinfo file. You can find this file along with the associated texi files in the doc/ directory of the source tree.
Credits
The application is built on code and ideas from the following sources:
- Pushkar Dubey for writing the wxPython UI that shipped in v0.1.0. The latest release, i.e. v0.2.0, does not have a GUI, it needs to be reworked.
- Pywin32 Mark Hammond's totally awesome package that provides Python bindings to many Windows APIs, including MAPI which is required for talking to the Outlook message stores. Mark is very active on the support list, and is extremely helpful.
- Jace, aka Kiran and HasGeek for CSS, and HTML inspiration.