- Fetch google calendar event
- Post/edit org element
- Sync between Org and Gcal
org-gcalis now available in the famous emacs package repo MELPA, so the recommended way is to install it through Emacs package management system.
- Go to 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 Google setting page to check the calendar ID.
- Go to 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.
(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@example.com" . "~/schedule.org") ("firstname.lastname@example.org" . "~/task.org")))
Sync between Org and Gcal. before syncing, execute
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.
Post/edit org block at point to Google calendar.
Refresh the OAuth token. OAuth token expired in 3600 seconds, You should refresh token on a regular basis.