Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dmitrym0/org-hyperscheduler

org-hyperscheduler is an Emacs package that helps you organize your day.
https://github.com/dmitrym0/org-hyperscheduler

emacs emacs-lisp emacs-package org-mode org-roam productivity scheduling

Last synced: 3 months ago
JSON representation

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

Awesome Lists containing this project

README

        

[[https://app.circleci.com/pipelines/github/dmitrym0/org-hyperscheduler?branch=main&filter=all][https://img.shields.io/circleci/build/gh/dmitrym0/org-hyperscheduler.svg]] [[https://github.com/dmitrym0/org-hyperscheduler/releases][file:https://www.shields.io/github/v/release/dmitrym0/org-hyperscheduler.svg?display_name=tag]]

* org-hyperscheduler

** What is Hyperscheduling
#+begin_quote
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.
#+end_quote

** Table of Contents :TOC:
- [[#org-hyperscheduler][org-hyperscheduler]]
- [[#what-is-hyperscheduling][What is Hyperscheduling]]
- [[#what-does-org-hyperscheduler-do][What does org-hyperscheduler do?]]
- [[#planning-a-day][Planning A Day]]
- [[#screen-cast][Screen Cast]]
- [[#installation][Installation]]
- [[#configuration][Configuration]]
- [[#development][Development]]

** 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~):

[[file:images/org-agenda.png]]

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

[[file:images/org-hs-ui.png]]

- blue entries are coming from an external calendar (such as [[https://github.com/kidd/org-gcal.el][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:

[[file:images/org-agenda-2.png]]

and then visualize them to ensure that capacity is available:

[[file:images/org-hs-ui-2.png]]

** Screen Cast

Real quick demo of what the package does:

[[https://www.youtube.com/watch?v=8vhhIYIS0zY][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 [[https://github.com/raxod502/straight.el][straight.el]]:

#+begin_src elisp
(use-package org-hyperscheduler
:straight
( :repo "dmitrym0/org-hyperscheduler"
:host github
:type git
:files ("*")))
#+end_src

You can also use quelpa and install with the snippet below:

#+BEGIN_SRC elisp
(package-install 'quelpa-use-package)
(require 'quelpa-use-package)

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

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 [[https://github.com/cask/cask][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 [[https://github.com/org-roam/org-roam-ui][org-roam-ui]]. If you're using [[https://github.com/org-roam/org-roam-ui][org-roam]] it's worth adding org-roam-ui.

**** calfw

[[https://github.com/kiwanami/emacs-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.