Hi Richard, Thanks for the nice and simple solution. I prefer this one to a solution like notmuch-snooze that stores the desnoozing in an external program and thus complicates backups. Sebastian Richard Lawrence <richard.lawrence@berkeley.edu> writes: > 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 > > _______________________________________________ > notmuch mailing list > notmuch@notmuchmail.org > http://notmuchmail.org/mailman/listinfo/notmuch