Skip to content

ifitzpat/org-outlook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

org-outlook

Conquer your Microsoft Outlook agenda from the comfort of Emacs.

Disclaimer: org-outlook is currently in pre-alpha. Installation currently requires a Microsoft App Registration and some manual configuration. Updates & responses to issues will be sporadic.

Contents

Features

  • Integrated with org-roam
    • Find outlook events with org-roam-node-find
    • Refile outlook events to any file within org-roam-directory
  • Accept and Decline meeting requests from the agenda buffer
  • Join Teams calls directly from the agenda buffer (launches Teams or web browser)
  • At-a-glance overview of your appointments and fee timeslots when used with org-timeblock

Planned features & improvements:

  • Reduce the number of dependencies
  • Provide a universal App Registration
  • More configurability
  • Two-way sync of event body (owned events only).
  • Org capture template to quickly plan meetings.

Future:

  • Org contacts integration

Screenshots

images/org-outlook-demo.png

Installation

Prerequisites

You will need to create an App Registration in Microsoft Entra (Formally Azure Active Directory) via https://portal.azure.com. Make a note of your tenant-id you’ll need this later. The app will need the Calendars.Read, Calendars.ReadWrite, and offline_access API permissions. Under “Certificates & secrets” register a new Client secret (copy the value and insert into your config as specified below). From the “Overview” tab copy the Application (client) id and insert into your config as specified below.

Dependencies

Quelpa

The package org-outlook is not currently available from MELPA, but can be installed directly from github with Quelpa.

Installing with Quelpa is easy:

  1. Install quelpa-use-package (which can be installed directly from MELPA).
  2. Add this form to your init file:
(use-package org-outlook
  :quelpa (org-outlook :fetcher github :repo "ifitzpat/org-outlook")
  :config
  (setq org-outlook-client-id "client-id-of-your-registered-app")
  (setq org-outlook-client-secret "client-secret-of-your-registered-app")
  (setq org-outlook-tenant-id "your-azure-tenant-id")
  (setq org-outlook-gpg-recipient "you@example.com")
  (setq org-outlook-local-timezone "Central European Standard Time") ; Your local time zone
  (setq org-outlook-auth-url "https://login.microsoftonline.com/your-azure-tenant-id/oauth2/v2.0/authorize")
  (setq org-outlook-token-url "https://login.microsoftonline.com/your-azure-tenant-id/oauth2/v2.0/token")
  (setq org-outlook-resource-url "https://graph.microsoft.com/Calendars.ReadWrite")
  (setq org-outlook-events-url "https://graph.microsoft.com/v1.0/me/calendarview")
  (setq org-outlook-events-create-url "https://graph.microsoft.com/v1.0/me/calendar/events")
  (setq org-outlook-file "/path/to/outlook.org")
  (setq org-outlook-sync-start 14) ; number of days in the past to keep in sync
  (setq org-outlook-sync-end 90) ; number of days in the future to keep in sync
  )

Usage

Commands

  • Syncing Outlook events:
    • org-outlook-sync
  • Accepting a meeting request:
    • With point on the entry in the ageda view or within the org entry body: org-outlook-accept-event
  • Declining a meeting request:
    • With point on the entry in the ageda view or within the org entry body: org-outlook-decline-event
  • Joining a Teams meeting:
    • With point on the entry in the ageda view or within the org entry body: org-outlook-join-teams-call

Tips

  • Calling org-outlook-sync via emacs --batch avoids blocking your main emacs session.

Changelog

Note: Breaking changes may be made before version 1.0, but in the event of major changes, attempts at backward compatibility will be made with obsolescence declarations, translation of arguments, etc. Users who need stability guarantees before 1.0 may choose to use tagged stable releases.

0.0.1-pre-alpha

Initial release

Notes

Known issues

  • Winter-to-summer time switching may cause duplicate events to appear.
  • Events that are rescheduled sometimes show up twice.
  • Accepting an event doesn’t change the event status from REQUEST to MEETING until the next sync.

License

GPLv3

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published