Recently I decided to use KDE on my clean install of Arch Linux. Though not minding Gnome 3 on my laptop, it did not seem like something I felt like using on the big dual monitor setup of my desktop.

Venturing through KDE settings and discovering little tidbits, I came upon the Calendar widget. This is the widget that pops up when you click on the clock in the bottom right, but you can also place it on the desktop if you want. KDE is flexible like that. It seemed nice enough, but I manage all my calendar needs in Google Calendar so naturally I wanted the calendar widget to render my Google Calendar events.

To do this, there is a little detour past another program in KDE. Akonadi is, to my understanding, a system that manages a whole lot of information in KDE making it easily available to all the other applications. For example, your name, your contacts, … only have to be set in Akonadi and are from there on available to other programs. Akonadi was part of my base KDE install, so I can only assume that every KDE user has it installed.

  1. Open up Akonadi Configuration.
  2. Choose “Add…” from the buttons on the right.
  3. In the screen that pops up, choose DAV groupware resource.
  4. You will be asked for login credentials, but Google will not be one of the options in the next screen so just click “Cancel”.
  5. A general configuration screen will pop up, pick any display name that makes sense to you. I just wrote Google Calendar. Adjust refresh rate to whatever you want, the default is every 5 minutes.
  6. Click the “Add” button after filling in the general details. You will have to add every calendar you want to see one-by-one through this method.
  7. In the window that pops up, you will need the CalDAV URL for your calendar. Follow these steps to find out your CalDAV URL.
    1. Go to Google Calendar site and open the Calendar Settings.
    2. In the Calendar Details tab you will find your Calendar ID, this will look like an email address (and if it is your main calendar it will be your email address).
    3. Insert it at the indicated place in this URL: https://www.google.com/calendar/dav/YOURIDHERE/events. So for example if your ID is bla@example.com, then the URL will become https://www.google.com/calendar/dav/bla@example.com/events.
  8. Fill in the found URL at “Remote URL”. In “Username” and “Password” come your Google username and password.
  9. With everything filled in, click fetch and it should fetch the calendar you fetched. Click “Ok”.
  10. Repeat steps 6 to 9 for other calendars. Click “Ok” when you are done.

After going through these steps, calendar-related applications should be able to read your calendars. More specifically, the little Calendar widget I mentioned earlier should now automatically get populated with your Google Calendar events.

Sidenote, if you are making use of one of the Google features where your GMail contacts’ birthday appear in your Google Calendar (it would appear as a calendar called Contacts’ birthdays and events), then the Calendar ID you will get is probably #contacts@group.v.calendar.google.com and it is probably giving you troubles. The solution is simple, change the # to %23, so it becomes %23contacts@group.v.calendar.google.com, use this ID as you would otherwise.


Commenters have noted that a reboot may be required after everything has been set up.