Skip to content

org-hyperscheduler is an Emacs package that helps you organize your day.

License

Notifications You must be signed in to change notification settings

demamoh/org-hyperscheduler

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

https://img.shields.io/circleci/build/gh/dmitrym0/org-hyperscheduler.svg https://www.shields.io/github/v/release/dmitrym0/org-hyperscheduler.svg?display_name=tag

org-hyperscheduler

What is Hyperscheduling

Hyperscheduling is the idea of fully planning your day using a calendar. Every minute of the day is assigned to some task using a calendar.

What does org-hyperscheduler do?

org-hyperscheduler presents a web UI that allows agenda entries to be visualized and moved around easily.

Here’s a typical agenda (C-c a a):

images/org-agenda.png

and here is how it’s visualized in org-hyperscheduler:

images/org-hs-ui.png

  • blue entries are coming from an external calendar (such as org-gcal).
  • purple entries are part of standard org-agenda.

The user is free to modify entries or move them around provided org-hyperschedule-readonly-mode is disabled.

Planning A Day

When planning a day, it’s easy to start with a list of tasks:

images/org-agenda-2.png

and then visualize them to ensure that capacity is available:

images/org-hs-ui-2.png

Installation

org-hyperschedule is not currently available in MELPA. Once the package matures, it will be added.

For now you can either download the source and install it manually or with use-package and straight.el:

(use-package org-hyperscheduler
  :straight
  ( :repo "dmitrym0/org-hyperscheduler"
    :host github
    :type git
    :files ("*")))

You can then invoke M-x org-hyperscheduler-open to invoke the web view.

Hiding calendar entries from org-roam

org-roam treats all entries with an :ID: property as as roam nodes. This is not what I wanted. Each calendar entry processed by org-hyperscheduler gets a DO_NOT_ORG_ROAM tag. Subsequently, we tell org-roam to ignore all entries with this tag:

(require 'org-roam-protocol)
(setq org-roam-db-node-include-function
      (lambda ()
        (not (member "DO_NOT_ORG_ROAM" (org-get-tags)))))

Configuration

Use M-x customize-group org-hyperscheduler to configure this module.

Readonly mode

org-hyperscheduler is able to update entries in Emacs when using the web UI. To suppor this functionality, org-hyperscheduler must create IDs for each scheduled entry. If you are not ok with org-hyperscheduler modifying your data, keep org-hyperscheduler-readonly-mode turned on. In this mode you can visualize your agenda, but cannot make any changes in web UI.:w

Development

Running tests

  1. Install cask (brew install cask).
  2. Run cask to install dependencies.
  3. Run cask exec buttercup -L .

See also

org-roam-ui

org-hyperscheduler was heavily inspired by org-roam-ui. If you’re using org-roam it’s worth adding org-roam-ui.

calfw

calfw is a (textmode) calendaring framwork for emacs. I found it somewhat late into the development of org-hyperscheduler. If I found it earlier, I may have skipepd developing this.

About

org-hyperscheduler is an Emacs package that helps you organize your day.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Emacs Lisp 65.6%
  • JavaScript 25.1%
  • HTML 6.4%
  • CSS 2.9%