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.
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
):
and here is how it’s visualized in org-hyperscheduler:
- 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.
When planning a day, it’s easy to start with a list of tasks:
and then visualize them to ensure that capacity is available:
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.
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)))))
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
- Install cask (
brew install cask
). - Run
cask
to install dependencies. - Run
cask exec buttercup -L .
org-hyperscheduler was heavily inspired by org-roam-ui. If you’re using org-roam it’s worth adding org-roam-ui.
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.