Recently, Gmail added IMAP support, giving the powerhouse email host the ability to interact better with third-party clients. And Google, being the friendly neighborhood do-gooder that it is, provided instructions on how to use IMAP with a variety of third-party clients. However, it forgot one popular client: KMail, the email portion of the KDE Kontact personal information management suite. Google also neglected to mention that several of its other services, such as Google Calendar and Google Reader, can work well with Kontact. Here's how you can integrate them.
Let's start with KMail. Go to Settings -> Configure KMail, select the Accounts tab, and click Add to create an incoming account. Select "IMAP" as the type. Type in a descriptive name for your account name (I chose Gmail), your email address as your login (e.g. email@example.com), your password, imap.gmail.com as your host, and 993 as your port. Switch over to the Security tab and check "Use SSL for secure mail download." Click OK, then click on the Sending tab and click Add to create an outgoing account. Make the type "SMTP." Enter a description under name, smtp.gmail.com under the host, and 465 as the port. Then check "Server requires authentication" and make the login your email address (e.g. firstname.lastname@example.org) and your password. Switch over to the Security tab and make the encryption "SSL" and the authentication method "plain." You're done!
Now, KMail should log you in to Gmail, and all your labels should be displayed under [Gmail]. You may want to make KMail's trash sync with Gmail's trash. To do this, go back to Settings -> Configure KMail, click the Accounts tab, and modify the Gmail account. Change "Trash Folder" to [INSERT YOUR GMAIL ACCOUNT NAME HERE]/[Gmail]/Trash.
Calendaring: Google Calendar and KOrganizer
Once you have your mail application and server working together, you can move on to your calendar. Unfortunately, Google hasn't officially announced a two-way sync for Google Calendar, but you can still use KOrganizer with Google Calendar if you use a Java runtime environment and GCALDaemon. Download the Unix/Linux/AIX/Mac OS X compatible ZIP archive from the GCALDaemon download site. Log in as root and unzip the archive to /usr/local/sbin (if that directory doesn't exist you can create it). Allow all users to access the daemon by running the command
chmod 777 /usr/local/sbin/GCALDaemon. Then run
/usr/local/sbin/GCALDaemon/bin/standalone-start.sh (you may want to add it to your startup process by adding a shortcut to it in ~/.kde/Autostart/).
Now you have to find your private iCal URL by going to Google Calendar and clicking Settings -> Calendars ->Your Calendar and clicking the ICAL button at the bottom. Create a new KOrganizer calendar by going to the Calendar tab, clicking the Add button, selecting "Calendar in Remote File," giving it a name (e.g. Andrew's Calendar), and pasting the private URL in the "Download to" and "Upload to" fields -- but you must replace http://www.google.com with http://localhost:9090. Click OK, and your calendar should load. When asked for your user name and password, enter your email address (e.g. email@example.com) and your password.
KOrganizer and Google Calendar work well together, with one odd exception: when you delete an event in Google Calendar, it won't delete in KOrganizer, and vice versa.
Feeds: Akregator and Google Reader
Unlike the other two apps on the list, Google Reader has no way of syncing read and unread feeds with third-party clients. However, it is extremely easy to switch your feed reader from Google Reader to Akregator, Kontact's RSS reader. Grab your feed list from https://www.google.com/reader/subscriptions/export, then open up the Feeds section of Kontact, click File -> Import Feeds, and select the file you downloaded. Give your subscription a name (e.g. Google Reader) and wait for it to import. All your feeds should then show up.
After this little exercise, Kontact can easily manage all of your Gmail, Google Calendar, and Google Reader information. In the future, it may be able to do still more. GCALDaemon has a feature that will allow users to sync their contacts using LDAP, but it doesn't work with Gmail 2.0 for now. However, it looks like LDAP might become a built-in feature soon.
Syncing Google Calendar with KOrganizer will probably also get easier as time goes on, probably with the help of Google. And eventually, Google may update Google Reader to let it sync with third-party programs like Akregator. It's a good time to be a KDE/Google user.