time: support negative offset in parse_duration
scripts/reminders: no reminders in the past
irchash: rename to canonizedhash