FORUMS
Remove All Ads from XDA

[APP]CalendarSync sync/manage appointments on Android/Blackberry

373 posts
Thanks Meter: 41
 
By 920904, Senior Member on 8th January 2011, 04:38 PM
Post Reply Email Thread
CalendarSync is an Android app (also works on Blackberry) which you can use to sync your calendars and appointments using CalDAV, WebDAV, HTTP, FTP or plain .ics calendar files.

Do you want to check out the app? Then just load and install the free test version where you can check out all the feature for free at the Google Play Store, Blackberry World, Amazon App Store or directly from my website (link below).

A Windows mobile version is now available: http://forum.xda-developers.com/showthread.php?t=544181

Features:
  • Using a self-created iCalendar analyser which support 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 device calenders.
  • Fingerfriendly landscape/portrait mode aware GUI.
  • Load and analyse 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 informations with CalDAV.
  • Supports the sync from and to server which provide calendar informations with FTP/FTPS.
  • Supports the download/handling of webcal/webcals feeds.
  • Periodically background sync of calendar informations.
  • 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
  • Advanced filtering which informations should be imported.
  • Supporting devices with more than one cpu to speed up parsing/importing/downloading of informations.
  • Multi-language: Currently english and german.
    If you are interested in translating the app in other languages please contact me.

Requirements:
Android 2.2 or newer.

Permissions
android.permission.READ_CALENDAR and android.permission.WRITE_CALENDAR
The app is designed to interact with the calendar so it needs the rigth to read/write the calender e.g. to store new appointments.
android.permission.INTERNET and android.permission.ACCESS_NETWORK_STATE
The app can sync which various internet and network sources. So it needs the rigth to access the network.
android.permission.READ_PHONE_STATE
For licensing the app needs access to device id.
android.permission.WRITE_EXTERNAL_STORAGE
The app can import/export calendar informations based on files stored on the device so it needs the rigth to access the devices storage.
android.permission.RECEIVE_BOOT_COMPLETED and android.permission.WAKE_LOCK
This permissions are used for the autosync service. If the device reboots the autosync service will start automatically. To prevent interuption of the autosync process the app must be able to prvent the sleep mode temporarily.
com.android.vending.CHECK_LICENSE
This permission is used for license validation if you bougth the app at the google market.
android.permission.ACCESS_WIFI_STATE
This permission is used for the autosync service to prevent the app from syncing if no WIFI/WLAN connection is available.
android.permission.MANAGE_ACCOUNTS and android.permission.GET_ACCOUNTS and android.permission.AUTHENTICATE_ACCOUNTS and android.permission.*WRITE_SYNC_SETTINGS
The app can create custom calendars. To prevent automatic cleanup services from android from deleting this custom calenders these calendars musst be assigned with an existing sync account. The permissions above will be used to create such a dummy sync account.

If you like my app please donate so that i can develop further improvements.
Download (NO MIRRORING): CalendarSync click here
The Following 6 Users Say Thank You to 920904 For This Useful Post: [ View ] Gift 920904 Ad-Free
 
 
9th January 2011, 05:35 PM |#2  
OP Senior Member
Thanks Meter: 41
 
More
initial version 1.0 available
The Following User Says Thank You to 920904 For This Useful Post: [ View ] Gift 920904 Ad-Free
12th January 2011, 09:03 AM |#3  
Senior Member
Flag Denver
Thanks Meter: 28
 
More
I have installed it on my HD2 with NAND build but on clicking on Parse button app just crashes; please help me if I am missing something

Thanks
Pawan
12th January 2011, 10:27 PM |#4  
OP Senior Member
Thanks Meter: 41
 
More
Quote:
Originally Posted by pawandeep

I have installed it on my HD2 with NAND build but on clicking on Parse button app just crashes; please help me if I am missing something

Thanks
Pawan

Please test the new version.

new version:
online checking for new versions
logging
supporting recurring appointments
13th January 2011, 04:10 AM |#5  
Senior Member
Flag Denver
Thanks Meter: 28
 
More
Quote:
Originally Posted by 920904

Please test the new version.

new version:
online checking for new versions
logging
supporting recurring appointments

Thanks for quick response.

now it does not crash but its looking for a iCalParser folder in root and making it unusable for me ; is it possible to this folder to custom location ? can we add file association for .ICS files so it can be directly opened from file browser or emails.

Thanks
17th January 2011, 03:20 PM |#6  
OP Senior Member
Thanks Meter: 41
 
More
Quote:
Originally Posted by pawandeep

Thanks for quick response.

now it does not crash but its looking for a iCalParser folder in root and making it unusable for me ; is it possible to this folder to custom location ? can we add file association for .ICS files so it can be directly opened from file browser or emails.

Thanks

the ics files are now associated to the app.

new version 1.2:
iCalendar files are now associated to the app
much faster import of appointments. Up to 400% faster!
31st January 2011, 11:15 PM |#7  
OP Senior Member
Thanks Meter: 41
 
More
new version 1.3:
fixed a problem handling rrules
added a possibility to filter iCalendar informations during parsing which can also handle complex recurrence rules.
Performance improvements
Ready to get the maximum performance from phones with more than one cpu.
updated manual
8th February 2011, 09:42 PM |#8  
Senior Member
Thanks Meter: 18
 
More
thanks - good idea
if this appis working, i would prefer, to sell it - it is worth ~€10 for a HUGE user group(business users).

for nwo, i'm trying to import an ICS file, which i got via email (in K9-Mail)

1.) not assiosiated with ISC in k9-mail - don'T know why ?
2.) tried to click on "calendar list", then application crash
adb logcat:
Code:
E/AndroidRuntime(10266): FATAL EXCEPTION: main
E/AndroidRuntime(10266): java.lang.NullPointerException
E/AndroidRuntime(10266):        at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:355)
E/AndroidRuntime(10266):        at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323)
E/AndroidRuntime(10266):        at android.widget.AbsListView.obtainView(AbsListView.java:1431)
E/AndroidRuntime(10266):        at android.widget.ListView.measureHeightOfChildren(ListView.java:1273)
E/AndroidRuntime(10266):        at android.widget.ListView.onMeasure(ListView.java:1184)
E/AndroidRuntime(10266):        at android.view.View.measure(View.java:8224)
E/AndroidRuntime(10266):        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
E/AndroidRuntime(10266):        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1012)
E/AndroidRuntime(10266):        at android.widget.LinearLayout.measureVertical(LinearLayout.java:381)
E/AndroidRuntime(10266):        at android.widget.LinearLayout.onMeasure(LinearLayout.java:304)
E/AndroidRuntime(10266):        at android.view.View.measure(View.java:8224)
E/AndroidRuntime(10266):        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
E/AndroidRuntime(10266):        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1012)
E/AndroidRuntime(10266):        at android.widget.LinearLayout.measureVertical(LinearLayout.java:381)
E/AndroidRuntime(10266):        at android.widget.LinearLayout.onMeasure(LinearLayout.java:304)
E/AndroidRuntime(10266):        at com.android.internal.widget.WeightedLinearLayout.onMeasure(WeightedLinearLayout.java:60)
E/AndroidRuntime(10266):        at android.view.View.measure(View.java:8224)
E/AndroidRuntime(10266):        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
E/AndroidRuntime(10266):        at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
E/AndroidRuntime(10266):        at android.view.View.measure(View.java:8224)
E/AndroidRuntime(10266):        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
E/AndroidRuntime(10266):        at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
E/AndroidRuntime(10266):        at android.view.View.measure(View.java:8224)
E/AndroidRuntime(10266):        at android.view.ViewRoot.performTraversals(ViewRoot.java:812)
E/AndroidRuntime(10266):        at android.view.ViewRoot.handleMessage(ViewRoot.java:1752)
E/AndroidRuntime(10266):        at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(10266):        at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime(10266):        at android.app.ActivityThread.main(ActivityThread.java:4627)
E/AndroidRuntime(10266):        at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(10266):        at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime(10266):        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
E/AndroidRuntime(10266):        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
E/AndroidRuntime(10266):        at dalvik.system.NativeStart.main(Native Method)
I/        ( 3230): dumpmesg > "/data/log/dumpstate_app_error.log"
W/ActivityManager( 3230):   Force finishing activity com.icalparse/.ActivityDisplayPreference
W/ActivityManager( 3230): Activity pause timeout for HistoryRecord{48ae04b8 com.icalparse/.ActivityDisplayPreference}
if wanted i can give you an exchange account for testings ...
if interesting on a test engineer -> please contact me.

android 2.2.1 - galaxy 9000 - darkys ROM 9.2
cu camel
10th February 2011, 11:29 PM |#9  
OP Senior Member
Thanks Meter: 41
 
More
Quote:
Originally Posted by camro

thanks - good idea
if this appis working, i would prefer, to sell it - it is worth ~€10 for a HUGE user group(business users).

for nwo, i'm trying to import an ICS file, which i got via email (in K9-Mail)

1.) not assiosiated with ISC in k9-mail - don'T know why ?
2.) tried to click on "calendar list", then application crash
adb logcat:

Code:
E/AndroidRuntime(10266): FATAL EXCEPTION: main
E/AndroidRuntime(10266): java.lang.NullPointerException
E/AndroidRuntime(10266):        at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:355)
E/AndroidRuntime(10266):        at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323)
E/AndroidRuntime(10266):        at android.widget.AbsListView.obtainView(AbsListView.java:1431)
E/AndroidRuntime(10266):        at android.widget.ListView.measureHeightOfChildren(ListView.java:1273)
E/AndroidRuntime(10266):        at android.widget.ListView.onMeasure(ListView.java:1184)
E/AndroidRuntime(10266):        at android.view.View.measure(View.java:8224)
E/AndroidRuntime(10266):        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
E/AndroidRuntime(10266):        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1012)
E/AndroidRuntime(10266):        at android.widget.LinearLayout.measureVertical(LinearLayout.java:381)
E/AndroidRuntime(10266):        at android.widget.LinearLayout.onMeasure(LinearLayout.java:304)
E/AndroidRuntime(10266):        at android.view.View.measure(View.java:8224)
E/AndroidRuntime(10266):        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
E/AndroidRuntime(10266):        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1012)
E/AndroidRuntime(10266):        at android.widget.LinearLayout.measureVertical(LinearLayout.java:381)
E/AndroidRuntime(10266):        at android.widget.LinearLayout.onMeasure(LinearLayout.java:304)
E/AndroidRuntime(10266):        at com.android.internal.widget.WeightedLinearLayout.onMeasure(WeightedLinearLayout.java:60)
E/AndroidRuntime(10266):        at android.view.View.measure(View.java:8224)
E/AndroidRuntime(10266):        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
E/AndroidRuntime(10266):        at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
E/AndroidRuntime(10266):        at android.view.View.measure(View.java:8224)
E/AndroidRuntime(10266):        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
E/AndroidRuntime(10266):        at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
E/AndroidRuntime(10266):        at android.view.View.measure(View.java:8224)
E/AndroidRuntime(10266):        at android.view.ViewRoot.performTraversals(ViewRoot.java:812)
E/AndroidRuntime(10266):        at android.view.ViewRoot.handleMessage(ViewRoot.java:1752)
E/AndroidRuntime(10266):        at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(10266):        at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime(10266):        at android.app.ActivityThread.main(ActivityThread.java:4627)
E/AndroidRuntime(10266):        at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(10266):        at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime(10266):        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
E/AndroidRuntime(10266):        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
E/AndroidRuntime(10266):        at dalvik.system.NativeStart.main(Native Method)
I/        ( 3230): dumpmesg > "/data/log/dumpstate_app_error.log"
W/ActivityManager( 3230):   Force finishing activity com.icalparse/.ActivityDisplayPreference
W/ActivityManager( 3230): Activity pause timeout for HistoryRecord{48ae04b8 com.icalparse/.ActivityDisplayPreference}
if wanted i can give you an exchange account for testings ...
if interesting on a test engineer -> please contact me.

android 2.2.1 - galaxy 9000 - darkys ROM 9.2
cu camel

currently the ics file has to be saved on the filesystem to open it directly.
I will release a new version which will also address your problem soon.
11th February 2011, 07:02 PM |#10  
OP Senior Member
Thanks Meter: 41
 
More
@camro please check if your problem is fixed now.

the new version brings a big bunch of improvements

new version 1.4:
fixed a problem with appointment which have alarms defined
fixed a problem if appointments use timezones which are not defined in the icalendar informations
enhanced filtering calculation
fixed filtering calculation problems
handling now valarms
fixed a problem whith appointment that did not get updated completely
fixed a problem with durations
supporting all possible rrule configurations for filtering
fixed a problem if no active calendar has been found
If no calendar is selected the app will try to import the appointments in a calendar which is currently active
at the calendar selection also calendars can be selected which are currently not active
11th February 2011, 09:00 PM |#11  
Senior Member
Thanks Meter: 18
 
More
Quote:
Originally Posted by 920904

@camro please check if your problem is fixed now.

the new version brings a big bunch of improvements

new version 1.4:
fixed a problem with appointment which have alarms defined
fixed a problem if appointments use timezones which are not defined in the icalendar informations
enhanced filtering calculation
fixed filtering calculation problems
handling now valarms
fixed a problem whith appointment that did not get updated completely
fixed a problem with durations
supporting all possible rrule configurations for filtering
fixed a problem if no active calendar has been found
If no calendar is selected the app will try to import the appointments in a calendar which is currently active
at the calendar selection also calendars can be selected which are currently not active

no, if i click on preferences -> calendar list -> CRASH ..

also the ICS file is not assigned to your application.
(tried to click on a ICS file in k9-mail)
(ICS BOT can do that - see code -> http://code.google.com/p/enh/source/browse/trunk)
maybe it helps to find a method how to do that...
http://code.google.com/p/enh/source/...wActivity.java
see line 56 (76)

EDIT: ICS BOT can maybe help a lot, because it was working great (on older API)

EDIT1: jave is not my prefer language - mabye you can compile it for the new API to make it possible to use it for 2.2 ?
Post Reply Subscribe to Thread

Tags
android, caldav, ical, icalendar, import

Guest Quick Reply (no urls or BBcode)
Message:
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes