A minimal dmenu/rofi launcher app to manage a directory of icalendar formatted todo's (e.g. Nextcloud Tasks)
  • Go 97.5%
  • Nix 2.5%
Find a file
2026-06-12 12:19:27 -07:00
.github/workflows Update github action 2024-09-19 19:42:09 -07:00
testdata The -todo flag now points at a directory of calendars. Added viewing/adding items to different lists and creating new list 2026-02-20 19:01:37 -08:00
.gitignore Claude updates 2026-02-08 13:12:56 -08:00
CLAUDE.md Claude updates 2026-02-08 13:12:56 -08:00
flake.lock Maintenance updates 2026-02-06 13:43:29 -08:00
flake.nix Reschedule completed repeating tasks (respect RRULE values). Closes #2. 2026-02-08 13:07:49 -08:00
go.mod Reschedule completed repeating tasks (respect RRULE values). Closes #2. 2026-02-08 13:07:49 -08:00
go.sum Reschedule completed repeating tasks (respect RRULE values). Closes #2. 2026-02-08 13:07:49 -08:00
LICENSE Initial commit 2024-09-03 14:56:15 -07:00
README.md Move code to forgejo 2026-06-12 12:19:27 -07:00
todocalmenu.go The -todo flag now points at a directory of calendars. Added viewing/adding items to different lists and creating new list 2026-02-20 19:01:37 -08:00
todocalmenu_test.go The -todo flag now points at a directory of calendars. Added viewing/adding items to different lists and creating new list 2026-02-20 19:01:37 -08:00

Todocalmenu

NOTE: Code moved to https://git.firecat53.me/firecat53/todocalmenu. Issues and PRs still accepted here for now. Github repo maintained as a read-only mirror.

A minimal dmenu/rofi launcher (also bemenu, wofi, fuzzel, tofi, yofi, and wmenu) app to view and manage a directory of icalendar todo's.

Can be used, for example, with a combination of Nextcloud Tasks, vdirsyncer, and Tasks for Android.

Installation

Usage

  • Command line options:

        -cmd string
              Dmenu command to use (dmenu, rofi, wofi, etc) (default "dmenu")
        -hide-created-date
              Don't display the created date (default false)
        -opts string
              Additional Rofi/Dmenu options (default "")
        -todo string
              Path to todo directory (default "./todos")
        -threshold
              Hide items before their threshold (Start) date (default false)
    
  • Configure the launcher using appropriate command line options and pass using the -opts flag to todocalmenu. NOTE The -i and dmenu flags are passed to all launchers by default when necessary. Supported launchers by default are dmenu, rofi, wofi, fuzzel, tofi, yofi, wmenu and bemenu. Others may work but may not have the correct flags passed by default.

      todocalmenu -cmd rofi -todo /home/user/todos -opts "-theme todocalmenu"
      todocalmenu -todo /home/user/todos -opts
          "-fn SourceCodePro-Regular:12 -b -l 10 -nf blue -nb black"
    

Display Format

(priority) created-date summary @category +listname due:due-date [R]
  • @category - categories assigned to the item (one per category)
  • +listname - list name (only shown in multi-list mode)

Multiple Lists

If the -todo directory contains .ics files directly, todocalmenu operates in single-list mode. If it contains subdirectories with .ics files (e.g. from CalDAV sync), each subdirectory is treated as a separate list and items are tagged with +listname in the display. A displayname file in a subdirectory (common with CalDAV) is used as the list name if present, otherwise the directory name is used.

Recurring Tasks

Recurring tasks are indicated with [R] in the task list. When completing a recurring task, you can choose to:

  • Complete (reschedule to next) - Reschedules the task to the next occurrence based on its recurrence rule
  • Complete permanently - Marks the task as completed and removes the recurrence

TODO: Creating and editing recurrence rules is not yet supported. Use another calendar app (e.g., Tasks.org, Nextcloud Tasks) to set up recurring tasks.

Testing

  • go test