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
v2.2.0 has been released today. The most important feature in this
release is oAuth support. There are a bunch of bug fixes related to
CardDAV and Google synching as well.
Go grab the latest release from the
Downloads page!
Tue Jun 30 16:43:40 IST 2015
v2.2.0-rc1 has been released today. This release supports oAuth
support for Google Contacts. Make sure you go through the README
file for gdata-oauth2.
Go grab the latest release from the
Downloads page!
Sat Jan 24 12:08:43 IST 2015
v2.1.0-rc2 has been released today.
- 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
v2.0.0 has been released today.
- 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
v2.0.0-rc1 with Experimental support for Microsoft Exchange server
has been added to ASynK and just released.
Key notes for this work:
- 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
Release v1.0.0 - With support for CardDAV.
Key notes for this work:
- 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
Experimental support for CardDAV servers has been added to ASynK. As
this is still an early release the code lives in a separate branch
on github. You can view and checkout the code here:
https://github.com/skarra/ASynK/tree/carddav.
Key notes for this work:
- 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
We have just pushed release v0.4.1 out. Key changes are:
- 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
We have just pushed release v0.3.0 out. Key changes are:
- 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
We have just pushed release v0.2.2 out. Key changes are:
- 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
We have just pushed release v0.2.1 out. Key changes are:
- 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
We have just pushed release v0.2.0 out. Go grab the latest release
from the Downloads page!
Downloads
The latest stable release is: v2.2.0
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:
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.