I've setup my system so I can enter a calendar event in any of the following places and the event gets sync'ed to all three calendars:
My current setup auto-sync's between my Google Calendar and my Kontact Calendar every 5 minutes. To sync the Palm Pre device I need to go to the calendar, choose from the menu at the top/left of the screen scroll to the bottom and tap the button. Once I do a manual sync from the device any Calendar events I added on the device show up on my Google calendar immediately and on my Kontact Calendar within 5 minutes. So far it's been flawless.
All of my information originally came from an article on soft.zoneo.net, so in order to credit the real author, here's the original page I followed to set this up.
I've tweaked the settings below only per my installation details
1) Make sure you have a Google Calendar account (and make sure it works). Mine is tied to my own email/domain so it doesn't mean you have to have a gmail.com account
2) Download the GCALDaemon from Source Forge
3) Unzip the gcaldaemon-linux-* file
4) Move the new GCALDaemon directory to /usr/local (or a similarly appropriate place)
5) Change permissions so an ordinary user has rights to read/write to the GCALDaemon directory and all sub-directories/files. The normal user MUST be able to create new files in /usr/local/GCALDaemon
6) Generate an encoded password string Open a terminal (as the user who runs Kontact) and execute this:
cd /usr/local/GCALDaemon/bin ./password-encoder.sh
Enter your Google password and copy the encoded password from the output. If you get an error message, there is a problem with your permissions.
7) copy your Google Private URL (ICAL)
8) Configure GCALD
# Enable iCalendar file listener/synchronizer file.enabled=true
# Full path of the local iCalendar file file.ical.path=/usr/local/GCALDaemon/google.ics
# Gmail user (your full email address) file.google.username=YOUR ADDRESS
# Gmail password (use password encoder!) file.google.password=The encrypted passwd string copied in step 6
# URL (without hostname) of the Google Calendar's private ical file file.private.ical.url=/calendar/ical/XXXXXX/basic.ics (The Private ICS Google Calendar Address you Copied in step 7) WITHOUT the hostname (leave off the 'http://www.google.com')
# Local iCalendar file polling interval (recommended is "10 sec") file.polling.file=10 sec
# Google Calendar polling interval (recommended is "10 min") file.polling.google=5 min
# Turn it on when you use dial-up connection (default is "true") file.offline.enabled=true
9) Start the Sync
10) Make sure the sync process starts at login
11) Add the new Calendar to Kontact
12) Add the google account to you Palm Pre Device
Note when you add a Kontact event you'll be prompted to use theresource, or the new resource. Only events added to the new resource will be sync'ed. Any event added to any of the 3 calendars (the new Kontact resource, the Google calendar itself, or your Palm Pre device) will now sync to all 3 calendars.