org-gcal.el
org-gcal.el copied to clipboard
Org sync with Google Calendar
-
Org-Gcal [[http://melpa.org/#/org-gcal][file:http://melpa.org/packages/org-gcal-badge.svg]] =org-gcal= offers
- Fetch google calendar event
- Post/edit org element
- Sync between Org and Gcal
-
Requirements
-
[[https://github.com/tkf/emacs-request][tkf/emacs-request]]
-
[[https://github.com/jwiegley/alert][jwiegley/alert]]
=org-gcal= is now available in the famous emacs package repo [[http://melpa.milkbox.net/][MELPA]], so the recommended way is to install it through Emacs package management system.
- Installation
-
Go to [[https://console.developers.google.com/project][Google Developers Console]]
-
Create a project (with any name)
-
Click on the project
-
Click on APIs & Auth then Credentials
-
Click on Create New Client ID with Application type /Installed application/, Installed application type /Other/
-
Click on Create Client ID
-
Record the Client ID and Client secret for setup.
-
Under the same APIs & Auth menu section, select APIs
-
Scroll down to Calendar API. Click the Status button to enable calendar API access to the app you created in steps 5 & 6.
Go to [[https://www.google.com/calendar/render][Google setting page]] to check the calendar ID.
-
Go to [[https://www.google.com/calendar/render][Google setting page]] and click the gear-shaped settings icon in the upper right, then select "Settings" from the drop down list.
-
Select the "Calendars" tab, which will display a list of your calendars.
-
Select the calendar you would like to synchronize with. This will take you to the "Calendar Details" page for that calendar. Near the end is a section titled "Calendar Address". Following the XML, ICAL, and HTML tags, you will see your Calendar ID.
-
Copy the Calendar ID for use in the settings below, where you will use it as the first element in the org-gcal-file-alist for associating calendars with specific org files. You can associate different calendars with different org files, so repeat this for each calendar you want to use.
** Setting example
#+begin_src elisp (require 'org-gcal) (setq org-gcal-client-id "your-id-foo.apps.googleusercontent.com" org-gcal-client-secret "your-secret" org-gcal-file-alist '(("[email protected]" . "~/schedule.org") ("[email protected]" . "~/task.org"))) #+end_src
-
Usage ** =org-gcal-sync= Sync between Org and Gcal. before syncing, execute =org-gcal-fetch= . ** =org-gcal-fetch= Fetch Google calendar events and populate =org-gcal-file-alist= locations. The org files in =org-gcal-file-alist= should be blank or all of their headlines should have timestamps. ** =org-gcal-post-at-point= Post/edit org block at point to Google calendar. ** =org-gcal-delete-at-point= Delete Gcal event at point. ** =org-gcal-refresh-token= Refresh the OAuth token. OAuth token expired in 3600 seconds, You should refresh token on a regular basis.
-
Similar application [[https://github.com/dengste/org-caldav][dengste/org-caldav]]