I an using Drafts 5 for my TaskPaper automation for monthly meetings. I would like to send a meeting agenda request 10 business days before the meeting. Using @defer(DATE-10d) can fall on a weekend, I would like it to default to Friday in these cases. How would I do this?
Thanks!
OmniFocus (currently) doesn’t have a way to do this, but if you’re using Drafts then you have the power of JavaScript at your disposal. The way I’d do this is create a script action that looks something like this (warning: untested code):
// about a day. This has bugs with DST, leap seconds, etc, but good enough
var dayish = 24 * 60 * 60 * 1000;
// ten days ago is?
var date = new Date((new Date()).getTime() - 10 * dayish);
// move back a day while we're on a sat or sunday
while (date.getDay() < 1 || date.getDay() > 5) {
date = new Date(date.getTime() - dayish);
}
// set the "tendaysago" tag to something like '2019-01-02' which OF can parse
// don't include the hours / minutes / seconds - start at midnight
draft.setTemplateTag("tendaysago", date.toISOString().split('T')[0]);
Then I’d use the template as you’re doing currently but use @defer([[tendaysago]])
to insert the output of the JavaScript action in the right place
2 Likes
Thanks! I will try it out.