Windows Mobile app for importing iCalendar appointments/tasks (iCalParse)
Features:
- Import appointments/tasks direct from iCal files (*.icl, *.ics). It is also possible to chose which appointments/tasks should be imported and which not.
- Enables support for more features than the original Windows Mobile calendar has. eg. Recurrence Dates or Exclusion Dates.
- Make a quick look at the appointments/tasks stored in the iCal files.
- Replace all appointments/tasks on the device with appointments/tasks stored in an iCal file.
- Filtering of Tasks/Appointments
- Update old and add new appointments/tasks from an iCal file.
- Delete all appointments/tasks stored on the device.
- Export all appointments stored an the device to an iCalendar file.
- Export all tasks stored on the device to an iCalendar file.
- Encrypt private informations.
- Timezone support.
- Customize calendar informations
- Define custom categories for the imported appointments/tasks.
- Remove HTML/CSS tags from the description of the appointments.
- Enhanced possibilities to replace strings which are added to the appointments/tasks automatically from the PIM Application with custom ones.
- Load and Parse ICal files direct from the Internet. (HTTP/HTTPS/WEBCAL/WEBCALS/CALDAV)
- .icl and .ics files are associated to the program.
- Auto syncing
- Logging
- Commandline Options
- Fingerfriendly landscape/portrait mode aware GUI
- CALDAV support for two way synchronization
- Two way synchronzation
- Usage statistics
Requirements:
- Windows Mobile Pro 5 - 6.5
- .Net 3.5
Why I wrote this program:
I’m using an alternative OS and I also often get different iCal Files with important appointments (from friends, university, work). So before I wrote the program I had to import the iCal files to different programs (e.g. Outlook, Evolution and so on) to get it synced. I also always had to import my personal calendar to Outlook or so because I use rainledar for my own appointments. Because I think that this is not the best way for handling this I wrote iCalParse. With this program I can simply import iCal files direct on my phone.
To import calendars available on the Internet
To import a calendar which is available over the Internet just download and install the new app version. Then start it go to the others tab (the OT button on the bottom) and then press the "config webIcals" button. Then press the "new Web Ical Source" button. Add the user name and password if there is any and then the url where to find the calendar. Then select the protocol. Use http if it available over http/https/webcal/webcals. The autosync period number is important for the autosync option. If the number is 0 the webical will never be synced with the autosync. If it is 1 it will be synced every autosync, if it is 2 every second sync, 3 every third and so on. Then click the save button. Now you have to tell the app that you want to download calendar informations over the internet. So you have to activate the "Load from the web" option at the Options tab (The Op button)
Afterwards you can parse/load and import the calendar like normal by just pressing the Parse button and then the import button at the Action button. Or you can use the autosync feature.
To Use CALDAV for two way synchronization
Often web calendars support CALDAV. CALDAV is a open protocol to sync calendar information in both ways (server to phone and phone to server). To use CALDAV your CALENDAR must support it. Then start it go to the others tab (the OT button on the bottom) and then press the "config webIcals" button. Add the user name and password if there is any and then the url where to find the calendar. Then select the protocol. Use caldav if it available over CALDAV. Important is that there has to be a single slash (/) at the end of the url. Then click the save button. Now you have to tell the app that you want to download calendar informations over the internet. So you have to activate the "Load from the web" option at the Options tab (The Op button). And you have to tell the app that you want to sync from the phone to server not only from the server to the phone so that you have to active the "Use two way caldav sync" option.
Afterwards you can parse/load and import the calendar like normal by just pressing the Parse button and then the import button at the Action button. Or you can use the autosync feature. During the parse operation (parse button) the changes on the device will be synced to the server if the "use two way caldav sync" option is enabled.
The CALDAV feature was confirmed to work with:
Google calendar
Hint:
The url for your google calendar has the following format [ https://www.google.com/calendar/dav/ [ your Google Calendar ID ] /events/ ].
Your Google Calendar ID for your primary calendar is just your email address, but for all other calendars the Calendar ID will be in the form of [ long string of characters]@group.calendar.google.com. You can get the Calendar ID by clicking the down arrow next to your calendar at calendar.google.com and selecting 'Calendar Settings'.
Be sure to use https in your URL, as an http address will not work.
DAViCal
hint:
The url for your DAViCal calendar has the following format [ [url]https://[yourDomain]/caldav.php/caldav/home/ ]
sabredav
hint:
The url for your sabredav calendar has the following format [ [url]http://[yourDomain]/sabredav/calendarserver.php/calendars/[yourUsername]/default/ ]
MobileMe (currently only one way sync because apple made some chances to limit third party apps)
hint:
For MobileMe you need an url similar to the following to sync with your calendar.
webcal://www.me.com/ca/sharesubscribe/1.287005891/M2CD-1-2-0AD73313-EB67-4AEA-B558-A1551FAB2453.ics
Here you can find a step by step desciption from apple how to create such an url.
You have to use the "To share a calendar publicly" description and just type in your e-mail address so you get the url.
http://help.apple.com/mobileme/interface/index.html?lang=en#mm6b1a9479
If you are using it with any other caldav provider please contact me so that i can add your provider to the list.
Manual:
There are 5 tabs available which can be selected with the buttons at the bottom.
- A: Action tab. you can import/export appointments/tasks.
- Ov: Overview tab. After you parsed something you can make a look on the parsed data and also choose the objects you want to import.
- Op: Options tab. You can activate/deactivate different options.
- Ot: Others tab. Additionally features like "save config" are available here.
- F: Filter tab. At this tab it is possible to define filters for the import.
1)Check Options first!
You can slide through the different options by moving your finger up and down in the in the Options tab.
Add appointments/tasks and delete old ones: All appointments/tasks on the device are removed and only the new ones stored in the imported iCal files are available afterwards.
Update appointments/tasks and add new ones: Updates appointments/tasks which were already processed by the iCalParser and adds new ones.
Import Appointments: Activate to import appointments.
Import Tasks: Activate to import tasks.
Delete only objects imported with iCalParse: If activated and used together with the "Add appointments/tasks and delete old ones" option iCalParse will only delete appointment/tasks which where previous imported with iCalParse.
Allow Autostart: Must be activated to use the autosync feature.
Use delayed autostart: The autostart feature will wait 30 seconds after the device has been waked up before it tries to parse the webicallist so e.g. wlan can connect.
Use Logging: If activated the program will log errors in Log.txt stored in the program directory.
Create Reminders:If this option is activated the program will create reminders if a reminder is specified in the ical file.
Use custom category: Define a custom category at the Other tab and then activate the Use custom category option at the Options tab. Then a the defined category will be added to every appointment.
Remove HTML from description: Removes HTML/CSS tags from the description text.
Use substitute list: if the option is activated the program will use and parse the SubstituteList.txt (The file will be generated at the first application startup) stored in the program directory. The first line defined in the file will always be replaced by the second line. So if the content of the file is for example:
X-KDE-TEXTFORMAT=HTML
\,
,
X-KDE-TEXTFORMAT=HTML will be replaced by nothing and \, will be replaced by ,
Use filter: Activates filtering. Filters can be defined on the Filtering tab. If activated only tasks/appointments which match the filter will be imported.
Add Tasks/Appointments as Private: Will set the sensitivity of every parsed Taks/Appointment to private.
Don't validate SSL certificate: Sometimes the .Net Framework can't validate a SSL certificate. This option will make it possible to use a encrypted connection anyway.
Don't parse attendees: Attendees will not be parsed/imported
Use caldav speedup: speeds up caldav sync. only the last month and the next 4 month will be synced.
Load from the Web: The program will parse the WebICalsList.txt file stored in the program folder. A description how to configure the app to import calendars available on the Internet is available above.
2) Press the Parse/Load iCal Button at the “Action” panel. Select an iCal File (it should be stored at the MyDocuments folder) . You will be informed when the process finished.
3) Press the Import Appointments/tasks Button at the “Action” panel. You will be informed when the process finished.
- If you want to delete all appointments/tasks you can make a look at the Other tab. The Delete all appointments button or the Delete all tasks button will do this job.
- If you want to export all appointments stored on the device press the Export Appointments button on the Actions tab.
- If you want to save your configuration press the Save config button on the Other tab. The configuration will be loaded automatically at each startup of the application.
- If you want to export all tasks stored on the device press the Export Tasks button on the Actions tab.
- If you want to secure your WebIcalList.txt file you can encrypt it. Set a password at the Other tab and press the Encrypt key. Now the WebIcalList is encrypted. You have to specify your password every time in the Others tab if you want to use the "load from the web" feature which you can activate at the Options tab. You also have to specify the passwort if you want to edit the webcials config. After you have changed the webicals config you have to encrypt the changes again. So press encrypt after you changed the webicals config again.
Autosync
To use the autosync feature you have to press the activate autostart button at the other tab (this will create a shortcut in the autostart directory (eg. /Windows/StartUp/), you can also use that shortcut to start the app with the autosync feature enabled by hand). You also have to activate the allow autostart slider in the options tab. Below the activate autostart button you can set the time which should pass between the syncs. So if you choose eg. 60 the app will start every 60 minutes and try to import all icalsources defined in the webicalslist. If you want to disable autosync deactivate the allow autostart slider in the options tab.
There are two command line options available:
AppRunAtTime
The App will use the autosync feature and start repeatedly.
AppRunAtTimeOnce
The App will use the autosync feature and start only once.