Franz Fellner <alpine.art.de@gmail.com> writes: > Sebastian Fischmeister wrote: >> I'm thinking of how to realize the mail snoozing feature with notmuch, >> so that certain emails won't become visible (in the search) until a >> certain day/time (e.g., 10 days from now). >> >> Using the tag as an absolute date when the mail should become visible >> again, tags should be searchable and interpretable as dates. The search >> would then be something like: notmuch search tag-as-date < now and >> tag:inbox > > It is not neccessary to make notmuch interpret tags as date - just interpret them yourself ;) > You can easily run your own scripts and modify tags/mails. So a simple solution might be: > * Add "snoozed" to your notmuch exclude_tags (see config file) > * To snooze a mail run in your mail client "tag +snoozed +snoozeby-10-days" > or "tag +snoozed +snoozeuntil-2015-01-09" > * Your script (e.g. run as cronjob or after notmuch new) now > - queries for "tag:snoozed" > - looks for snoozeuntil-* tag and parses the tag into a date. If date < now remove snooze-tags. > - looks for (relative) snoozeby tag and transform it into (absolute) snoozeuntil tag. > (should be not too hard using e.g. the python or ruby bindings) I actually do something like this. It's not everything Sebastian was looking for, but it's very simple, and works great for me. I use a combination of a "pending" tag and a "byYYYYMMDD" tag. >From cron, I run the following to refile pending mail back to the inbox when it comes due: #!/bin/bash DATE_STR=$(date +'%Y%m%d') notmuch tag +inbox -pending -by$DATE_STR -- tag:by$DATE_STR and in Emacs, I use the following key binding to snooze mail (or in the Mutt terminology I borrowed, `postpone' it, hence the key): (define-key notmuch-search-mode-map "P" (lambda () "postpone message (remove inbox tag, add pending tag and refile date)" (interactive) (let* ((date-string (format-time-string "%Y%m%d" (org-read-date nil t))) (date-tag (concat "+by" date-string))) (notmuch-search-tag `("-inbox" "+pending" ,date-tag))))) (The `org-read-date' function gives me a nice easy way to pick a date from a calendar. I bind "P" to the same function in notmuch-show-mode-map, too.) Hope that helps! Best, Richard