Android iCalParse/CalendarSync

Contact: calendarsync[at]gmx.at



Manual

Features:

  • Using a self-created parser which supports complex and more features than other iCalendar parsing/importing applications.
  • Import appointments, alarms and attendees direct from iCal files (*.ics). and applications.
  • Import appointments, alarms and attendees direct from Microsoft Calendar files (*.vcs) and applications.
  • Export appointments, alarms and attendees which are stored on the device to iCal files (*.ics).
  • Make a quick look at the appointments stored in the iCal files.
  • Update old and add new appointments from an iCal file.
  • iCalendar files are associated to this app.
  • Timezone support.
  • Create and remove calendars on the device.
  • Fingerfriendly landscape/portrait mode aware GUI.
  • Load, Parse and sync ICal files direct from the Internet from different sources.
  • The app supports self signed certificates.
  • Supports the sync from and to server which provide calendar information with HTTP/HTTPS (WebDAV if you want to use two way Sync).
  • Supports the sync from and to server which provide calendar information with CalDAV.
  • Easy and simple configuration through automatic server addressbook detection (CardDAV)
  • Supports the sync from and to server which provide calendar information with FTP/FTPS.
  • Supports the download/handling of webcal/webcals feeds.
  • Periodically background sync of calendar information.
  • Automatically background sync can be handled periodically by the app itself or it can be triggered by external applications like Tasker.
  • Checking for updates
  • Logging, no secrets, you can - if you wish - always see what is happening and why.
  • Supports self-signed certificates and client certificate based server authentication
  • Advanced filtering which information should be imported
  • Supporting devices with more than one cpu core to speed up parsing/importing/downloading of information.
  • Multi-language: Currently English, German, Spanish, Russian, and French.
  • If you are interested in translating the app in other languages please contact me.

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 calendarsync@gmx.at. Many organizations are already successfully applying the app.

Requirements:

Android 2.2 or later.

Hint:

If you get a list of information e.g. a list of iCalendar (.ics) 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.

Initial configuration:

Most of the time Android devices will use more than one calendar. So the app allows it to choose the calendar where the appointments should be synced. To do so use the preferences. If the user does not select a calendar and starts the importing of calendar information the app will selected a calendar automatically if possible.

Basic workflow:

The app always uses two step. First the analyse step (Parse or Handle WebiCals button). During this step will try to find/get calendar information e.g. by asking you to select a file or downloading different calendar information from a network. Afterwards it will parse/analyse the information and it will prepare this information for importing. Now you can press the start import of the calendar information which is the second step (Import button). This is the reason because the import button only gets active if any information is available for the import. Some WebiCal configurations (e.g. if you create a WebiCal with enabled two way sync) will directly import calendar information so you will not have to press the import button.

Dummy Sync Account:

The app will create a dummy sync account if you use the app to create a new custom calendar. This account is necessary to prevent Android from deleting your custom calendars

Main Buttons and its features:

Handle WebiCals:

By pressing this button you will tell my app do handle (downloading, parsing and so on) all the configured WebiCals. A single WebiCal stores all the information about your network calendars e.g. where to find the server and how to access the data. More information can be found below. Afterwards you can press the import button to store all the downloaded appointment on your device. If you configured your WebiCal to use a two way sync you will not need to press the import button because all the importing will be done automatically.

Parse local files:

To work with iCalendar information you will first have to parse them. Pressing this button you can parse a iCalendar (.ics) file on your Android device or on the Internet. After you have parsed some information the import button will become available and you can take a look on the parsed information by using the Display parsed iCals menu button.

Import:

After you have parsed information you can import them by pressing this button. Based on your configuration the information will be imported in different ways in an different calendar. You can find more information at the options/preference section in this manual.

Export Appointments:

If you press this button the app will export all appointments stored in your calendar (You can select the specific calendar to export at the preferences). The calendar will be exported to a file called (CalendarName).iCalendarBackup.(DateAndTime).ics which will be stored at a folder called CalendarSync at your phone.

App Messages:

Here you can see a list of all status and error messages created by the application. This is used for debugging and you can see the App "working" if you are interested. You can also save a logfile by pressing the "Save Log" button. It will be stored at a folder called CalendarSync at your phone and will be called Log.(DateAndTime).txt. You also can send the current log to me. Then I can analyse the loginformation for problems. To do so press the "Send log information to dev" button. The a mail will be created which you can send to me.

How to move your calendars to a new device?

If your calendar data is already available at some sync service, server, cloud or anything similar then CalendarSync 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 CalendarSync to move your calendar data onto a new device. Therefore three steps must be executed (Note, that CalendarSync must already be installed on the new and the old device.):

1) Export the calendars on the old device: Therefore start CalendarSync and press the fourth "export" button from the top. Now select which calendars should be exported (i.e., moved to the new device later one) and press the export button.
2) Copy the created (i.e., exported) calendar data file to the new device: The exported calendar data is stored in a standardized iCalendar file. This iCalendar files (one for each calendar which you chose to export) are stored on the internal storage of your old Android device in a folder called CalendarSync. 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 or Google Drive, send it by mail, use USB cables, and so on (the options are almost endless).
3) Import the calendars on the new device: On the new device simply open the calendar file and CalendarSync 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. Finally, you can press the import button and import the calendar/appointments.

How to parse/import a local iCalendar (.ics) file:

By pressing the parse button, selecting a file and using the context menu to parse it. Afterwards press the import button. Or you can just open calendar files like any other files on your device e.g. music files. So just press on them at your preferred file explorer and you will be asked to use my app to handle/import the selected file. Also if the file is attached to e.g. a email my app can work with it.

Calendarmanagement:

You can use my app to create new custom calendars on your device. You can find this feature if you press the menu button at the main screen and select the "Special features" menuitem. You can use the created calendars for synchronization e.g. with WebiCals. The created calendars will be independent from Google and the appointments stored in that calendars will not be transferred to Google!

How to parse/import iCalendar files on the internet:

You have to define a WebiCal for your Internet iCalendar source. You can do this by pressing the menu button and then choose "Create new WebiCal". If your internet source is a webserver use the source type HTTP/HTTPS. If you use a CalDAV Server use CalDAV. If you use a FTP Server use FTP/FTPS. For each WebiCal you can define a specific calendar where the appointments should be saved/synced. If you don't want to do this the calendar defined at the preferences will used. If the defined calendar has been deleted the app will search for a calendar itself. Afterwards you can press the Handle WebiCals button on the main window or you can use the context menu at the "Display WebiCals" list. Afterwards press the import button on the main screen (some WebiCals will import calendar information automatically so you will not need to do this). If you use CalDAV, WebDAV(HTTP) or FTP it is not only possible to sync calendar information from the server to the device, it is also possible to sync changed appointments from the client back to the server.

How to configure autosync:

There are two ways of using CalendarSync for a automatic sync with internet sources of various types. At first you always have to configure the internet sources, by creating WebiCals. 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 autosync at the preferences and select a autosync period. E.g. if you select a period 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 autosync service. If you change the autosync 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 CalendarSync 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 = com.icalparse.autosync.ServiceAutoSync
Extra = com.icalparse.force:true
Target: Service

Also the app Llama has been confirmed to work. There you will have to configure Intentmode: start service, Packagename:com.icalparse, Classname:com.icalparse.autosync.ServiceAutoSync 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 com.icalparse please use com.icalparse.free the other settings stay the same.
You can also combine the two autosync 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 WebiCals. Additionally you can override for each WebiCal 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 CalendarSync -> pressing menu button -> selecting Show existing WebiCals -> Press long on the WebiCal (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 WebiCal should continue to use the global one, finally save your changes. You can also disable a WebiCal completely and then it is no longer synced during the autosync but you can e.g. still sync it manually.

What are WebiCals:

WebiCals are used to define an internet source for your iCalendar information (it stores where and how to access and find your appointments using a network connection). So at a WebiCal you can set the URL of your server, your user/password combination, the type of the server connection e.g. HTTP, CalDAV, FTP and so on. If you press the Handle WebiCals button on the main window all active WebiCals will be loaded and parsed. Also the autosync feature will parse/import/sync all active WebiCals. You also can define the WebiCal as inactive so that it will not automatically be parsed. By default a WebiCal will be active. The primary WebiCal setting can be used if you want to sync MULTIPLE WebiCals with the SAME Android Calendar. If a new appointment is created on your device the primary WebiCal setting will be used to determine on which server the appointment should be stored. So you will only need it in such a edge case. To set it as inactive use the Display WebiCals Option and perform a long press on the WebiCal to edit it. You can also parse a inactive WebiCal by using the Display WebiCals option and perform a long press on the WebiCal. Afterwards select parse. Some WebiCal configurations will automatically import calendar information into your calendars.

WebiCals settings:

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

Protocol local:

Set this to sync my app periodically with calendar 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.ics you will only have to enter /testfolder/test.ics. 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.ics you will have to enter /../sdcardXX/testfolder/test.ics. 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.

URL:

Here you, if you are using WebDAV/HTTP or FTP, have to configure the full path to the calendarfile.
Example URL using WebDAV/HTTP:http(s)://mydomain.com/myfolder/mycalendar.ics
Example URL using FTP:ftp(e)(s)://mydomain.com/myfolder/mycalendar.ics
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 CalDAV, please see the CalDAV provider list where you can find tips for a lot of servers.

CalDAV WebiCals two way sync:

If you have active CalDAV WebiCals defined and you want to sync changes from the device to the server and from the server to the device you have to set the "Two way sync" checkbox during the WebiCal configuration. If you start the handling of this WebiCal the changes made on the server will be synced to the device calendar and afterwards the changes made on the device will be synced to the server. New appointments will be synced to the primary WebiCal which is connected to the device calendar where the appointment has been created. If the app does not find a primary WebiCal it will select a CalDAV Webical as primary itself. It is not necessary to start the import step. All work will be done automatically during the handling of the WebiCal.

FTP WebiCals two way sync:

If you have active FTP WebiCals defined and you want to sync changes from the device to the server and from the server to the device you have to set the "Two way sync" checkbox during the WebiCal configuration. If you start the handling of this WebiCal the changes made on the server will be synced to the device calendar and afterwards the changes made on the device will be synced to the server. New appointments will be synced to the primary WebiCal which is connected to the device calendar where the appointment has been created. If the app does not find a primary WebiCal it will select a FTP Webical as primary itself. It is not necessary to start the import step. All work will be done automatically during the handling of the WebiCal.
You will have to configure the full path to the file at the URL field. Example ftp(s)://yourdomain.com/yourfolder/yourfile.ics
Please mention that FTP is not designed to support concurrent calendar operations. So if you have multiple users executing a two way sync at exact the same time there is the possibility that a sync fails. If you really want to sync multiple users to one calendar I recommend the use of a calendar server supporting CalDAV.
It is also problematic if you have defined elements at your appointments which are not supported by Android (e.g. Android does not support binary attachments at appointments) this information could be lost during sync.

HTTP/WEBDAV WebiCals two way sync:

If you have active HTTP/WEBDAV WebiCals defined and you want to sync changes from the device to the server and from the server to the device you have to set the "Two way sync" checkbox during the WebiCal configuration. If you start the handling of this WebiCal the changes made on the server will be synced to the device calendar and afterwards the changes made on the device will be synced to the server. New appointments will be synced to the primary WebiCal which is connected to the device calendar where the appointment has been created. If the app does not find a primary WebiCal it will select a HTTP/WEBDAV Webical as primary itself. It is not necessary to start the import step. All work will be done automatically during the handling of the WebiCal. The file which will be used for the sync must already exist on the server.
You will have to configure the full path to the file at the URL field. Example http(s)://yourdomain.com/yourfolder/yourfile.ics
Please mention that HTTP/WebDAV is not designed to support concurrent calendar operations. So if you have multiple users executing a two way sync at exact the same time there is the possibility that a sync fails. If you really want to sync multiple users to one calendar I recommend the use of a calendar server supporting CalDAV.
It is also problematic if you have defined elements at your appointments which are not supported by Android (e.g. Android does not support binary attachments at appointments) this information could be lost during sync.

How to sync already existing appointments with a WebiCal:

Already existing appointments can be assigned to a choosable WebiCal. To do so press long on the WebiCal (you can get a list of all WebiCals at the WebiCal overview available at the app itself) which the appointments should be assigned to. Then choose Assign appointments. You can now select which calendars/appointments should be assigned to the WebiCal. During the next sync they will be recognized as new and will be transfered to your server.

How can you sync a Google or Exchange calendar with your own calendar data sources:

You can also use CalendarSync to sync, for example, a custom calendar data souce (all connection protocols supported by the app can be used such as your own home server or a calendar service) with, for example, a Google or Exchange calendar. Therefore you will need to combine the default Google/Exchange Sync adapter which is built into Android and CalendarSync.

So it will work like this:
Google/Exchange Calendar <- Google/Exchange Sync Adapter from Android -> Android Calender <- CalendarSync -> Your arbitrary Calendar Data Source

First configure CalenarSync that the appointments from your own calendar data source are visible on your device (Therefore:start CalendarSync -> Press menu button -> Create new WebiCal). I recommend using the guided configuration mode if you use a calendar data source which supports CalDAV. For all other calendar data sources (FTP, HTTP, WebDAV, WebCal, FTP, Cloudstorage, local files,...) you can use the professional configuration mode. Then configure the Google/Exchange Sync Adapter that is built into Android so that you see your Google/Exchange appointments too .

Two independent calendars "Google/Exchange Calendar" and "Your Calendar Data Source" are now visible on the device. The first one is synced by the Default Android Google Adapter and the second one by CalendarSync.
Now we will "connect" both.

Note, if the connected calendar data sources/calendars contain equal appointments BEFORE the configuration then these will, likely, lead to duplicate entries. Hence, I recommend starting with a fresh empty calendar on one of the two sync sides. After the first sync CalendarSync knows which appointments origin from which calendar data source and no duplicates will occur!

To connect both calendar data sources:
Start CalendarSync -> Press menu button -> Display Created WebiCals

Now you see the WebiCal for the newly configured "Your Calendar Data Source" Calendar. Press long on it and select "Clone".
It will copy the WebiCals (Server configuration) and you can now scroll down and at the combobox where you can select the calendar which is used by the WebiCal select the one from "Google/Exchange Calendar".
Scroll down and save. Now both calendars are "connected". The old WebiCal which was only created to ease the configuration can now be removed.

Attention: The Google/Exchange Server sends out notifications/invitations to each appointment attendee if the appointment is uploaded to a Google Calendar. To prevent the sending of hundreds of invitations (if e.g. each of your appointments contains multiple attendees) you can tell CalendarSync to not sync the attendees at the settings. Hence start CalendarSync -> Press the menu button -> Select Preferences. This can be done at the app preferences a the "Import options" group -> Active:Do not create attendees (so that attendees are not synced from your private calendar data source to the Google/Exchange Calendar) and at the "Workaround" group -> Activate: Don't export attendees to (so that attendees are not synced from Google/Exchange Calendar to your own calendar data source) - so that both sync directions are addressed.

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

  1. Outlook can publish a calendar to a WebDAV Server. CalendarSync can then download this appointments from the server and transfer them to the Android device. A free WebDAV account is enough for such a sync e.g. http://www.icalx.com/ provides such a possability. This way only allows one way sync from the Outlook to the Android device.

  2. Exporting your Outlook calendar to an .ics (File -> Save as -> Select iCalendar Format (*.ics) as File format -> Save as Type) 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.

  3. 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.

  4. Using WebDAV (for appointments). This way also supports a two way sync from and to Outlook. But because Outlook does not support WebDAV 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. There are free WebDAV capable webspaces available from various vendors, so compared to possability 3 a complex calendar server is not required.

Large-scale orders:

The app supports some interesting features for large-scale orders. So e.g. you easily configure the WebiCals (Server Calendars) through adb. This feature and a custom licensing algorithm will ease your live as an admin. Are you interested? Then please contact me at calendarsync@gmx.at!

Automatic calendar detection (CalDAV):

The app can automatically detect all your calendar on your server. Therefore Start the App -> Press Menu Button -> Selecte Create WebiCal. There you will have to choose Start the guided CalDAV setup. Then fill in your url, username and password. You can now test the connection to your server. This will inform you if the server could be found, the login worked and so on. You can proceed to the calendar detection if the tests went fine. The detection will try to find all your calendars on your server. You can select which calendars you want to sync and my app will create new Android calendar and appropriate CalDAV WebiCals for you. Now you can start your first manual or automatic sync with your servers.

Backup and restore of configurations:

You can export existing WebiCals. Therefore Start the App -> Press the menu button -> Choose Display created WebiCals -> Press the menu button again. If you choose Backup all WebiCals then the app will export your currently configured WebiCals and save them at the apps main folder (by default this is a folder namend CalendarSync, 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 WebiCal 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 WebiCals along with new Android calendars so that the appointments can be stored. If you have chosen not to export the Login credenitals then you will have to edit the WebiCals and add the password so that CalendarSync can access your data.

Move your configuration from the trial to the pro version:

You can move existing WebiCals and metadata from the trial to the pro version. Therefore Start the App -> Press the menu button -> Choose Display created WebiCals -> Press the menu button again. If you choose Transfer WebiCals to Pro Version then the app will export your currently configured WebiCals and save them at the apps main folder (by default this is a folder namend CalendarSync, the default configuration can be overwritten at the app settings). To restore a backup you will have to choose Restore WebiCal backup (at the WebiCal 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 WebiCals along and will reuse the existing calendars and appointments.

Menu:

Display parsed iCals:

If you have already parsed a WebiCal or an iCalendar file stored on your device you will here be able to see an overview of the parsed information. If you make a long press at a list entry you will get a context menu with a button called Details. If you press this button you will be able to see more detailed information about the appointment.

Create new WebiCal:

Here you can create a new WebiCal. You can define an URL (where to find iCalendar information) and if necessary a Username/Password combination which will be used to access the iCalendar information. You also have to define the Source Type e.g. if the iCalendar information are stored at a Webserver, a FTP Server or a CalDAV Server. For webcal/webcals calendar feeds use HTTP/HTTPS as source type. If you select HTTP and you want to use WebDAV you also can choose between different WebDAV provider. For the most user the generic option will be perfect but you can check and see if your provider is available at the list. If you select CalDAV at source type you also can select a CalDAV Provider. Most of the time the generic provider will be fine. But sometimes you will need a special provider e.g. if the server software of this provider has bugs or not a valid CalDAV implementation so that the server will need special treatment. You also can select a specific device calendar which should be used sync the WebiCal. So that the WebiCal can sync with calendar which is independent from the calendar you have selected at the preferences. If you do not define a specific calendar or the calendar you have selected had been deleted the calendar you have defined at the preferences will be used. If you did not define any calendar at the preferences the app will try to select a valid calendar itself. You can edit your WebiCals at the Display WebiCal Window (Press long on the WebiCal you want to edit).

Display WebiCals:

Here you can get an overview of the WebiCals you have already created. By a long press on an list item you will get following options:

Delete:

Deletes the WebiCal. If you delete a WebiCal also the appointments synced from this WebiCal will be removed (from the device only).

Parse:

Loads and parses this single WebiCal.

Edit:

Here you can edit the WebiCal e.g. change the defined password or disable the WebiCal.

Clean up:

Deletes all the appointments which have been synced before using this WebiCal (from the device not from the server). The WebiCal itself will not be removed.

Manual:

Will display the manual.

Special features:

Here you will find a bunch of features you will not need so often. E.g. here you can create or delete device calendars. If you delete a calendar all assigned appointment will be deleted too.

Preferences:

Here you can configure the application.

What can be configured at the preferences:

Import and remove old:

If activated appointment which have been imported with this App will be deleted before new appointments will be imported.

Don't remove old:

If activated appointments which have been imported with this App will NOT be deleted before new appointments will be imported. Appointments which are already on the device will be updated. If you are syncing a WebiCal with is not defined to use a two way sync and you have enabled this options the appointments which are no longer present at the WebiCal will be deleted. The difference to the option above is that if you have only enabled the "import and remove option" all WebiCal appointments would be removed before import. If you also have enabled this option only the appointments which have been removed from the WebiCal source will be removed. All other WebiCal appointments will be updated.

If you deactivate both options no importing will be possible. These two options have no effect on WebiCals which have enabled two way sync because at these WebiCals the specific remove, update, ... operations can be determined by the changes at the calendar information.

Calendar for import:

Choose which calendar should be used for imports. All calendars on your device will be available. If the name of a Calendar cant be read it will be displayed as NA.

Do not create attendees:

If activated attendees/organizer will no be created during import/sync to prevent the automatic sending of invitations.

Limit attendee import:

If activated the amount of attendees which will be imported will be limited to a configurable amount. This could be used to speed up import if you have appointments with hundreds of attendees e.g. appointments which have been sent to the whole company. To configure how many attendees should be imported you can use the attendee amount limit preference below. Using this option can speed up the import.

Attendee amount limit:

Configure the attendee limit which will be used during import if you have enabled the Limit attendee import option above.

Do not create alarms:

If activated alarms will not be created during import/sync.

Sync file calendars with WebiCals:

Appointments imported from local calendar files (e.g. .ics files you got sent by mail) will also be synced back to the servers configured at a WebiCal with enabled two way sync option, if they are imported into a calendar assigned to such a WebiCal. This can be used e.g. to sync appointments from .ics files to a CalDAV server.

Check for new Versions:

If activated the App will check for an update during startup and will inform you if there is a new version of the software available.

Auto import:

If activated every (WebiCal and file) iCalendar information you parse will automatically be imported.

Use notifications:

If activated important information will also be displayed as notifications even if the App is displayed during parsing/importing. This is useful if you start parsing/importing calendar information and then send the App to the background.

Never display notifications:

If activated the app will never display notifications even if the app is working on a background operation.

Prevent sleep mode:

If activated the app will prevent the deep sleep mode of the device during manual import/parsing of calendar information. During autosync the deep sleep mode will be prevented automatically. This is useful if you parse/import very big and complex calendar information and your device is configured to go into a power save mode after some e.g. minutes. If you activate this option the app will be able to continue in such a situation.

Import start/end day shift:

Shifts the start/end date of the appointments during import. This is necessary on some android devices.

Import start/end hour shift:

Shifts the start/end date of the appointments during import. This is useful if you get a calendar file from another country which has no timezone information attached and you want to change the dates.

User created calendar owner mail:

At this option you can define which mail address should be used for the calendar owner if you create a new custom calendar. If you define none or a invalid owner mail address following address will be used:"sync.account@dummy.at"

Hints:

The app displays specific hints at special events e.g. at the first start up. Normally this hints will only be displayed once. Here you can define if the hint should be displayed again.

Workarounds:

The app uses workarounds for specific (device dependent) android versions. Some of them can be enabled or disabled here.

You will need a valid license to activate the following options:

Calendar for export:

Choose which calendar should be exported. All calendars on your device will be available. If the name of a Calendar cant be read it will be displayed as NA.

Custom device import/export path:

You can enter a custom path which my app will used to store the exported calendars, logfiles, and so on. The path has to start and end with an /. Also the directories used in that path must exist. If the defined path is not valid following default path will be used (/mnt/sdcard/)/CalendarSync/. The path which is entered by you will always start in /mnt/sdcard/. This initial part of the path will be automatically attached by the app. If you do not want not to use /mnt/sdcard/CalendarSync/ but you want to use /mnt/sdcardTwo/CalendarSync/ you will have to define following path at the preferences /../sdcardTwo/CalendarSync/. The /../ is used to go back by one step from /mnt/sdcard/ to /mnt/.

Use Autosync:

The App will periodically sync your active WebiCals in a background operation. If you have defined WebiCals with enabled two way sync option the app also will sync client changed back to the server. The client will prefer a WebiCal with enabled two way sync option and which has been marked as primary for new appointments. If no primary WebiCal is defined and this option is activated the app will select a WebiCal with enable two way sync option to sync with by its own. Appointmetns which have been changed will be synced with their specific WebiCal Source.

Sync only during working hours:

If enabled the autosync will only be executed during working hours (6AM to 6PM).

Save log from autosync:

If activated the app will automatically sync logfiles after the autosync has been finished.

Autosync period:

Configure how often the app should sync with the configured and active WebiCals.

Allow external autosync:

If this is activated the app will allow external apps like Tasker to trigger an autosync by the use of CalendarSync. Above I have described how to configure Tasker to do so.

Autosync on WIFI/WLAN only:

If this is activated the app will only start an automatic or external triggered autosync if a WIFI/WLAN connection is available.

Filter iCal information:

If activated the iCalendar information will be filtered during parsing. Only appointments which match the filter will be able to import. For filtering you can define a time period and the app will only import values which have an occurrence during a specified period which you can define starting from an specified month/year to a specified month/year. Also appointments with complex recurrence rules will be handled correctly. The period can be defined by pressing the button "Configure period filter" below this option.

Display statistics:

If activated the app will display some statistical information after a CalDAV/HTTP/WEBDAV/FTP two way sync (e.g. how much appointments have been identified as deleted on the server).

Configure period filter:

Use this to configure the filter which is described above. If your filter configuration is not valid e.g. your start period year is after your end period year the filter will not filter any information.

Additional Configuration:

Device Id:

Your unique device id.

App Version:

The actual version of the App.

Google independent license:

Here you can add your license code. This is only necessary if you have not bought the app the the Google Market/Play Store!