Emacs Org-Gcal Package
https://github.com/emacsmirror/org-gcal
Google API Setup
https://console.cloud.google.com/
Create a new project, Enable Google Calendar API, Create OAuth 2.0 Credentials
(setq org-gcal-client-id "unique-id" org-gcal-client-secret "client-secret" org-gcal-fetch-file-alist '(("rc.upcsa@gmail.com" . "~/org/gcal.org"))) ;; Google Calendar ID (setq plstore-cache-passphrase-for-symmetric-encryption t)
Org File Created in /home/yal/org
org-gcal-post-at-point
- Pushes single entries in Org to your Google Calendar
org-gcal-fetch
- org-gcal-fetch to download Google Calendar events into your Org-mode files using the Google Calendar API
org-gcal-sync
does what org-gcal-fetch does, but also runs org-gcal-post-at-point
on all events that you’ve edited in Org mode to update the corresponding events in Google Calendar.
It's best to create your entries in Google Calendar and fetch them into Org. However, you can create Org entries provided they have the right format:
,* TODO Electrician
,SCHEDULED:
,:PROPERTIES:
,:calendar-id: rc.upcsa@gmail.com
,:END:
(setq org-capture-templates '(("n" "NOTE" entry (file "~/.emacs.d/org-agenda/notes.org") "* %^{Title} :%^{Tags}:\n%i\n%?" :immediate-finish t :empty-lines-before 1 :jump-to-captured t) ("k" "ChecKbox" checkitem (file "~/.emacs.d/org-agenda/checkbox.org") "- [ ] %?" :jump-to-captured t) ("t" "TODO to GCal" entry (file "/home/yal/org/gcal.org") "* TODO %^{Task}\nSCHEDULED: %^t%i%?\n:PROPERTIES:\n:calendar-id: rc.upcsa@gmail.com\n:END:\n" :prepend t :jump-to-captured t) ;; :immediate-finish t) ("c" "Context task" entry (file "~/.emacs.d/org-agenda/inbox.org") "* TODO %?\n Created: %U\n Context: %a" :prepend t)))