Frequently Asked Questions
About the app (general):
- Who developed ICSSync?
ICSSync was designed, developed and published by Nightlabs Consulting GmbH, a company with highly-qualified Java specialists. Our office is Freiburg, Germany.
- Questions about the Unlocker?
Please go to FAQ Unlocker.
- Which Android versions are supported?\
- Android 2.2 - 2.3.x: stable. Froyo is the first supported version. This is due to a major refactoring of the calendar backend in Android.
- Android 3.x: currently unsupported. Currently it's not working on Honeycomb (Android 3.x) and we can not adapt it because Honeycomb is still closed-source and we are suffering under this control of quality policy. Please do not ask for support: we would like to, but we can't. The only hope: If the adoption for Android 4.x is finished, we will test and re-evaluate the support for HoneyComb.
- Android 4.x: 4.0.x: stable IceCreamSandwich (amusingly abbreviated 'ICS') and 4.1.x were was published open-source and now has a real calendar interface for developers that ICSSync was adopted to. The first version supporting Android 4.x was 1.4.0.
Nice to know / tips (ICSSync):
- Delete ICSSync calendars
If you have chosen to delete a sync-entry in ICSSync but to keep the according calendar and you want to get rid of this calendar later on, you can do this with a trick: Sync all events before! Warning: You will loose all data that is connected with this account with the next step! Remove the sync-account of ICSSync in the preferences of your android device. Do not let ICSSync sync and reboot your phone now. On or after boot-up, Android will wipe all calendar-data that is not connected with a sync-account. Afterwards go to ICSSync and sync all calendars.
Nice to know / tips (3rd party apps):
- How to use ICSSync with Tasker?
A Tasker-user approved the usage with Tasker with the following configuration: Add a "component intent" (under "misc") with class org.nightlabs.android.icssync.service.ICSSyncIntentService, package org.nightlabs.android.icssync and extra: force:true. See forum post.
Open problems / Known bugs:
- Recurrent events with exceptions:
E.g. At one instance of a recurrent event a different location or description is specified (currently you can just specify such exceptions on not-Android calendar programs). Currently such exceptions will be ignored. Canceled events are not affected thereby.
- On deletion of syncfeed AND calendar the calendar could not get deleted.
This bug is solved since version v.1.0.2. If you still suffer under this behavior, please let us know (versions of Android, calendarProvider / calendarStorage, ..., ICSSync).
- CyanogenMod and other custom ROMs: The calendars get erased on boot-up!
Background: A clean-up routine will remove any calendars which are not connected to a sync-account. This occurs on any Android device, though we created an ICSSync-Sync-account in your Android preferences (it's gray, don't worry about that). We assume that CyanogenMod users have to install some more apps from the google app package (relating synchronization, calendar, ...). If you figured out which ones solves the problem, please let us know!
- ICSSync on SD-Card:
Installing ICSSync to the SD-card is intentionally not allowed. Root-users might be able to ignore this restriction: You will loose all calendar data every time the cleaning routine of the calendar-provider starts (e.g. on boot up).
Remark: iCalendar files could have very sophisticated VTIMEZONE definitions (with workdays, special daylight savings, ...) and even more than one VTIMEZONE, as well as some propretary values of the clients. So the VEVENTs are referencing this definitions which must be interpreted and transfered to a format the CalendarProvider can handle. The Android CalendarProvider (coded by Google) has just simple timezone definitions for calendars and for events. We know that ICSSync currently does not work perfectly with all timezone definitions. It works for ours and for some customers who have written good bug-reports with attached calendar data (thank you all!). So you can either work on your VTIMEZONEs by yourself or you will have to wait until an update of ICSSync is able to handle your definition properly.
- Daylight saving time:
* Between the Sunday of daylight switching and the end of month the time is (un-)shifted by +/- 1h. This is due to a bug in the library. We hope to get rid of this with an update of this lib.
The duration does not get interpreted correctly by Android, but it gets stored and validated well (analyzed on Android v2.2).
We sync it without any modification into Android. But as the sync back has lead to data loss for some types of organizer-values, we decided to not sync this from Android to remote. We hope to get this done with a lib update.
Open features (often requested via support mails):
Please be advised that we can not promise the publication of any feature before it is finished and tested. If we implement one, it will be stated on the version-history.
- Attendee data:
The sync of attendee data is still under development (no, it's not just a text-field ;-) ).
- CalDAV, ... support:
Currently these is not supported. Some parts could have already been evaluated, problems might occurred, or the problem was too big and shifted to the next big version. Whether (and when) it gets implemented is currently unclear.
Some people, for example seen in the market-comments on ICSSync, miss their VTODOs on their Android device (and even gave us lower ratings for this). But we can not store them in the calendar storage, or where would they expect them to be? With which app would these critics like to view and modify your todos?? We need two things to solve their needs:
- There is no open todo-backend:
Currently we do not know an open task backend, which is VTODO-compatible, where we could store the VTODOs of an iCalendar. According to com.android.providers.calendar (AKA calendar-storage, with reminder-logic, etc.). If you know one, please tell us!
- There is no open todo-app ...
... which uses the open todo-backend, mentioned above, for editing the todos. If you know one, please tell us!
- If you like to fund one of these apps, please contact us. :-)
- If you are an Java/Android developer and like to help develop an open todo-storage and/or a todo-GUI-app, please contact us for commitment rights! :-)
Why these permissions?
- android.permission.READ_CALENDAR, android.permission.WRITE_CALENDAR
We read from, respective write to, the native calendars of your device.
- android.permission.INTERNET, android.permission.ACCESS_NETWORK_STATE
We sync via internet and before we check your kind of connection (WIFI or mobile), so that you can determine whether you like to prevent mobile-net traffic or just (in most cases) free WIFI connections.
We sync with the use of a background service, that will start running if the device is awake or wakes it up if you want it to. This is just like your email app which checks for new emails even if the display is switched out. But if the device starts to run and it falls asleep, the sync would be cancelled and possibly in the middle of its run. So to ensure that every started sync-run will be finished we set a lock to ensure the wake status of the device and your calendar sync has a reliable behaviour. After the sync run the wake-lock will be released immediately to safe your battery power.
If the boot-up of your device is finished, the background service will be started and a timer for the next sync-run will be set. So you don't have to start the auto-sync service by yourself each time you reboot your device.
Needed to access the id of your device. Used for licensing.
- android.permission.MANAGE_ACCOUNTS, android.permission.GET_ACCOUNTS, android.permission.AUTHENTICATE_ACCOUNTS
We create a sync-account in Android which owns the calendars we create. Without account the calendar would be removed in maintenance operations of the calendar storage.
To save events from the Android calendar-store to the *.ics file on your sd-card.