doomemacs/modules/app/calendar/readme.org
2018-01-13 17:26:40 +08:00

71 lines
3.2 KiB
Org Mode

#+TITLE: `=Calendar App`
* Setup sync between google calendar and org file
:PROPERTIES:
:ID: 5E190E8A-CA26-4679-B5F8-BF9CFD289271
:END:
- Checkout https://github.com/myuhe/org-gcal.el, put the following content in a file ~secret.el~ and set the variable `+calendar-org-gcal-secret-file` to the path of that file.
#+BEGIN_SRC emacs-lisp
(setq org-gcal-client-id "your-id-foo.apps.googleusercontent.com"
org-gcal-client-secret "your-secret"
org-gcal-file-alist '(("your-mail@gmail.com" . "~/schedule.org")
("another-mail@gmail.com" . "~/task.org")))
#+END_SRC
* Doom faces
:PROPERTIES:
:ID: 8223894E-EA68-4259-A2EA-AF7E3653C610
:END:
I'm using the following setting:
#+BEGIN_SRC emacs-lisp
;; calfw
(cfw:face-title :foreground blue :bold bold :height 2.0 :inherit 'variable-pitch)
(cfw:face-header :foreground (doom-blend blue bg 0.8) :bold bold)
(cfw:face-sunday :foreground (doom-blend red bg 0.8) :bold bold)
(cfw:face-saturday :foreground (doom-blend red bg 0.8) :bold bold)
(cfw:face-holiday :foreground nil :background bg-alt :bold bold)
(cfw:face-grid :foreground vertical-bar)
(cfw:face-periods :foreground yellow)
(cfw:face-toolbar :foreground nil :background nil)
(cfw:face-toolbar-button-off :foreground base6 :bold bold :inherit 'variable-pitch)
(cfw:face-toolbar-button-on :foreground blue :bold bold :inherit 'variable-pitch)
(cfw:face-default-content :foreground fg)
(cfw:face-day-title :foreground fg :bold bold)
(cfw:face-today-title :foreground bg :background blue :bold bold)
(cfw:face-default-day :bold bold)
(cfw:face-today :foreground nil :background nil :bold bold)
(cfw:face-annotation :foreground violet)
(cfw:face-disable :foreground grey)
(cfw:face-select :background region)
#+END_SRC
* Adjust calendar to be included
:PROPERTIES:
:ID: D734975C-4B49-4F66-A088-AB2707A77537
:END:
Checkout example from https://github.com/kiwanami/emacs-calfw
#+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
Specifically, if you want to adjust the org files to be included, use a ~let~ binding to set the ~org-agenda-files~ like below:
#+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