I was searching for solutions for using my existing iCal-calendars from Lightning/Sunbird with my new HTC Desire WITHOUT using the Google-calender (respectively without sending them your private data).
To create the calendars on the Adroid I couldn't find any other way then, just to create them at your Google-Account, sync them and afterwards disable the calendar-syncing at your Android-Phone.
Now you have to install yourself a CalDav-Server. The simplest server I found, for configuring and installing was SabreDav. Just get a XAMPP running on your machine and installing SabreDav.
Since there is no out-of-the-box possibility to import your iCal-files in the new CalDav server I wrote myself a little script, that does that for me. I know the code is messy and very imperformant, but it works and that is all it counts for me, at the moment.
Just put this code in a file in the directory where your SabreDav-Server is located and put the .ics files in the same directory.
You eventually need to increase the max_execution_time in the php.ini file
A value of 600 worked fine for me.
If your iCal-files were imported to your CalDav serer you can synchronize the your Android phone with the server. To synchronize your Android calendar with your new CalDav-Server you will have to install this tiny app: Calendar (CalDAV) Sync
When configuring the app on your phone your URL to the calendar could look like this
Also you can access the CalDav server via Lightning/Sunbird via:
New calendar->On the network->select CalDav and enter the URL to your calender. Don't forget the trailing slash! For me the URL looked for example like this
Explaination: 192.168.0.1 is the IP of the computer where der xampp is runing, dav is the directory where I installed my SabreDav server, calendarserver.php is the SabreDav calendar-server file. calendars, the virtual directory calandars is for accessing (who got it? ;-)) the calendars, admin is the principal/user and Privat is the name of the calandar as i created it. Be sure to have the trailing slash at the end of the URL or this won't work properly.
Tip: If you wan't to synchronize your phone from outside the LAN you have to use a VPN or a public webserver.
If you have questions feel free to contact me via comments, email or jabber.
Added the trim() function to the UID-detection, because if synchronizing without them, apache sometimes can't find the ics-files.