3.79 KB
Newer Older
1 2
Created : Wed Aug 24 22:41:42 IST 2011

3 4
This is only a short introduction and some key points of interest. For more
details on how to use ASynK please refer to the included documentation, or the
5 6
official website for ASynK is at: You will find
links to latest download, complete documentation, and other information on
7 8 9
that website.

* About

11 12
  ASynK - Awesome Sync (by Karra), is a flexible Contacts synchronization platform
  written in Python. High level features include:

  - ASynK allows two-way sync of Contacts across any two supported sources -
15 16
    Google Contacts, Microsoft Outlook, Microsoft Exchange Server, any CardDAV
    server and Emacs BBDB.
18 19 20 21
  - You can use ASynK to copy contacts from one Google account to another
    (say from a Google Apps account at work to a personal address before you
    leave your job). You can do this at the level of folders (see below)

22 23 24 25 26 27 28
  - 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.
29 30 31 32
  - 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
37 38 39
  - It is free software, and released under the GNU AGPL (Affero GPL) version

* Installation
Sriram Karra's avatar
Sriram Karra committed
42 43 44

As you are reading this file, the most efficient installation is to clone this
git repository to your machine. Then see the section titled Usage below to 
invoke ASynK. Remember to use the --recursive flag while cloning.

47 48 49 50 51 52 53 54 55 56 57
** Updating an earlier install

   If you are updating your ASynK installation from an earlier version,
   please note that many new git-submodules are added to the project. So for
   your update to work properly you need to update all
   sub-modules. Recommended way to do this would be to fun the following
   command from the root of your ASynK directory, after you pull in the latest

: git submodule update --init --recursive

58 59
** Dependencies

60 61 62
   ASynK is completely written in Python. For most use cases and set ups you
   only need to have Python 2.x (x >= 7) installed. Some additional
   dependencies include:

64 65 66 67 68 69
   - If you wish to sync from/to MS Outlook:
     - MS Windows
     - Python 2.x (2.7 or later) for Windows
     - MS Outlook
     - Pywin32 from Mark Hammond, available from

71 72
   - On Debian (and likely Ubuntu) you will need the following packages:
        sudo apt-get install python-argparse

74 75 76 77 78 79 80 81 82 83
   - The following python packages.
     - dateutil
     - httplib2
     - oauth2client
     - PyOpenSSL
     - google-api-python-client

     You could install all of them with just 

: $ pip install -r requirements.txt

* Usage

87 88 89 90 91 92
   The recommended way to use ASynK is to first create your own 'sync profile'
   which specifies which folders and PIM DBs you want to keep in sync. Refer
   to the documentation for more details.

   For the really impatient, ASynK comes with two default sync profiles that
   kick in if no other profile is configured.
93 94

: $ python --op=sync [--dry-run] [--log=debug]

96 97 98
   If you run the above command on Windows, the entire default outlook
   contacts folder will get synched to "My Contacts" on Google Contacts. (You
   will be prompted for your google username and password). 

100 101
   On any non-windows platform your ~/.bbdb will be synced to google.

Barak A. Pearlmutter's avatar
Barak A. Pearlmutter committed
   For further usage help, try "python -h"