Skip to content

driverag22/org-hyperscheduler

 
 

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

This is a fork I made to change org-hyperscheduler into (more or less) what I want it to be. I updated it to use the “latest” version of tui-calendar, and revamped the frontend code quite a bit.

The changes can be summarised as:

  • Added month view
  • Replaced buttons with keybindings
  • Dark theme
  • Removed all onClick stuff and editing from the calendar.

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.

Table of Contents

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

Screen Cast

Real quick demo of what the package does:

https://img.youtube.com/vi/8vhhIYIS0zY/0.jpg

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 also use quelpa and install with the snippet below:

(package-install 'quelpa-use-package)
(require 'quelpa-use-package)

(use-package org-hyperscheduler
  :quelpa (org-hyperscheduler :fetcher github :repo "dmitrym0/org-hyperscheduler"))

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

Configuration

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

Read only 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.

Hiding calendar entries from org-roam

org-roam treats all entries with an :ID: property as roam nodes. This is not what I wanted. org-roam excludes all entries with the G

See org-hyperscheduler-exclude-from-org-roam through M-x customize-group org-hyperscheduler or

(setq org-hyperscheduler-exclude-from-org-roam t)

**Note**: Read only mode must be disabled for this to take effect.

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

Releases

No releases published

Packages

No packages published

Languages

  • Emacs Lisp 72.9%
  • JavaScript 24.9%
  • CSS 1.2%
  • HTML 1.0%