From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id QOUgHyNcBF8zUQAA0tVLHw (envelope-from ) for ; Tue, 07 Jul 2020 11:27:31 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id CBOnGiNcBF9BfgAA1q6Kng (envelope-from ) for ; Tue, 07 Jul 2020 11:27:31 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id BC2F9940AD0 for ; Tue, 7 Jul 2020 11:27:30 +0000 (UTC) Received: from localhost ([::1]:45996 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jsll3-0006G0-2v for larch@yhetil.org; Tue, 07 Jul 2020 07:27:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44058) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jslkf-0006Fs-GG for emacs-orgmode@gnu.org; Tue, 07 Jul 2020 07:27:05 -0400 Received: from coral.adamspiers.org ([2001:ba8:1f1:f27f::2]:40582) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jslkb-0005yv-Si for emacs-orgmode@gnu.org; Tue, 07 Jul 2020 07:27:05 -0400 Received: from localhost (243.103.2.81.in-addr.arpa [81.2.103.243]) by coral.adamspiers.org (Postfix) with ESMTPSA id 6AFC52E680 for ; Tue, 7 Jul 2020 12:26:56 +0100 (BST) Date: Tue, 7 Jul 2020 12:26:56 +0100 From: Adam Spiers To: org-mode mailing list Subject: time-warping - retroactively marking DONE? Message-ID: <20200707112656.wgsv7wfcnfeak6ik@gmail.com> X-OS: GNU/Linux MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline Received-SPF: pass client-ip=2001:ba8:1f1:f27f::2; envelope-from=orgmode@adamspiers.org; helo=coral.adamspiers.org X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=adamspiers.org (policy=none); spf=pass (aspmx1.migadu.com: domain of emacs-orgmode-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=emacs-orgmode-bounces@gnu.org X-Spam-Score: 0.09 X-TUID: O4I4oDdQFuMy Hi all, I'm looking for a way to retroactively mark a task as having been done at a previous time/date. I know that I can just change the keyword to DONE and then edit the timestamp, but this is tedious when it's a repeating event, e.g.: *** NEXT [#A] meditate 15 minutes every day SCHEDULED: <2020-07-06 Mon 11:30-11:50 .+1d> :PROPERTIES: :LAST_REPEAT: [2020-07-05 Sun 11:13] :ID: 142a639c-e06d-4d4b-ad1c-edcd0d9ba6ce :Effort: 0:20 :STYLE: habit :END: - State "DONE" from "NEXT" [2020-07-05 Sun 10:15] - State "DONE" from "NEXT" [2020-07-04 Sat 10:30] - State "DONE" from "NEXT" [2020-07-03 Fri 10:05] - State "DONE" from "NEXT" [2020-07-02 Thu 11:15] I forgot to mark it as done yesterday, which means that I would have to manually edit /three/ timestamps to log the correct data: 1) the SCHEDULED timestamp, 2) the :LAST_REPEAT: property, and 3) the state change history. If this is not currently possible, would it make sense to write a wrapper around `org-todo', e.g. `org-todo-timewarp' or `org-retroactive-todo', which interactively prompts for a timestamp before invoking `org-todo'? Another possibility would be to add yet another magic prefix argument to `org-todo', but it seems that is already heavily overloaded, so it would have to be 'C-u C-u C-u C-u' which isn't particularly convenient. I can even imagine users occasionally wanting to mark stuff done in the future, e.g. if they have an activity planned for tomorrow while they're offline. So maybe using the word 'retroactive' in the wrapper function name is a bit too limiting. Cheers, Adam