Extract notifications from icaledar reminder and events



You can also use your local clone with git send-email.


This is a simple tool to show desktop notifications based on icalendar ALARMS. These may be alarms for events, or todos.

This is designed to inter-operate with todoman, khal and vdirsyncer.


valarmd is still under development. It does not yet show any notifications. It does already traverse calendar entries.


  • Walk a vdir and find all *.ics files.
  • Read/parse all the icalendar files (using the icalendar create).
  • Find all alarms in all VEVENTs and VTODOs (done in valarmd).
  • Parse all alarm styles allowed in icalendar (alarms can be relative to start/end of event/todo, or absolute times in UTC).
  • Take into account timezones.

Reading a vdir is a prototype and will be replaced by a vstorage, eventually. Parsing durations has been done in a crate in this repo, icalendar-duration.

Pending still:

  • Apply recurrence rules. A crate exists that should work fine for this. I'll probably only extract recurring events in a very near future, and not ALL future alarms. Note to self: make this timedelta an input to the whole thing.
  • Actually show notifications. I will likely just print the alarms as JSONL to a stream, and have a separate process to actually display the alarms, allowing usage in different platforms and scenarios.
  • Extensions from rfc9074.
  • Non-UTC time zones (this is for alarms with relative dates only).

Usage as a library will also be possible. It falls within scope to allow servers to use this crate to send extracted alarms to clients.


This project is licensed under the MPLv2. See LICENCE for details.