Emacs google calendar
Due to lack of easy solutions to view my google calendar without having to open my browser, I have emacs downloading my calendar as ics.
I use my private address and make a diary out of it. Then it shows up in my agenda.
Of course I cannot create new entries, but it suits me fine.
To update the calendar I run the function nyko/getcals
; DIARY WITH GOOGLE CALENDAR (setq diaryDir "~/Documents/diary/") (setq diary-file (concat diaryDir "nyk0")) (setq org-agenda-include-diary t) (setq org-agenda-insert-diary-extract-time t) (add-hook 'diary-list-entries-hook 'diary-sort-entries t) (add-hook 'diary-list-entries-hook 'diary-include-other-diary-files) (add-hook 'diary-mark-entries-hook 'diary-mark-included-diary-files) (setq diary-list-entries-hook '(diary-include-other-diary-files diary-sort-entries)) ; calendars you want to download ; each item links to a remote iCal calendar (setq calendars '( ("nyk0" . "private address of galendar file") )) (defun getcal (url file) "Download ics file and add it to file" (let ((tmpfile (url-file-local-copy url))) (icalendar-import-file tmpfile file) (kill-buffer (car (last (split-string tmpfile "/")))))) (defun nyko/getcals () "Load a set of ICS calendars into Emacs diary files" (interactive) (find-file (concat diaryDir "nyk0")) (erase-buffer) (getcal "private address of google calendar" (concat diaryDir "nyk0")) (kill-this-buffer) )
In order to import more than one calendars, you need to update each calendar to its own file and create a global diary file listing all the calendars.
Then you just define the global diary file as your default diary with (setq diary-file (concat diaryDir "globalfile"))