#+TITLE: app/calendar #+DATE: January 13, 2018 #+SINCE: v2.1 #+STARTUP: inlineimages * Table of Contents :TOC: - [[#description][Description]] - [[#module-flags][Module Flags]] - [[#packages][Packages]] - [[#configuration][Configuration]] - [[#changing-calendar-sources][Changing calendar sources]] - [[#synchronizing-org-and-google-calendar][Synchronizing Org and Google Calendar]] * Description This module adds a calendar view for Emacs, with org and google calendar sync support. ** Module Flags This module provides no flags. ** Packages + [[https://github.com/kiwanami/emacs-calfw][calfw]] + [[https://github.com/kiwanami/emacs-calfw][calfw-org]] + [[https://github.com/myuhe/org-gcal.el][org-gcal]] * Configuration ** Changing calendar sources By defining your own calendar commands, you can control what sources to pull calendar data from: #+BEGIN_SRC emacs-lisp (defun my-open-calendar () (interactive) (cfw:open-calendar-buffer :contents-sources (list (cfw:org-create-source "Green") ; orgmode source (cfw:howm-create-source "Blue") ; howm source (cfw:cal-create-source "Orange") ; diary source (cfw:ical-create-source "Moon" "~/moon.ics" "Gray") ; ICS source1 (cfw:ical-create-source "gcal" "https://..../basic.ics" "IndianRed") ; google calendar ICS ))) #+END_SRC To control what org files ~clfw:org-create-source~ will use, ~let~-bind ~org-agenda-files~ around a call to ~+calendar/open-calendar~ like so: #+BEGIN_SRC emacs-lisp ;;;###autoload (defun cfw:open-org-calendar-with-cal1 () (interactive) (let ((org-agenda-files '("/path/to/org/" "/path/to/cal1.org"))) (call-interactively #'+calendar/open-calendar))) ;;;###autoload (defun cfw:open-org-calendar-with-cal2 () (interactive) (let ((org-agenda-files '("/path/to/org/" "/path/to/cal2.org"))) (call-interactively #'+calendar/open-calendar))) #+END_SRC The [[https://github.com/kiwanami/emacs-calfw][kiwanami/emacs-calfw]] project readme contains more examples. ** Synchronizing Org and Google Calendar The [[https://github.com/myuhe/org-gcal.el][myuhe/org-gcal.el]] project README contains more detailed instructions on how to link your calendar with Google calendars.