doomemacs/modules/app/calendar
Henrik Lissner 1e81a35461
Minimize dependence on map!
This is in preparation for general.el integration coming in 2.1.1. It is
very likely that map! will change (and even more, be split into several
macros). Not much, but change none-the-less. Specifically, the state
keywords (e.g. :nvi, :n, :i) will be removed in favor of a :state
property that takes a list, e.g. (normal visual insert).

In any case, both map! and general are also relatively expensive
compared to define-key and evil-define-key* (and the new define-key!
macro), so use that when we can.

This also means changes to either API won't affect Doom's modules in the
long term.
2018-06-03 15:46:00 +02:00
..
autoload.el
config.el
packages.el
readme.org

`=Calendar App`

Setup sync between google calendar and org file

  • 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.

    (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")))

Doom faces

I'm using the following setting:

;; 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)

Adjust calendar to be included

Checkout example from https://github.com/kiwanami/emacs-calfw

(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
   )))

Specifically, if you want to adjust the org files to be included, use a let binding to set the org-agenda-files like below:

;;;###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)))