Giter Site home page Giter Site logo

org-alert's Introduction

MELPA

org-alert

Provides notifications for scheduled or deadlined agenda entries.

Screenshot

Command overview

org-alert-check

Check for and display agenda entries that are active and due.

org-alert parses your org agenda for the current day looking for any headlines that are scheduled or contain a deadline that aren't marked with any of your DONE state keywords.

org-alert-enable

Enable periodic deadline checking.

Sets a timer which periodically calls org-alert-check. The interval can be set by changing the org-alert-interval (defaults to 300s).

org-alert-disable

Disable periodic deadline checking.

Cancels any timers set up with the org-alert-enable function.

Installation

Via MELPA

Installing via melpa is a simple as: package-install RET org-alert RET

use-package

(use-package org-alert
  :ensure t)

Manually

Clone the repo somewhere you will remember and then add it to your load path.

(add-to-list 'load-path "path/to/org-alert")
(require 'org-alert)

Configuration

Notification styles

org-alert uses the excellent alert package from John Wiegley to present its alerts. This defaults to using the Emacs message function for displaying notifications, to change it to something prettier set the alert-default-style variable to one of the options listed here.

To get system notifications like the screenshot use the following:

(setq alert-default-style 'libnotify)

You can even define your own styles!

Alert intervals

org-alert-interval determines how often org-alert checks your agenda file, and org-alert-notify-cutoff controls how long before a scheduled event a notification should be sent. org-alert-notify-after-event-cutoff controls how long after a scheduled event to continue sending notifications.

The snippet:

(setq org-alert-interval 300
      org-alert-notify-cutoff 10
      org-alert-notify-after-event-cutoff 10)

will set org-alert to check your agenda file every 5 minutes (300 seconds), start notifying you of a scheduled event 10 minutes before the event, and stop notifying you of the event 10 minutes after the scheduled time has passed.

You can also set the cutoff on a per-item basis using the org-alert-cutoff-prop property, which defaults to REMINDERN. For example, the entry

* TODO remindern test
  SCHEDULED: <2023-05-20 Sat 09:55>
  :PROPERTIES:
  :REMINDERN: 15
  :END:

will alert 15 minutes before the scheduled time, regardless of the value of org-alert-notify-cutoff. If you happen to be using org-wild-notifier.el, you might want to use WILD_NOTIFIER_NOTIFY_BEFORE instead of REMINDERN.

Custom titles

org-alert uses the title *org* by default. You can set this to something else by changing the org-alert-notification-title variable. Use this if you'd like to customize the display of org notifications when using a daemon such as dunst.

Custom categories

org-alert uses the category 'org-alert by default. You can set this to something else by changing the org-alert-notification-category variable. Use this if you'd like to customize the display of org notifications when using a notification function that supports distinct categories via the alert :category property.

Custom regexp for searching agenda entries

org-alert searches for agenda entries with 'Sched' or 'Deadline' word by default. You can set any other regexp you wish using the org-alert-match-string variable.

Custom regexp for matching times

org-alert searches for times within an org subtree using the org-alert-time-match-string variable, which defaults to

"\\(?:SCHEDULED\\|DEADLINE\\):.*<.*\\([0-9]\\{2\\}:[0-9]\\{2\\}\\).*>"

Like org-alert-match-string, you can set this in your config. For example, if you have nested SCHEDULED items like:

* task 1
SCHEDULED: <2022-12-08 Thu 07:00>
Do something
** task 1a
SCHEDULED: <2022-12-08 Thu 15:30>

you may want to use a non-greedy regular expression as suggested by hai5 to capture the first one rather than the second:

(setq org-alert-time-match-string
      "\\(?:SCHEDULED\\|DEADLINE\\):.*?<.*?\\([0-9]\\{2\\}:[0-9]\\{2\\}\\).*>")

TODOs

  • Notification priorities based on headline type (scheduled vs deadline)

org-alert's People

Contributors

spegoraro avatar ntbre avatar pierretechoueyres avatar jakecoble avatar mzhu-zx avatar alexmurray avatar anthonywilliams avatar herbertjones avatar polaris64 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.