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.
http://soft.zoneo.net/Linux/ggcal_and_kontact.php
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
vi /usr/local/GCALDaemon/conf/gcal-daemon.cfg
http.enabled=false
# 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
/usr/local/GCALDaemon/bin/standalone-start.sh &
10) Make sure the sync process starts at login
#!/bin/bash
/usr/local/GCALDaemon/bin/standalone-start.sh &
exit
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 the
resource, 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.