Android Contact Sync

Contact: consync[at]



  • Using a self-created parser which supports complex and more features than other contact sync applications.
  • Supporting vCards in all availbale versions (4.0, 3.0 and 2.1).
  • Supporting much more android contact fields then other apps (IMPORT and EXPORT).
  • Contact photos can also be automatically be loaded from the web!
  • Automatically create appointments for birthdays and anniversaries so that you won't miss them!
  • Importing contacts stored on the android device (.vcf or .vcard).
  • The app will be associated to this files too.
  • Importing contacts which have been attached to mails.
  • Backup all the contacts and groups available on your device to .vcf files.
  • Fingerfriedly user interface.
  • Analyse and import a large amount of vCard files at once.
  • Load, parse and sync contact infomration direct from the Internet from different sources.
  • Uploading already existing (local) contacts/groups to one of your servers.
  • Supporting different ways of handling double contacts:Ignoring, Replacing, Merging, Import anyway
  • Supporting groups (native groups in vCard 4.0 and mapping of categories in vCard 3.0 and 2.1)
  • Supporting network sources for contact information.
  • Supporting CardDAV (supports syncing from and to a server (two way sync))
  • Supporting HTTP/HTTPS(supports syncing from and to a server (two way sync))
  • Supporting FTP/FTPS(supports syncing from and to a server (two way sync))
  • Supporting WebDAV/WebDAVs(supports syncing from and to a server (two way sync))
  • Supporting two way syncs to local files (useful if you e.g. use that in combination with a cloud data store)
  • Supporting self signed certificates
  • Multi-language: Currently English, Russian, French, and German

The app handles more contact/group data then other apps e.g.:

address, birthdays, anniversaries, custom events, categories, groups, notes, email, instant messages, name, nickname, organizations, photos (also high res), relations, phonetic names, websites, roles, titles, Apple specific extensions, Mime dir groups, Android specific extensions, favourites

Interesting features for large-scale orders:

  • Setup and configure your server connections through adb, websites, and mails
  • Deploy configurations easily to your users and protect them from being changed unintentionally.
  • Licensing for large-scale orders
Seems to be interesting for you? Then please contact us at Many organizations are already successfully applying the app.


Android 2.2 or later.


If you get a list of information e.g. a list of vCard (.vcf or .vcard) files try pressing long on an item. Most of the time you will get a context menu and you then will be able to select an appropriate action.

Basic workflow:

The app always uses two step. First you have to get some contact details. You can do this by accessing local contact information (like mail attachments or some vcard files stored on your SD card) or contact information accessible over a network (like the internet. You can use various server and protocol types). So during this step the app will try to find/get contact information e.g. by asking you to select a file or downloading different contact information from a network. Afterwards it will parse/analyse the information and it will prepare this information for the following import. The information which has been prepared during the analyse step can now be imported at the importing step (started by the import parsed information button). This is the reason because the import button below the parse local/handle webcontact button only gets active if any information is available for the import. Some WebContacts also support a direct sync so that you will not have to press the import button and all the information will be exchanged during one step.

How to parse/import an local vCard file (.vcf):

If you press the parse local information button you will get a list of vCard files which are stored at /sdcard/ContactSync. You then can choose one of the files and perfom a long press on it. A menu will be displayed where you can select to parse/analyse the file. Afterwards the import parsed information button on the main sceen will get enabled. If you press the button the contacts stored at the file will be saved on your device. The parsing can also be started if you open a contact file at your prefered file explorer. To do so just click on it. My app is associated to this filetypes and you can choose it out of a list or it will be directly started.

How to move your contacts to a new device?

If your contact data is already available at some sync service, server, cloud or anything similar then ContactSync can, likely, directly access this data and load it from there on your new device. However, even if this is not the case you can still use ContactSync to move your contacts onto a new device. Therefore three steps must be executed (Note, that ContactSync must already be installed on the new and the old device.):

1) Export the contacts on the old device: Therefore start ContactSync and press the fourth "export" button on the top. Now select which address books should be exported (i.e., moved to the new device later one) and press the export button.
2) Copy the created (i.e., exported) contact data file to the new device: The exported contact data/address books are stored in a standardized vCard file. This vCard files (one for each address book which you chose to export) are stored on the internal storage of your old Android device in a folder called ContactSync. From there copy it to your new device. Its up to you how you copy the file. For example, you can copy it over by using bluetooth, a cloud service such as Dropbox, send it by mail, use USB cables, and so on (the options are almost endless).
3) Import the contacts on the new device: On the new device simply open the address book file and ContactSync will start and analyze it. For example if you have sent it by mail then simply open the mail attachment on your mail app. Or if you have copied it by USB then navigate to the folder were you have put it on the new device with your preferred file explorer app and click on it.

How to sync with contact information on the internet:

You have to define a WebContact. A WebContact stores information how to access contact information which are available using a network. To do so start the app then press the menu button on your device and select Create WebContact. Here you can now enter all the information. You will at lest need to specifie a URL and the connection type (which identifies how to access the information, you can choose between HTTP (which includes WebDAV), FTP and CardDAV) and the name of the Android adressbook which will be created to store your contacts. Then scroll down and press the Create new WebContact button. At the main screen, you can press the Handle WebContact button which will download and parse the onlince contact information. Afterwards the import parsed information button below will be available. Press it to store the contacts on your device. WebContacts which are configured to use the two way sync will automatically store the contacts so that you will not have to press the import button.

How to save/export/backup your contacts to a local file:

You will have to press the Export contact/groups to local file button on the main screen of the app. The contacts will then be saved in a .vcf file at /mnt/sdcard/ContactSync (or the path which has been configured by you at the preferences). Please check if the export settings (Ignore SIM contacts (enable this if you dont want to export sim contacts) and export only local contacts (will only export local contacts which are not assigned to a sync adapter like the default Google gmail sync adapter, disable this options if you want to export this contacts/groups too)) are set correctly for your usecase. Especially if the exported file is emtpy then you will have to disable the export only local options because then all your contacts are assigned to a sync adapter.

What are WebContacts:

WebContacts store information which helps my app to find your online ressources for contact information. So you can specifie where to find and how to access the data. E.g. you can specifie if you use a FTP Server, a HTTP/WebDav or a CardDAV server. Also other important information can be specified. To create a WebContact start the app, press the menu button on your device and afterward choose the Create new WebContact menu entry. You will have to specifie at least the URL, the name the Android adressbook which will be created to store your contacts and the connection protocoll which should be used to access your contact information.

WebContact settings:

Some probably not so clear WebContact settings will be described here:

Android sync account name:

Defined the name of the Android address book which will be generated for this WebContact to store your contacts/groups.

Optimized CardDAV one way sync:

If you enable this option (you have to use a CardDAV Server to do so) my app will use a optimized way of syncing with your CardDAV servers. This way you can sync your device while producing less network traffic. But because of this optimisation all the syncing will be done automatically in one step so you will not have to press the import parsed information button and you will not be able to see any contacts at the Display parsed contacts overview.

Protocol local:

Set this to sync my app periodically with contact files which are stored locally on your Android device. These files can then be synced by a Dropbox or other cloud apps. You will have to set the path at the URL box. The app will automatically follow the specified paths starting from /mnt/sdcard/. So for a file which is stored at /mnt/sdcard/testfolder/test.vcf you will only have to enter /testfolder/test.vcf. You can use the .. (used to go back one step at the path hierarchy) command for a file which is not stored below /mnt/sdcard/. So e.g. for following path /mnt/sdcardXX/testfolder/test.vcf you will have to enter /../sdcardXX/testfolder/test.vcf. If you only want only to parse a file sometimes you also can just open it like normal mp3 or pdf file. So just click on it in your prefered file explorer and it will be parsed by my app and then you can import it.


Here you, if you are using WebDAV/HTTP or FTP, have to configure the full path to the contactfile.
Example URL using WebDAV/HTTP:http(s)://
Example URL using FTP:ftp(e)(s)://
If you enter ftps:// then a connection with the implicit encryption mode will be created. If you write ftpes:// then a encrypted connection using the explicit encryption mode will be created.
For the connection protocol set to local file, see above. For the connection protocol set CardDAV, please see the CardDAV provider list where you can find tips for a lot of servers.

How to sync already existing contacts with a WebContact:

Already existing contacts can be assigned to a WebContact of your choice. To do so press long on the WebContact (you can get a list of all WebContacts at the WebContact overview available at the app itself, for this Start ContactSync -> Press the menu button -> Select WebContact overview) which the contacts should be assigned to. Then choose Assign contacts. All contacts which are currently, for example, only stored locally on your device can now be assigned to this WebContact (you can choose exactly from which address books you want to take over contacts). During the next sync they will be recognized as new and will be transfered to your server.

Move your configuration from the trial to the pro version:

You can move existing WebContacts and metadata from the trial to the pro version. Therefore Start the App -> Press the menu button -> Choose Display created WebContacts -> Press the menu button again. If you choose Transfer WebContact to Pro Version then the app will export your currently configured WebContacts and save them at the apps main folder (by default this is a folder namend ContactSync, the default configuration can be overwritten at the app settings). To restore a backup you will have to choose Restore WebContacts backup (at the WebContacts overview at the pro version). The app looks for backups at its main folder and will list all files which contain restoreable backups. Choose which one you want to restore and press the restore button. The app will recreate the WebContacts along and will reuse the existing address books and contact/groups.

Backup and restore of configurations:

You can export existing WebContacts. Therefore Start the App -> Press the menu button -> Choose WebContacts overview -> Press the menu button again. If you choose Backup all WebContacts then the app will export your currently configured WebContacts and save them at the apps main folder (by default this is a folder namend ContactSync, the default configuration can be overwritten at the app settings). You will be asked if the backup should contain the Server login credentidals. After the backup has been created you can e.g. copy it to a different device and restore it. To restore a backup you will have to choose Restore WebContacts backup. The app looks for backup at its main folder and will list all files which contain restoreable backups. Choose which one you want to restore and press the restore button. The app will recreate the WebContacts along with new Android addressbooks so that the contacts/groups can be stored. If you have chosen not to export the Login credenitals then you will have to edit the WebContacts and add the password so that ContactSync can access your data.

How to handle birthdays and anniversaries:

My app can handle birthdays and anniversaries stored at your contact data in multiple ways. At first you will have to select the contact date format of your device. The reason why you have to do this manually is that Google has forgotten to specific a specific format so each manufacturer/each device uses its own format so will have to help my app choosing the right one. You can find some tips regaring the date format below. Afterwards my app will be able to sync birthdays and anniversaries.
Another feature regarding events is that my app can create appointments at a chooseable Android calendar for all contacts which are synced by my app. So if you sync a contact with a birthday it will create a yearly appointment at a chooseable calendar so that you will not forget such events. You will have to enable that feature at the preferences of my app. Also the Android calendar which should be used to store the birthdays and anniversaries can be selected at the preferences. If you enable the feature but do not select a calendar my app will choose one by itself.

Android contact date format:

Google has not specified the date format for e.g. birthdays which can be attached to a appointments. This leads to a situtaion that different devices use different formats. So you can choose between different version at the preferences. A list of models and the format to choose can be found here. If you do not find your model here please contact me so that I can update the list!

  • Samsung all models: yyyy-mm-dd
  • Acer Liquid S100: yyyymmdd
  • HTC Desire: yyyymmdd
  • HTC One X: yyyy-mm-dd
  • Motorola Defy: timestamp
  • Motorola Defy+: yyyy-mm-dd
  • Sony Xperia x10: yyyy-mm-dd

How to configure auto sync:

There are two ways of using Contact Sync for a automatic sync with internet sources of various types. At first you always have to configure the internet sources, by creating WebContacts. You will find information how to do so above. Both ways will be executed without any user interaction.
First way: Use the app itself to periodically sync your appointments
To do so you have to enable auto sync at the preferences and select a auto sync interval. E.g. if you select a interval of an hour the app will download/parse and sync all your defined internet sources every hour. After you activated the automatic sync you will have to reboot the device once to start the auto sync service. If you change the autos ync period you will have to restart the device too.
Second way: Use an external app to trigger a sync
To do so you must have installed a app like Tasker and enable the "allow external autosync trigger" option. A external app can now trigger ContactSync to download/parse and sync the defined internet sources.
A Tasker-user approved the usage with Tasker with the following configuration: Add a "send intent" (under "misc") with:
Action =
Extra =
Target: Service

Also the app Llama has been confirmed to work. There you will have to configure Intentmode: start service,, and you will have to add a extra key called force (type bool) and set it to true.
Note, if you are using the test version of the app you will need to use a different packaggename. Hence, instead of please use the other settings stay the same.
You can also combine the two auto sync ways.

How to configure auto sync intervals:

The app supports to types of autosync intervals. First of all the global autosync interval which can be configured at the App preferences (at the Autosync preference group). This global sync interval is used by default by all WebContacts. Additionally you can override for each WebContact this global sync interval and can configure an individual one so that e.g., the first address book is synced every hour and the second one is synced every day. This can be done by Starting ContactSync -> pressing menu button -> selecting WebContact Overview -> Press long on the WebContact (list entry) that you want to adapt and choose edit. Scroll down and now you can choose an individual sync interval or choose that the WebContact should continue to use the global one, finally save your changes. You can also disable a WebContact completely and then it is no longer synced during the autosync but you can e.g. still sync it manually.

Basically there are two different ways how my app can be used to sync your Outlook contacts with Android:

  1. Exporting your Outlook calendar to an .vcf (Select all your Contacts with Ctrl+A -> Right click -> select Send as Business Card -> A Mail will be created. Select all the created attachments. -> Drag and Drop the attachments into a folder on your PC) file. Such a file can then be copied to your Android device and can then be imported using my app. This way also supports to way sync by exporting the Android calendars (using my app) to an .ics file copying them from the Android device back to your PC and importing that file back into Outlook.

  2. Using a calendar server which supports CalDAV (for appointments) and CardDAV (for contacts). This way also supports a two way sync from and to Outlook. But because Outlook does not support CalDAV/CardDAV a additinal Plugin like iCal4Ol would be needed. My App supports all the necessary sync protocols to integrate your Android device in such a scenario.

Main Buttons and its features:

Parse local files:

If you press this button you will get a list of all available vCard files stored at a folder with following path /sdcard/ContactSync. You can select one by pressing long on the filename and then select that you want to parse the file. Afterwards you can press the import parsed information button on the main screen to save the contacts on the device.

Handle WebContacts:

If you press this button my app will take all the WebContacts which you have defined bevore and will download and parse the contact informations of your servers. Afterwards you can import the contacts by pressing the import parsed information button on the main screen. Some WebContact configurations can be synced in (loading, parsing and syncing with the device) in one step so that you will not have to press the import parsed information button.

Import parsed information:

After you have parsed information (contact information from the local device or from a network source) you can import them by pressing this button. Based on your configuration the information will be imported in different ways. You can find more information at the options/preference section in this manual.

Export to local file:

Takes all the contacts and groups on your device and exports them to a local .vcf file on your device. This can be used e.g. to backup your contact details. The exported file will be stored at a folder placed at following path /sdcard/ContactSync on your device.

Send logfile to dev:

You can send a logfile containing information about the operations of the app to me by pressing this button. This can help me to enhance the app and to provide support.


You are getting to this options if you press hardware or software menu button on your device (how the menu button is implemented on your device belongs to your manufacturer) .


Here you can define a global configuration which is used e.g. during every import and at every WebContact. E.g. you can define how my app should react if it detects dupliacate contacts.

Create WebContact:

By pressing this button you can create a WebContact. More information about WebContact can be found above.

WebContact overview:

Here you get an overview about all the WebContacts you have created. You can select single WebContacts and then decide to parse/analyse, edit, delete, ... them. A not so common feature is that you can assign contacts/groups which are not already connected to a Android sync account to specific WebContact so that you can use my app to upload your local contacts to one of your servers.

Display parsed contacts:

By pressing this menu button you will get an overview of all the contacts you have analysed/parsed. It will display contacts from local files and also contacts from WebContacts. It will provide you with an quick overview about the information you will be importing (an storing on the device) if you decide to press the import button on the main screen.


Will display this manual.


Here you can configure the application.

What can be configured at the preferences:

Use auto sync:

Will automatically sync all your active WebContacts based on a configurable interval.

Store autosync log:

The app will automatically store a logfile containing details about the last automatic sync.

Auto sync interval:

Configure how long the app should wait between two sync operations.

External autosync trigger:

Enable this to allow external apps like e.g. Tasker to trigger a autosync of ContactSync.


Enable this to ensure that the app will only automatically sync your WebContacts if you have a active WIFI/WLAN connection.

Remove contacts bevore import:

If this option is enabled my app will delete contacts you have imported in previes session bevor it will import new ones. Only contacts which have been imported by the app bevore will be affected!

Categories to groups:

If you enable this option categories defined at the contacts will be mapped to android groups. So a group will be created which gets the name if of the categories and the contacts which got this categorie will be assigned to the group which has been created bevore. This feature will only be used on version 3 and version 2.1 vCards because version 4 can already allows it to define real groups and so it will not need such a workaround.

Download photos:

Contact photos can be directly stored at the contact data or they also can be only stored as a reference to an online source where the image can be found. If you enable this feature the references will be followed and the picture will be downloaded.

Android aggregation:

All contacts which have been synced/imported after you have been enabled will be automatically aggreagated by the contact aggreagation logic built in in Android. My app can not influance how Android aggregates your contacts but if you don't like it aggregation can be disabled completely using this setting.

Handling of existing contacts:

Here you can chose how my app should react if it detects that a contact which should be imported is already present at the device. You can chose to skip the contact, to replace the contact on the device which the new one or to merge the information of the existing contact with the information of the new contact. It is also possible to choose that you want to import the contact anyway.
The merging (which will be applied if you choose the merge option out of the four possibilities) will merge completely new information. So if the old one does not have adresses but the new one got adresses the addresses will we merged. But if the old one and the new one has adresses the app will ignore the new one to prevent duplicates.
This fine tuning options will only be applied if you import data from local vcard files. So if you sync with a network source e.g. a contact server then your data will always be managed in a way that it stays in sync on all devices.

vCard standard for export:

Here you can select the version of the vCard standard you want to using for your exported contacts and groups. Because only vCard version 4.0 has the possibilty to speicie groups a workaround for groups will be used if you select 3.0. The workaround is that the groups a contact belongs to will be stored at the cateogories section of the specific contact. Version 2.1 of the standard is not supported because 2.1 does not allow it to define UIDs at a vCard. This UIDs are very helpfull for correctly updating already existing contacts and groups.

Ignore SIM:

Enable this option do ignore contacts which are stored at the SIM during the export to a local .vcf file.

Only local data:

Exports only contacts/groups which are not associated to any sync adapter.

Date format for BDay/Anniversary:

Here you can select the date format your device uses. More information can be found above.

Display statistics:

The app will try to display sync statistics of your WebContacts if possible. Sync statistics are only available if you are using a WebContact with enabled two way sync option or a WebContact which uses the optmized CalDAV one way sync.

Device id:

I need this device id to generate a license which you can manualy add to the app. You only will need such a license if you buy the app NOT at the google app store else all the licensing will be handled automatically.

Google independet license:

Here you can add your google independet license if you have bougth the app directly from me. If you would like to use all the features of the app you need a license key. To get such an unlimited license please contact me at