From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id gPKkM1AuPGStEwAASxT56A (envelope-from ) for ; Sun, 16 Apr 2023 19:20:16 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id EIe4MlAuPGRlEQEAG6o9tA (envelope-from ) for ; Sun, 16 Apr 2023 19:20:16 +0200 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 794972891B for ; Sun, 16 Apr 2023 19:20:16 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1po625-0000d8-5E; Sun, 16 Apr 2023 13:19:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1po623-0000cj-Ga for emacs-orgmode@gnu.org; Sun, 16 Apr 2023 13:19:19 -0400 Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1po620-0006m5-EW for emacs-orgmode@gnu.org; Sun, 16 Apr 2023 13:19:19 -0400 Received: by mail-pj1-x102d.google.com with SMTP id hg14-20020a17090b300e00b002471efa7a8fso10160133pjb.0 for ; Sun, 16 Apr 2023 10:19:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1681665554; x=1684257554; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=wpZRCf67lqIKSytgHd8Ol24it8Ee5GJ1fWth343D1t4=; b=WFuTMIyfkMYZiokQPdnh4ZbxQRhgpDfuDksvzVtOQarWLGkug9+0EuXr09r6JxUdZs MH06gLofvW4KBoEPn9Ix3w9MQGNLNc4Xg3ztPuYjAB7x0n4igVby4aujlEDwTKFMpfH1 GXj52xxz2vo5k9WLFwjRs6kcuMkFol5K8sLuCVuGqAVaWE6aq0Njk5eC53ReW/02BwFo UrKn4y4dpcicz7/sw4cmdCixw/6oBjfctBuGDZXINNNnqBSqEmZ1rKC/GRTUlVJMPL8z U6hlNlP3qZ0eGdnz37/9QL2eKywYE5DhQoiPEf8IOJLwYl0vrIweW4mi4kbnWbPKXNb9 pLPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681665554; x=1684257554; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=wpZRCf67lqIKSytgHd8Ol24it8Ee5GJ1fWth343D1t4=; b=ZnHWS8mh4fWfng6ElrU49H1ZtYvrXxLKb7juRbJ9XCP+4xoO4iEyVyhJJYVdI3cwOI 6qPwYnSwR+5h1Yu996pry0oJm0zsMDEjNHXrSYHbaxfotGJvj3ftIlZnjl9Er+krdEyF SBYA2FwvrKqFC9HtGCaGBEEG2eOhjnAJyqSK7DvspmjU+NxlYtdrWF6wgpBmQojgmW0C YSVR7rsUl2Xp1mnIo+NOhHiOQvhT9+Y5FrEiqOxQ5asM+64pKUm2I7t2YSKKpUyjxQfu 6EVCGrNCrYsXNlhvp7bczz94HbTbTjtCpqGxxvlz7bECQa1mKpAwKWJnAAmKvATzLtpE Rq/g== X-Gm-Message-State: AAQBX9f7OPL08L5OvElRkl3Ubnh3wrlXteIMI2SYdGxkv2P287KEbnWI 6W2bdHE9KgSpE82UtFU8uKo= X-Google-Smtp-Source: AKy350bm+B6h4Me8Eldmk53GoN1j8feHE3y5bIDOoQABq5CfHutFz+r0PJDrMnNnVe10TP49jMoH4Q== X-Received: by 2002:a05:6a20:291e:b0:ec:7cc:2da3 with SMTP id t30-20020a056a20291e00b000ec07cc2da3mr11278090pzf.15.1681665554277; Sun, 16 Apr 2023 10:19:14 -0700 (PDT) Received: from localhost (157-131-78-143.fiber.dynamic.sonic.net. [157.131.78.143]) by smtp.gmail.com with ESMTPSA id v11-20020a63f20b000000b00502f20aa4desm2952098pgh.70.2023.04.16.10.19.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Apr 2023 10:19:13 -0700 (PDT) From: Jack Kamm To: Ihor Radchenko Cc: emacs-orgmode@gnu.org, mail@nicolasgoaziou.fr Subject: Re: [RFC] ox-icalendar: Unscheduled tasks & repeating tasks In-Reply-To: <878retlb89.fsf@localhost> References: <874jq75okg.fsf@gmail.com> <87o7oetneo.fsf@localhost> <87fs92bdvf.fsf@gmail.com> <87o7nql2sq.fsf@localhost> <87wn2d4z3q.fsf@gmail.com> <878retlb89.fsf@localhost> Date: Sun, 16 Apr 2023 10:19:12 -0700 Message-ID: <87a5z7bv8v.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=2607:f8b0:4864:20::102d; envelope-from=jackkamm@gmail.com; helo=mail-pj1-x102d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 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-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US ARC-Seal: i=1; s=key1; d=yhetil.org; t=1681665616; a=rsa-sha256; cv=none; b=alrab2L/EON4/PcQ7MtUPeAIKZkK8KoohWp9z7fZ0za74eBjgl9EPvJsFUflopACXj5c1L IK2YXaJMB0xNB5xoCsqzbpOfK12TROyEHIQXS17VO3r8AJCB9bGW63CAM9lHaVdHNx3W7M ZeWZTNyK5HONcdxgUvNb3tKKiXtJ5ww6uffyEZbITuMF0lI77DzI9cFWnIFNNog81EdbJb bIzTIX3HIVZ82ouPyvdoq7ebetlIztM36C+mGTu8v4ZOSxMQ3sU0oxCkKveqrMq8gEPKwk WLp75BOuWp07GCflc9sDIReepIIRp7AtHoc23v5bh1hyOBIiAca2N2nmjXG76w== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=WFuTMIyf; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1681665616; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=wpZRCf67lqIKSytgHd8Ol24it8Ee5GJ1fWth343D1t4=; b=ZxMSmoz8Za15vdHrM8i0d0rjICIvUjK4j6sVKgrbG5fuyZnbg9aupW0BwZTlVnJyog4Ji7 9dosqj5IEUKsxkoryjnZvmPfER5c6BRe7YUtCqUMyduA5AGVmCb7O89DAo6aCP5AiBOkd6 0MtZq/BumQ4s83fSNnuF15ebnYOdchbE0kTzlIo5k7gBJGg0GCnIEiVaxvWpdDbMSxDz8x iHUFnF9EGfZ7hga28p3cA3aUpI09akaFjyPEawBfVxIhWHhvbDLnMdwgZfqNBSAxrNmQev hSmWMwD4BuWoayzzyTXgPVRshHuCYEXGlhKKnqTFH8SW9ssaLu9HPKTzlcVxig== X-Migadu-Queue-Id: 794972891B Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=WFuTMIyf; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gmail.com X-Migadu-Scanner: scn0.migadu.com X-Migadu-Spam-Score: -7.95 X-Spam-Score: -7.95 X-TUID: RyRGbbHnXPff Ihor Radchenko writes: >> So technically, a standalone DEADLINE + repeater isn't allowed -- a >> repeating task must always have a start date. > > May we then use org-deadline-warning-days/timestamp warntime spec as DTSTART? > VALARM component is not fitting for warning days anyway. > >> But still, maybe we should stick to the requirement, and only export >> repeater on SCHEDULED. That would simplify the implementation. The >> downside is that repeating deadlines won't show up in iCalendar, which >> seems undesirable. > > Agree. We should better stick to the spec. I took a closer look into how other programs handle RRULE, DTSTART, DUE. I tried the following CalDav servers: Nextcloud, radicale And the following clients: Tasks.org, Thunderbird, Evolution. (I did not use Nextcloud client because it doesn't support repeating tasks, even though the Nextcloud server does). Thunderbird and Evolution clients do not allow creating repeating tasks without start date -- if you try to do so, they will force you to specify one. Tasks.org client does allow repeating tasks with only a deadline (no start date). Nextcloud and radicale servers happily accept the repeating deadline from Tasks.org without start date. When I download the ICS file from the server, the VTODO contains RRULE and DUE, but not DTSTART. When I validate the ICS file with icalendar.org [1], it accepts the ICS as valid, even though it seemingly violates the spec by missing DTSTART. So, it seems there is some inconsistency about this in the iCalendar ecosystem. I have not yet reached a firm conclusion on the best solution, but am leaning towards your suggestion to use org-deadline-warning-days for DTSTART in this case. I'll try to have a more concrete, updated patch on this ready in a couple weeks or so. [1] https://icalendar.org/validator.html