* bug#39782: 28.0.50; gnus-icalendar does not understand multiple repeating days
@ 2020-02-25 13:05 Mark A. Hershberger
2020-07-19 13:58 ` Lars Ingebrigtsen
2020-08-24 19:11 ` Mattias Engdegård
0 siblings, 2 replies; 13+ messages in thread
From: Mark A. Hershberger @ 2020-02-25 13:05 UTC (permalink / raw)
To: 39782
I used gnus-icalendar's "Export to Org" feature on an appointment, and
it successfully made a repeating entry (GOOD!) but failed to catch the
days other than the first one (BAD!).
The created org-entry contains the following RRULE entry:
:RRULE: FREQ=WEEKLY;UNTIL=20200519T133000Z;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR;WKST=SU
The only entry created, though, was
<2020-02-25 09:30-10:00 +1w>
I had to manually add the following entries:
<2020-02-26 09:30-10:00 +1w>
<2020-02-27 09:30-10:00 +1w>
<2020-02-28 09:30-10:00 +1w>
<2020-03-02 09:30-10:00 +1w>
From skimming gnus-icalendar.el and icalendar.el, it looks like the
"BYDAY" parsing in icalendar.el only looks for one day, instead of the
multiples given. I think gnus-icalendar.el's export to org functions
are only set up to insert one day instead of the multiple times required
by this rule.
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#39782: 28.0.50; gnus-icalendar does not understand multiple repeating days
2020-02-25 13:05 bug#39782: 28.0.50; gnus-icalendar does not understand multiple repeating days Mark A. Hershberger
@ 2020-07-19 13:58 ` Lars Ingebrigtsen
2020-07-19 15:36 ` Mark A. Hershberger
2020-07-19 16:03 ` Mark A. Hershberger
2020-08-24 19:11 ` Mattias Engdegård
1 sibling, 2 replies; 13+ messages in thread
From: Lars Ingebrigtsen @ 2020-07-19 13:58 UTC (permalink / raw)
To: Mark A. Hershberger; +Cc: 39782
"Mark A. Hershberger" <mah@everybody.org> writes:
>>From skimming gnus-icalendar.el and icalendar.el, it looks like the
> "BYDAY" parsing in icalendar.el only looks for one day, instead of the
> multiples given. I think gnus-icalendar.el's export to org functions
> are only set up to insert one day instead of the multiple times required
> by this rule.
Do you have a ical example file that illustrates the problem?
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#39782: 28.0.50; gnus-icalendar does not understand multiple repeating days
2020-07-19 13:58 ` Lars Ingebrigtsen
@ 2020-07-19 15:36 ` Mark A. Hershberger
2020-07-19 16:03 ` Mark A. Hershberger
1 sibling, 0 replies; 13+ messages in thread
From: Mark A. Hershberger @ 2020-07-19 15:36 UTC (permalink / raw)
To: Lars Ingebrigtsen; +Cc: 39782
[-- Attachment #1: Type: text/plain, Size: 1804 bytes --]
I'm attaching an appointment I sent my gmail address just now and the resulting org entry (in the tmp.org file) that the [Export to Org] button produced using the gnus-icalendar-sync-event-to-org callback.
Looking at the text property gnus-data for the button, I see:
#s(gnus-icalendar-event-request "mah@nichework.com"
"appointment every weekday, start jul 24, 2020, end aug 24, 2020"
"The following is a new meeting request:\n\nSubject: appointment every weekday, start jul 24, 2020, end aug 24, 2020 \nOrganizer: \"Mark A. Hershberger\" <mah@nichework.com> \n\nTime: 9:00:00 AM - 9:30:00 AM GMT -05:00 US/Canada Eastern\n Recurrence : Every weekday. End by Aug 24, 2020. Effective Jul 24, 2020\n\nInvitees: hexmode@gmail.com \n\n\n*~*~*~*~*~*~*~*~*~*\n\ntest \n" nil
(24346 56144)
(24346 57944)
"FREQ=DAILY;UNTIL=20200825T035959Z;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR" "903a5415-9067-4f63-b499-1b6205f49c88" "REQUEST" t required
("Mark Hershberger")
nil)
----- On Jul 19, 2020, at 9:58 AM, Lars Ingebrigtsen larsi@gnus.org wrote:
> "Mark A. Hershberger" <mah@everybody.org> writes:
>
>>>From skimming gnus-icalendar.el and icalendar.el, it looks like the
>> "BYDAY" parsing in icalendar.el only looks for one day, instead of the
>> multiples given. I think gnus-icalendar.el's export to org functions
>> are only set up to insert one day instead of the multiple times required
>> by this rule.
>
> Do you have a ical example file that illustrates the problem?
>
> --
> (domestic pets only, the antidote for overdose, milk.)
> bloggy blog: http://lars.ingebrigtsen.no
[-- Attachment #2: tmp.org --]
[-- Type: application/octet-stream, Size: 785 bytes --]
* appointment every weekday, start jul 24, 2020, end aug 24, 2020
:PROPERTIES:
:ICAL_EVENT: t
:ID: 903a5415-9067-4f63-b499-1b6205f49c88
:ORGANIZER: mah@nichework.com
:LOCATION:
:PARTICIPATION_TYPE: required
:REQ_PARTICIPANTS: Mark Hershberger
:OPT_PARTICIPANTS:
:RRULE: FREQ=DAILY;UNTIL=20200825T035959Z;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR
:REPLY: Not replied yet
:END:
<2020-07-24 09:00-09:30 +1d>
The following is a new meeting request:
Subject: appointment every weekday, start jul 24, 2020, end aug 24, 2020
Organizer: "Mark A. Hershberger" <mah@nichework.com>
Time: 9:00:00 AM - 9:30:00 AM GMT -05:00 US/Canada Eastern Recurrence :
Every weekday. End by Aug 24, 2020. Effective Jul 24, 2020
Invitees: hexmode@gmail.com
*~*~*~*~*~*~*~*~*~*
test
[-- Attachment #3: Type: message/rfc822, Size: 13008 bytes --]
[-- Attachment #3.1.1: Type: text/plain, Size: 365 bytes --]
The following is a new meeting request:
Subject: appointment every weekday, start jul 24, 2020, end aug 24, 2020
Organizer: "Mark A. Hershberger" <mah@nichework.com>
Time: 9:00:00 AM - 9:30:00 AM GMT -05:00 US/Canada Eastern
Recurrence : Every weekday. End by Aug 24, 2020. Effective Jul 24, 2020
Invitees: hexmode@gmail.com
*~*~*~*~*~*~*~*~*~*
test
[-- Attachment #3.1.2: Type: text/html, Size: 836 bytes --]
[-- Attachment #3.1.3: meeting.ics --]
[-- Type: text/calendar, Size: 2486 bytes --]
BEGIN:VCALENDAR
PRODID:Zimbra-Calendar-Provider
VERSION:2.0
METHOD:REQUEST
BEGIN:VTIMEZONE
TZID:America/New_York
BEGIN:STANDARD
DTSTART:16010101T020000
TZOFFSETTO:-0500
TZOFFSETFROM:-0400
RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=11;BYDAY=1SU
TZNAME:EST
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:16010101T020000
TZOFFSETTO:-0400
TZOFFSETFROM:-0500
RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=3;BYDAY=2SU
TZNAME:EDT
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
UID:903a5415-9067-4f63-b499-1b6205f49c88
RRULE:FREQ=DAILY;UNTIL=20200825T035959Z;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR
SUMMARY:appointment every weekday\, start jul 24\, 2020\, end aug 24\, 2020
ATTENDEE;CN=Mark Hershberger;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP
=TRUE:mailto:hexmode@gmail.com
ORGANIZER;CN=Mark A. Hershberger:mailto:mah@nichework.com
DTSTART;TZID="America/New_York":20200724T090000
DTEND;TZID="America/New_York":20200724T093000
STATUS:CONFIRMED
CLASS:PUBLIC
X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
TRANSP:OPAQUE
LAST-MODIFIED:20200719T150815Z
DTSTAMP:20200719T150815Z
SEQUENCE:0
DESCRIPTION:The following is a new meeting request:\n\nSubject: appointment
every weekday\, start jul 24\, 2020\, end aug 24\, 2020 \nOrganizer: "Mark A
. Hershberger" <mah@nichework.com> \n\nTime: 9:00:00 AM - 9:30:00 AM GMT -05
:00 US/Canada Eastern\n Recurrence : Every weekday. End by Aug 24\, 2020.
Effective Jul 24\, 2020\n\nInvitees: hexmode@gmail.com \n\n\n*~*~*~*~*~*~*
~*~*~*\n\ntest \n
X-ALT-DESC;FMTTYPE=text/html:<html><body id='htmlmode'><h3>The following is
a new meeting request:</h3>\n\n<p>\n<table border='0'>\n<tr><th align=left>S
ubject:</th><td>appointment every weekday\, start jul 24\, 2020\, end aug 24
\, 2020 </td></tr>\n<tr><th align=left>Organizer:</th><td>"Mark A. Hershberg
er" <\;mah@nichework.com>\; </td></tr>\n</table>\n<p>\n<table border='0'
>\n<tr><th align=left>Time:</th><td>9:00:00 AM - 9:30:00 AM GMT -05:00 US/Ca
nada Eastern\n </td></tr><tr><th align=left>Recurrence</th><td>: Every weekd
ay. End by Aug 24\, 2020. Effective Jul 24\, 2020</td></tr>\n</table>\n<
p>\n<table border='0'>\n<tr><th align=left>Invitees:</th><td>hexmode@gmail.c
om </td></tr>\n</table>\n<div>*~*~*~*~*~*~*~*~*~*</div><br><div style="font-
family: arial\, helvetica\, sans-serif\; font-size: 12pt\; color: #000000"><
div>test<br data-mce-bogus="1"></div></div></body></html>
BEGIN:VALARM
ACTION:DISPLAY
TRIGGER;RELATED=START:-PT5M
DESCRIPTION:Reminder
END:VALARM
END:VEVENT
END:VCALENDAR
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#39782: 28.0.50; gnus-icalendar does not understand multiple repeating days
2020-07-19 13:58 ` Lars Ingebrigtsen
2020-07-19 15:36 ` Mark A. Hershberger
@ 2020-07-19 16:03 ` Mark A. Hershberger
2020-07-20 9:56 ` Lars Ingebrigtsen
1 sibling, 1 reply; 13+ messages in thread
From: Mark A. Hershberger @ 2020-07-19 16:03 UTC (permalink / raw)
To: Lars Ingebrigtsen; +Cc: 39782
Inline since it looks like debbugs is dropping emails with attachments:
I'm attaching an appointment I sent my gmail address just now and the
resulting org entry (in the tmp.org file) that the [Export to Org] button
produced using the gnus-icalendar-sync-event-to-org callback.
Looking at the text property gnus-data for the button, I see:
#s(gnus-icalendar-event-request "mah@nichework.com"
"appointment every weekday, start jul 24, 2020, end aug 24, 2020"
"The following is a new meeting
request:\n\nSubject: appointment every weekday, start jul 24, 2020, end aug
24, 2020 \nOrganizer: \"Mark A. Hershberger\" <mah@nichework.com> \n\nTime:
9:00:00 AM - 9:30:00 AM GMT -05:00 US/Canada Eastern\n Recurrence : Every
weekday. End by Aug 24, 2020. Effective Jul 24, 2020\n\nInvitees:
hexmode@gmail.com \n\n\n*~*~*~*~*~*~*~*~*~*\n\ntest \n" nil
(24346 56144)
(24346 57944)
"FREQ=DAILY;UNTIL=20200825T035959Z;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR"
"903a5415-9067-4f63-b499-1b6205f49c88" "REQUEST" t required
("Mark Hershberger")
nil)
------=_Part_584222_1719359544.1595172990988
Content-Type: application/octet-stream; name=tmp.org
Content-Disposition: attachment; filename=tmp.org
Content-Transfer-Encoding: base64
KiBhcHBvaW50bWVudCBldmVyeSB3ZWVrZGF5LCBzdGFydCBqdWwgMjQsIDIwMjAsIGVuZCBhdWcg
MjQsIDIwMjAKOlBST1BFUlRJRVM6CjpJQ0FMX0VWRU5UOiB0CjpJRDogICAgICAgOTAzYTU0MTUt
OTA2Ny00ZjYzLWI0OTktMWI2MjA1ZjQ5Yzg4CjpPUkdBTklaRVI6IG1haEBuaWNoZXdvcmsuY29t
CjpMT0NBVElPTjoKOlBBUlRJQ0lQQVRJT05fVFlQRTogcmVxdWlyZWQKOlJFUV9QQVJUSUNJUEFO
VFM6IE1hcmsgSGVyc2hiZXJnZXIKOk9QVF9QQVJUSUNJUEFOVFM6CjpSUlVMRTogICAgRlJFUT1E
QUlMWTtVTlRJTD0yMDIwMDgyNVQwMzU5NTlaO0lOVEVSVkFMPTE7QllEQVk9TU8sVFUsV0UsVEgs
RlIKOlJFUExZOiAgICBOb3QgcmVwbGllZCB5ZXQKOkVORDoKCiAgPDIwMjAtMDctMjQgMDk6MDAt
MDk6MzAgKzFkPgoKICBUaGUgZm9sbG93aW5nIGlzIGEgbmV3IG1lZXRpbmcgcmVxdWVzdDoKCiAg
U3ViamVjdDogYXBwb2ludG1lbnQgZXZlcnkgd2Vla2RheSwgc3RhcnQganVsIDI0LCAyMDIwLCBl
bmQgYXVnIDI0LCAyMDIwCiAgT3JnYW5pemVyOiAiTWFyayBBLiBIZXJzaGJlcmdlciIgPG1haEBu
aWNoZXdvcmsuY29tPgoKICBUaW1lOiA5OjAwOjAwIEFNIC0gOTozMDowMCBBTSBHTVQgLTA1OjAw
IFVTL0NhbmFkYSBFYXN0ZXJuIFJlY3VycmVuY2UgOgogIEV2ZXJ5IHdlZWtkYXkuICBFbmQgYnkg
QXVnIDI0LCAyMDIwLiAgRWZmZWN0aXZlIEp1bCAyNCwgMjAyMAoKICBJbnZpdGVlczogaGV4bW9k
ZUBnbWFpbC5jb20KCgogICp+Kn4qfip+Kn4qfip+Kn4qfioKCiAgdGVzdAo=
------=_Part_584222_1719359544.1595172990988
Content-Type: message/rfc822
Content-Disposition: attachment
Return-Path: hexmode+caf_=mah=nichework.com@gmail.com
Received: from 108.161.151.158 (LHLO mail.nichework.com) (108.161.151.158)
by mail.nichework.com with LMTP; Sun, 19 Jul 2020 08:09:11 -0700 (PDT)
Received: from localhost (localhost.localdomain [127.0.0.1])
by mail.nichework.com (Postfix) with ESMTP id 1B6784E1EBD
for <mah@nichework.com>; Sun, 19 Jul 2020 08:09:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at mail.nichework.com
Authentication-Results: mail.nichework.com (amavisd-new);
dkim=pass (2048-bit key) header.d=nichework.com
Received: from mail.nichework.com ([127.0.0.1])
by localhost (mail.nichework.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id uKsJGt_VjgNA for <mah@nichework.com>;
Sun, 19 Jul 2020 08:09:11 -0700 (PDT)
Received: from nospam.nichework.com (nospam.nichework.com [206.71.169.33])
by mail.nichework.com (Postfix) with ESMTPS id F11974E1E55
for <mah@nichework.com>; Sun, 19 Jul 2020 08:09:10 -0700 (PDT)
Received: from localhost (localhost.localdmain [127.0.0.1])
by nospam.nichework.com (Postfix) with ESMTP id 13875B003F
for <mah@nichework.com>; Sun, 19 Jul 2020 11:09:01 -0400 (EDT)
Authentication-Results: nospam.nichework.com; dkim=pass
reason="2048-bit key; insecure key"
header.d=nichework.com header.i=@nichework.com header.b=H9R3mrfB;
dkim-adsp=pass; dkim-atps=neutral
X-Virus-Scanned: Debian amavisd-new at nospam.nichework.com
X-Spam-Flag: NO
X-Spam-Score: -2.412
X-Spam-Level:
X-Spam-Status: No, score=-2.412 tagged_above=-100 required=3 WHITELISTED
tests=[AWL=-0.962, BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1,
HEADER_FROM_DIFFERENT_DOMAINS=0.25, HTML_MESSAGE=0.001,
RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001,
SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Received: from nospam.nichework.com ([127.0.0.1])
by localhost (nospam.nichework.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id my1bPJSAkehL for <mah@nichework.com>;
Sun, 19 Jul 2020 11:08:24 -0400 (EDT)
Received: from mail-vs1-f53.google.com (mail-vs1-f53.google.com [209.85.217.53])
(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
(No client certificate requested)
by nospam.nichework.com (Postfix) with ESMTPS id EF159B003E
for <mah@nichework.com>; Sun, 19 Jul 2020 11:08:21 -0400 (EDT)
Authentication-Results: nospam.nichework.com; dkim=pass
reason="2048-bit key; insecure key"
header.d=nichework.com header.i=@nichework.com header.b=H9R3mrfB;
dkim-adsp=pass; dkim-atps=neutral
Received: by mail-vs1-f53.google.com with SMTP id p25so7239494vsg.4
for <mah@nichework.com>; Sun, 19 Jul 2020 08:08:30 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20161025;
h=x-gm-message-state:delivered-to:dkim-filter:dkim-signature:date
:from:to:message-id:subject:mime-version:thread-index:thread-topic;
bh=mNAZSKoO+4xPTm/w2nyXbeJu9gCdvGnUdQ3qDTO46fo=;
b=DB/7MJiI43RZyjs8AneUUsyddP6oihnht/edRxJAYub9CFH6EgoE+ByByKP4AnyooH
4vhWWzpwOVFGhUK7YyFCIoGXHCdk6swbzAFiqofIAwnLmC+4shflTIe593INQ5qLY3SZ
Z58En7i75EP+WxhJ5mYkfyKvFXuTu9ECTrMnDk1eylJnT331HkolEVf+1ZgJX2GNSF+f
0EYdVd4Jw7UcNVdUbWjrdieHGPf7zt8sgnlglqaHg8dnuNado9plzKKfway7JfWQ+FRZ
/u6R1e78kVPhWqn4/fMYDLS1Ba76w8qoCLE3CgGh5MJlali7wIhL0Vi/C1XbPkVFive/
Lzwg==
X-Gm-Message-State: AOAM533GpwpBU+vuvMMY2u2uoCa6o2C1CcXAxmwEve5NQCka//htxxxm
NtH3a74V9BFz41srgOG9pE/GS3wIpBG/KLU/jPhtJpjr2Zjjb1o=
X-Received: by 2002:a67:f9cf:: with SMTP id c15mr13822781vsq.185.1595171309877;
Sun, 19 Jul 2020 08:08:29 -0700 (PDT)
X-Forwarded-To: mah@nichework.com
X-Forwarded-For: hexmode@gmail.com mah@nichework.com
Delivered-To: hexmode@gmail.com
Received: by 2002:a67:3252:0:0:0:0:0 with SMTP id y79csp1224907vsy;
Sun, 19 Jul 2020 08:08:28 -0700 (PDT)
X-Google-Smtp-Source: ABdhPJxQUBVl+Br0GABhL3Ltj8ih8lFN2EVkbHefGkR60DEJrPVuXOw7qeaTJu18DT4yoz9FTtGf
X-Received: by 2002:a17:902:6544:: with SMTP id d4mr14973154pln.138.1595171308129;
Sun, 19 Jul 2020 08:08:28 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1595171308; cv=none;
d=google.com; s=arc-20160816;
b=uyykWk9YKAeX2kOqNUMtxSt4/jYoYO6GD33f5w8vjXJ5NmN582J0+NojdabrNnOc+0
PfbtCBdUXt4g1AFiSf2H6zCbP3zYoFUm2oxbhTaCeEbX9+BopemIrcBQL6utB/gLPr+O
aYPAFSOj/DUK6J10EL6IFiVtHUzg527MfYIUOKETzRbRlSsbGjJ012LdUlU4ed5A2UOp
hrQ4CyRNLundIgPSJK6MO2/9mXbJukyVy6JiZr/uEmTvFgrUpq6I8tMRfxn8in/W22Pf
7NRGWXPanlcXkUuB+s7hO+aabU3uVVjcyTOqMaEYghNGOtFa5X5JqGNt9jvgouaiXS7l
kHvA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;
h=thread-topic:thread-index:mime-version:subject:message-id:to:from
:date:dkim-signature:dkim-filter;
bh=mNAZSKoO+4xPTm/w2nyXbeJu9gCdvGnUdQ3qDTO46fo=;
b=IUFw5nP/MY4Rx+MxLxoESf0i/nrZSNgrkJbEuU7TzPbJWAy1hTkcYkq9Do5bxEnG6I
190exU5YROD82pFetp3WV6ufK5vq0eqHmchs4JCXRLcxdhaRH0t9ExMVIz0/yrMzwMr+
iRxMWIQvdVad/B54UpU+GS/gk/Iut6j+TZ3sz3DpXZWSo39m6m7OgbmLSRfUT6XFOTt0
Q+1NTp2FDTiTwRb4eZkHTBcSRdxauJnqLYQ+PIzmM6iCs2VjrjKuybaPRKud7ONV2okQ
cnEucrOWTISOY0U2ifvuV+OvV6an2r+f/4x1+syiZHQNfGHuluIZojd48JGcnxvxIAge
7lvQ==
ARC-Authentication-Results: i=1; mx.google.com;
dkim=pass header.i=@nichework.com header.s=897144A4-59D1-11EA-885D-1509A2A44C35 header.b=H9R3mrfB;
spf=pass (google.com: domain of mah@nichework.com designates 206.71.169.33 as permitted sender) smtp.mailfrom=mah@nichework.com;
dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nichework.com
Received: from nospam.nichework.com (nospam.nichework.com. [206.71.169.33])
by mx.google.com with ESMTPS id p30si4468652pgd.443.2020.07.19.08.08.27
for <hexmode@gmail.com>
(version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
Sun, 19 Jul 2020 08:08:27 -0700 (PDT)
Received-SPF: pass (google.com: domain of mah@nichework.com designates 206.71.169.33 as permitted sender) client-ip=206.71.169.33;
Received: from localhost (localhost.localdmain [127.0.0.1])
by nospam.nichework.com (Postfix) with ESMTP id A50B5B0040
for <hexmode@gmail.com>; Sun, 19 Jul 2020 11:08:16 -0400 (EDT)
X-Virus-Scanned: Debian amavisd-new at nospam.nichework.com
Received: from nospam.nichework.com ([127.0.0.1])
by localhost (nospam.nichework.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id BwgfRPhwc3Pl for <hexmode@gmail.com>;
Sun, 19 Jul 2020 11:08:06 -0400 (EDT)
Received: from mail.nichework.com (mail.nichework.com [108.161.151.158])
(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))
(No client certificate requested)
by nospam.nichework.com (Postfix) with ESMTPS id CAE0AB003E
for <hexmode@gmail.com>; Sun, 19 Jul 2020 11:08:05 -0400 (EDT)
Received: from mail.nichework.com (localhost.localdomain [127.0.0.1])
by mail.nichework.com (Postfix) with ESMTPS id 5AB114E1E55
for <hexmode@gmail.com>; Sun, 19 Jul 2020 08:08:15 -0700 (PDT)
Received: from localhost (localhost.localdomain [127.0.0.1])
by mail.nichework.com (Postfix) with ESMTP id 40B2E4E1EBD
for <hexmode@gmail.com>; Sun, 19 Jul 2020 08:08:15 -0700 (PDT)
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.nichework.com 40B2E4E1EBD
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nichework.com;
s=897144A4-59D1-11EA-885D-1509A2A44C35; t=1595171295;
bh=mNAZSKoO+4xPTm/w2nyXbeJu9gCdvGnUdQ3qDTO46fo=;
h=Date:From:To:Message-ID:MIME-Version;
b=H9R3mrfBGToFObiBElG3KyjFN3IaFj0c/TN+X/C+qtcIMDujVEWDcwz6R96x2Yt+o
+4PqmkIjHTa0e4iZk2jsSasmjXDKinLM73HlZxkK/Mp/kzXRuPd+g5hriZa+II/8Rl
LUqG9qU4KRgrKLZiy/1oSJuxps/UvMtL7+i6Tt8FDMWePCK4gZyxsNsM5MA6FVVGOP
Z7kP6stj/ChBOx7EBUSujdOsb3GHnfxfWSNSGd1ZDpCfI/YyLBcI8SG/fJI+8GWbrD
45gTeszwcrnQCI6zwAmcrC1xBWF9eMW64AGqloPxpnEsLZPnyoA6/IkCeAWzEg+viV
tFpRF2cGNSJew==
X-Virus-Scanned: amavisd-new at mail.nichework.com
Received: from mail.nichework.com ([127.0.0.1])
by localhost (mail.nichework.com [127.0.0.1]) (amavisd-new, port 10026)
with ESMTP id 2m-IIWcdJmFV for <hexmode@gmail.com>;
Sun, 19 Jul 2020 08:08:15 -0700 (PDT)
Received: from mail.nichework.com (localhost.localdomain [127.0.0.1])
by mail.nichework.com (Postfix) with ESMTP id 264F44E1E55
for <hexmode@gmail.com>; Sun, 19 Jul 2020 08:08:15 -0700 (PDT)
Date: Sun, 19 Jul 2020 08:08:15 -0700 (PDT)
From: "Mark A. Hershberger" <mah@nichework.com>
To: Mark Hershberger <hexmode@gmail.com>
Message-ID: <101623891.583645.1595171295081.JavaMail.zimbra@nichework.com>
Subject: appointment every weekday, start jul 24, 2020, end aug 24, 2020
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="=_b2cb3108-dd0d-4a40-b1ff-933a0a1aaa2c"
X-Originating-IP: [209.253.11.94]
X-Mailer: Zimbra 8.7.11_GA_1854 (ZimbraWebClient - FF79 (Linux)/8.7.11_GA_1854)
Thread-Index: +E9s3FawcPa4H3Zk1lbZTAY4aDau4Q==
Thread-Topic: appointment every weekday, start jul 24, 2020, end aug 24, 2020
--=_b2cb3108-dd0d-4a40-b1ff-933a0a1aaa2c
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
The following is a new meeting request:
Subject: appointment every weekday, start jul 24, 2020, end aug 24, 2020
Organizer: "Mark A. Hershberger" <mah@nichework.com>
Time: 9:00:00 AM - 9:30:00 AM GMT -05:00 US/Canada Eastern
Recurrence : Every weekday. End by Aug 24, 2020. Effective Jul 24, 2020
Invitees: hexmode@gmail.com
*~*~*~*~*~*~*~*~*~*
test
--=_b2cb3108-dd0d-4a40-b1ff-933a0a1aaa2c
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 7bit
<html><body id='htmlmode'><h3>The following is a new meeting request:</h3>
<p>
<table border='0'>
<tr><th align=left>Subject:</th><td>appointment every weekday, start jul 24, 2020, end aug 24, 2020 </td></tr>
<tr><th align=left>Organizer:</th><td>"Mark A. Hershberger" <mah@nichework.com> </td></tr>
</table>
<p>
<table border='0'>
<tr><th align=left>Time:</th><td>9:00:00 AM - 9:30:00 AM GMT -05:00 US/Canada Eastern
</td></tr><tr><th align=left>Recurrence</th><td>: Every weekday. End by Aug 24, 2020. Effective Jul 24, 2020</td></tr>
</table>
<p>
<table border='0'>
<tr><th align=left>Invitees:</th><td>hexmode@gmail.com </td></tr>
</table>
<div>*~*~*~*~*~*~*~*~*~*</div><br><div style="font-family: arial, helvetica, sans-serif; font-size: 12pt; color: #000000"><div>test<br data-mce-bogus="1"></div></div></body></html>
--=_b2cb3108-dd0d-4a40-b1ff-933a0a1aaa2c
Content-Type: text/calendar; charset=utf-8; method=REQUEST; name=meeting.ics
Content-Transfer-Encoding: 7bit
BEGIN:VCALENDAR
PRODID:Zimbra-Calendar-Provider
VERSION:2.0
METHOD:REQUEST
BEGIN:VTIMEZONE
TZID:America/New_York
BEGIN:STANDARD
DTSTART:16010101T020000
TZOFFSETTO:-0500
TZOFFSETFROM:-0400
RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=11;BYDAY=1SU
TZNAME:EST
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:16010101T020000
TZOFFSETTO:-0400
TZOFFSETFROM:-0500
RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=3;BYDAY=2SU
TZNAME:EDT
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
UID:903a5415-9067-4f63-b499-1b6205f49c88
RRULE:FREQ=DAILY;UNTIL=20200825T035959Z;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR
SUMMARY:appointment every weekday\, start jul 24\, 2020\, end aug 24\, 2020
ATTENDEE;CN=Mark Hershberger;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP
=TRUE:mailto:hexmode@gmail.com
ORGANIZER;CN=Mark A. Hershberger:mailto:mah@nichework.com
DTSTART;TZID="America/New_York":20200724T090000
DTEND;TZID="America/New_York":20200724T093000
STATUS:CONFIRMED
CLASS:PUBLIC
X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
TRANSP:OPAQUE
LAST-MODIFIED:20200719T150815Z
DTSTAMP:20200719T150815Z
SEQUENCE:0
DESCRIPTION:The following is a new meeting request:\n\nSubject: appointment
every weekday\, start jul 24\, 2020\, end aug 24\, 2020 \nOrganizer: "Mark A
. Hershberger" <mah@nichework.com> \n\nTime: 9:00:00 AM - 9:30:00 AM GMT -05
:00 US/Canada Eastern\n Recurrence : Every weekday. End by Aug 24\, 2020.
Effective Jul 24\, 2020\n\nInvitees: hexmode@gmail.com \n\n\n*~*~*~*~*~*~*
~*~*~*\n\ntest \n
X-ALT-DESC;FMTTYPE=text/html:<html><body id='htmlmode'><h3>The following is
a new meeting request:</h3>\n\n<p>\n<table border='0'>\n<tr><th align=left>S
ubject:</th><td>appointment every weekday\, start jul 24\, 2020\, end aug 24
\, 2020 </td></tr>\n<tr><th align=left>Organizer:</th><td>"Mark A. Hershberg
er" <\;mah@nichework.com>\; </td></tr>\n</table>\n<p>\n<table border='0'
>\n<tr><th align=left>Time:</th><td>9:00:00 AM - 9:30:00 AM GMT -05:00 US/Ca
nada Eastern\n </td></tr><tr><th align=left>Recurrence</th><td>: Every weekd
ay. End by Aug 24\, 2020. Effective Jul 24\, 2020</td></tr>\n</table>\n<
p>\n<table border='0'>\n<tr><th align=left>Invitees:</th><td>hexmode@gmail.c
om </td></tr>\n</table>\n<div>*~*~*~*~*~*~*~*~*~*</div><br><div style="font-
family: arial\, helvetica\, sans-serif\; font-size: 12pt\; color: #000000"><
div>test<br data-mce-bogus="1"></div></div></body></html>
BEGIN:VALARM
ACTION:DISPLAY
TRIGGER;RELATED=START:-PT5M
DESCRIPTION:Reminder
END:VALARM
END:VEVENT
END:VCALENDAR
--=_b2cb3108-dd0d-4a40-b1ff-933a0a1aaa2c--
------=_Part_584222_1719359544.1595172990988--
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#39782: 28.0.50; gnus-icalendar does not understand multiple repeating days
2020-07-19 16:03 ` Mark A. Hershberger
@ 2020-07-20 9:56 ` Lars Ingebrigtsen
2020-07-20 10:16 ` Jan Tatarik
2020-07-31 11:39 ` Jan Tatarik
0 siblings, 2 replies; 13+ messages in thread
From: Lars Ingebrigtsen @ 2020-07-20 9:56 UTC (permalink / raw)
To: Mark A. Hershberger; +Cc: 39782, Jan Tatarik
"Mark A. Hershberger" <mah@everybody.org> writes:
> I'm attaching an appointment I sent my gmail address just now and the
> resulting org entry (in the tmp.org file) that the [Export to Org] button
> produced using the gnus-icalendar-sync-event-to-org callback.
OK; Cc-ing Jan on this -- perhaps he has some input here.
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#39782: 28.0.50; gnus-icalendar does not understand multiple repeating days
2020-07-20 9:56 ` Lars Ingebrigtsen
@ 2020-07-20 10:16 ` Jan Tatarik
2020-07-31 11:39 ` Jan Tatarik
1 sibling, 0 replies; 13+ messages in thread
From: Jan Tatarik @ 2020-07-20 10:16 UTC (permalink / raw)
To: Lars Ingebrigtsen; +Cc: Mark A. Hershberger, 39782
On Mon, Jul 20 2020, Lars Ingebrigtsen wrote:
> "Mark A. Hershberger" <mah@everybody.org> writes:
>> I'm attaching an appointment I sent my gmail address just now and the
>> resulting org entry (in the tmp.org file) that the [Export to Org] button
>> produced using the gnus-icalendar-sync-event-to-org callback.
> OK; Cc-ing Jan on this -- perhaps he has some input here.
A quick look at gnus-icalendar.el tells me we ignore BYDAY
entirely. I'll see how easy is this to fix.
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#39782: 28.0.50; gnus-icalendar does not understand multiple repeating days
2020-07-20 9:56 ` Lars Ingebrigtsen
2020-07-20 10:16 ` Jan Tatarik
@ 2020-07-31 11:39 ` Jan Tatarik
2020-08-21 16:03 ` Mark A. Hershberger
1 sibling, 1 reply; 13+ messages in thread
From: Jan Tatarik @ 2020-07-31 11:39 UTC (permalink / raw)
To: Lars Ingebrigtsen; +Cc: Mark A. Hershberger, 39782
[-- Attachment #1: Type: text/plain, Size: 78 bytes --]
Here's a quick-and-dirty fix (am on vacation now). See if it works for
you.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: gnus-icalendar with simple BYDAYS support --]
[-- Type: text/x-diff, Size: 13145 bytes --]
diff --git a/lisp/gnus/gnus-icalendar.el b/lisp/gnus/gnus-icalendar.el
index 305e17fd8f..2860c40581 100644
--- a/lisp/gnus/gnus-icalendar.el
+++ b/lisp/gnus/gnus-icalendar.el
@@ -138,6 +138,22 @@ gnus-icalendar-event-reply
(or (match-string 1 rrule)
default-interval)))
+(cl-defmethod gnus-icalendar-event:recurring-days ((event gnus-icalendar-event))
+ "Return, when available, the week day numbers on which the EVENT recurs."
+ (let ((rrule (gnus-icalendar-event:recur event))
+ (weekday-map '(("SU" . 0)
+ ("MO" . 1)
+ ("TU" . 2)
+ ("WE" . 3)
+ ("TH" . 4)
+ ("FR" . 5)
+ ("SA" . 6))))
+ (when (string-match "BYDAY=\\([^;]+\\)" rrule)
+ (let ((bydays (split-string (match-string 1 rrule) ",")))
+ (seq-map
+ (lambda (x) (cdr (assoc x weekday-map)))
+ (seq-filter (lambda (x) (string-match "^[A-Z]\\{2\\}$" x)) bydays))))))
+
(cl-defmethod gnus-icalendar-event:start ((event gnus-icalendar-event))
(format-time-string "%Y-%m-%d %H:%M" (gnus-icalendar-event:start-time event)))
@@ -400,23 +416,28 @@ gnus-icalendar-org-enabled-p
(when org-freq
(format "+%s%s" (gnus-icalendar-event:recurring-interval event) org-freq)))))
-(cl-defmethod gnus-icalendar-event:org-timestamp ((event gnus-icalendar-event))
- "Build `org-mode' timestamp from EVENT start/end dates and recurrence info."
- (let* ((start (gnus-icalendar-event:start-time event))
- (end (gnus-icalendar-event:end-time event))
- (start-date (format-time-string "%Y-%m-%d" start))
+(defun find-day (start-date end-date day)
+ (let ((time-1-day 86400))
+ (if (= (decoded-time-weekday (decode-time start-date))
+ day)
+ (list start-date end-date)
+ (find-day (time-add start-date time-1-day)
+ (time-add end-date time-1-day)
+ day))))
+
+(defun gnus-icalendar-event--org-timestamp (start end org-repeat)
+ (let* ((start-date (format-time-string "%Y-%m-%d" start))
(start-time (format-time-string "%H:%M" start))
(start-at-midnight (string= start-time "00:00"))
(end-date (format-time-string "%Y-%m-%d" end))
(end-time (format-time-string "%H:%M" end))
(end-at-midnight (string= end-time "00:00"))
(start-end-date-diff
- (time-to-number-of-days (time-subtract
- (org-time-string-to-time end-date)
- (org-time-string-to-time start-date))))
- (org-repeat (gnus-icalendar-event:org-repeat event))
+ (time-to-number-of-days (time-subtract
+ (org-time-string-to-time end-date)
+ (org-time-string-to-time start-date))))
(repeat (if org-repeat (concat " " org-repeat) ""))
- (time-1-day 86400))
+ (time-1-day 86400))
;; NOTE: special care is needed with appointments ending at midnight
;; (typically all-day events): the end time has to be changed to 23:59 to
@@ -445,7 +466,25 @@ gnus-icalendar-org-enabled-p
;; A .:. - A .:. -> A .:.-.:.
;; A .:. - B .:.
((zerop start-end-date-diff) (format "<%s %s-%s%s>" start-date start-time end-time repeat))
- (t (format "<%s %s>--<%s %s>" start-date start-time end-date end-time)))))
+ (t (format "<%s %s>--<%s %s>" start-date start-time end-date end-time))))
+ )
+
+(cl-defmethod gnus-icalendar-event:org-timestamp ((event gnus-icalendar-event))
+ "Build `org-mode' timestamp from EVENT start/end dates and recurrence info."
+ ;; if org-repeat +1d or +1w and byday: generate one timestamp per
+ ;; byday, starting at start-date. Change +1d to +7d.
+ (let ((start (gnus-icalendar-event:start-time event))
+ (end (gnus-icalendar-event:end-time event))
+ (org-repeat (gnus-icalendar-event:org-repeat event))
+ (recurring-days (gnus-icalendar-event:recurring-days event)))
+ (if (and (or (string= org-repeat "+1d")
+ (string= org-repeat "+1w"))
+ recurring-days)
+ (let ((repeat "+1w")
+ (dates (seq-sort-by 'car 'time-less-p (seq-map (lambda (x) (find-day start end x)) recurring-days))))
+ (mapconcat (lambda (x) (gnus-icalendar-event--org-timestamp (car x) (cadr x) repeat)) dates "\n"))
+ (gnus-icalendar-event--org-timestamp start end org-repeat)))
+)
(defun gnus-icalendar--format-summary-line (summary &optional location)
(if location
diff --git a/test/lisp/gnus/gnus-icalendar-tests.el b/test/lisp/gnus/gnus-icalendar-tests.el
new file mode 100644
index 0000000000..ca686da72c
--- /dev/null
+++ b/test/lisp/gnus/gnus-icalendar-tests.el
@@ -0,0 +1,229 @@
+;;; gnus-icalendar-tests.el --- tests -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2020 Jan Tatarik
+
+;; Author: Jan Tatarik <jtatarik@liveintent.com>
+;; Keywords:
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;;
+
+;;; Code:
+
+(require 'ert)
+(require 'gnus-icalendar)
+
+
+(defun gnus-icalendar-tests--get-ical-event (ical-string &optional participant)
+ "Return gnus-icalendar event for ICAL-STRING."
+ (let (event)
+ (with-temp-buffer
+ (insert ical-string)
+ (setq event (gnus-icalendar-event-from-buffer (buffer-name) participant)))
+ event))
+
+(defun icalendar-tests--get-ical-event (ical-string)
+ "Return iCalendar event for ICAL-STRING."
+ (save-excursion
+ (with-temp-buffer
+ (insert ical-string)
+ (goto-char (point-min))
+ (car (icalendar--read-element nil nil)))))
+
+(ert-deftest gnus-icalendar-parse ()
+ "test"
+ (let ((event (gnus-icalendar-tests--get-ical-event "
+BEGIN:VCALENDAR
+PRODID:-//Google Inc//Google Calendar 70.9054//EN
+VERSION:2.0
+CALSCALE:GREGORIAN
+METHOD:REQUEST
+BEGIN:VTIMEZONE
+TZID:America/New_York
+X-LIC-LOCATION:America/New_York
+BEGIN:DAYLIGHT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+TZNAME:EDT
+DTSTART:19700308T020000
+RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
+END:DAYLIGHT
+BEGIN:STANDARD
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+TZNAME:EST
+DTSTART:19701101T020000
+RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTART;TZID=America/New_York:20201208T090000
+DTEND;TZID=America/New_York:20201208T100000
+DTSTAMP:20200728T182853Z
+ORGANIZER;CN=Company Events:mailto:liveintent.com_3bm6fh805bme9uoeliqcle1sa
+ g@group.calendar.google.com
+UID:iipdt88slddpeu7hheuu09sfmd@google.com
+X-MICROSOFT-CDO-OWNERAPPTID:-362490173
+RECURRENCE-ID;TZID=America/New_York:20201208T091500
+CREATED:20200309T134939Z
+DESCRIPTION:In this meeting\, we will cover topics from product and enginee
+ ring presentations and demos to new hire announcements to watching the late
+LAST-MODIFIED:20200728T182852Z
+LOCATION:New York-22-Town Hall Space (250) [Chrome Box]
+SEQUENCE:4
+STATUS:CONFIRMED
+SUMMARY:Townhall | All Company Meeting
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR
+")))
+
+ (should (eq (eieio-object-class event) 'gnus-icalendar-event-request))
+ (should (not (gnus-icalendar-event:recurring-p event)))
+ (should (string= (gnus-icalendar-event:start event) "2020-12-08 15:00"))
+ (with-slots (organizer summary description location end-time uid rsvp participation-type) event
+ (should (string= organizer "liveintent.com_3bm6fh805bme9uoeliqcle1sag@group.calendar.google.com"))
+ (should (string= summary "Townhall | All Company Meeting"))
+ (should (string= description "In this meeting\, we will cover topics from product and engineering presentations and demos to new hire announcements to watching the late"))
+ (should (string= location "New York-22-Town Hall Space (250) [Chrome Box]"))
+ (should (string= (format-time-string "%Y-%m-%d %H:%M" end-time) "2020-12-08 16:00"))
+ (should (string= uid "iipdt88slddpeu7hheuu09sfmd@google.com"))
+ (should (not rsvp))
+(should (eq participation-type 'non-participant)))))
+
+(ert-deftest gnus-icalendary-byday ()
+ ""
+ (let ((event (gnus-icalendar-tests--get-ical-event "
+BEGIN:VCALENDAR
+PRODID:Zimbra-Calendar-Provider
+VERSION:2.0
+METHOD:REQUEST
+BEGIN:VTIMEZONE
+TZID:America/New_York
+BEGIN:STANDARD
+DTSTART:16010101T020000
+TZOFFSETTO:-0500
+TZOFFSETFROM:-0400
+RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=11;BYDAY=1SU
+TZNAME:EST
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:16010101T020000
+TZOFFSETTO:-0400
+TZOFFSETFROM:-0500
+RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=3;BYDAY=2SU
+TZNAME:EDT
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:903a5415-9067-4f63-b499-1b6205f49c88
+RRULE:FREQ=DAILY;UNTIL=20200825T035959Z;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR
+SUMMARY:appointment every weekday\, start jul 24\, 2020\, end aug 24\, 2020
+ATTENDEE;CN=Mark Hershberger;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP
+ =TRUE:mailto:hexmode <at> gmail.com
+ORGANIZER;CN=Mark A. Hershberger:mailto:mah <at> nichework.com
+DTSTART;TZID=\"America/New_York\":20200724T090000
+DTEND;TZID=\"America/New_York\":20200724T093000
+STATUS:CONFIRMED
+CLASS:PUBLIC
+X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
+TRANSP:OPAQUE
+LAST-MODIFIED:20200719T150815Z
+DTSTAMP:20200719T150815Z
+SEQUENCE:0
+DESCRIPTION:The following is a new meeting request:
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER;RELATED=START:-PT5M
+DESCRIPTION:Reminder
+END:VALARM
+END:VEVENT
+END:VCALENDAR" (list "Mark Hershberger"))))
+
+ (should (eq (eieio-object-class event) 'gnus-icalendar-event-request))
+ (should (gnus-icalendar-event:recurring-p event))
+ (should (string= (gnus-icalendar-event:recurring-interval event) "1"))
+ (should (string= (gnus-icalendar-event:start event) "2020-07-24 15:00"))
+ (with-slots (organizer summary description location end-time uid rsvp participation-type) event
+ (should (string= organizer "mah <at> nichework.com"))
+ (should (string= summary "appointment every weekday\, start jul 24\, 2020\, end aug 24\, 2020"))
+ (should (string= description "The following is a new meeting request:"))
+ (should (null location))
+ (should (string= (format-time-string "%Y-%m-%d %H:%M" end-time) "2020-07-24 15:30"))
+ (should (string= uid "903a5415-9067-4f63-b499-1b6205f49c88"))
+ (should rsvp)
+ (should (eq participation-type 'required)))
+ (should (equal (gnus-icalendar-event:recurring-days event) '(1 2 3 4 5)))
+ (should (string= (gnus-icalendar-event:org-timestamp event) "<2020-07-24 15:00-15:30 +1w>
+<2020-07-27 15:00-15:30 +1w>
+<2020-07-28 15:00-15:30 +1w>
+<2020-07-29 15:00-15:30 +1w>
+<2020-07-30 15:00-15:30 +1w>"))
+ ))
+
+
+;; (VCALENDAR nil
+;; ((PRODID nil "Zimbra-Calendar-Provider")
+;; (VERSION nil "2.0")
+;; (METHOD nil "REQUEST"))
+;; ((VTIMEZONE nil
+;; ((TZID nil "America/New_York"))
+;; ((STANDARD nil
+;; ((DTSTART nil "16010101T020000")
+;; (TZOFFSETTO nil "-0500")
+;; (TZOFFSETFROM nil "-0400")
+;; (RRULE nil "FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=11;BYDAY=1SU")
+;; (TZNAME nil "EST"))
+;; nil)
+;; (DAYLIGHT nil
+;; ((DTSTART nil "16010101T020000")
+;; (TZOFFSETTO nil "-0400")
+;; (TZOFFSETFROM nil "-0500")
+;; (RRULE nil "FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=3;BYDAY=2SU")
+;; (TZNAME nil "EDT"))
+;; nil)))
+;; (VEVENT nil
+;; ((UID nil "903a5415-9067-4f63-b499-1b6205f49c88")
+;; (RRULE nil "FREQ=DAILY;UNTIL=20200825T035959Z;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR")
+;; (SUMMARY nil "appointment every weekday, start jul 24, 2020, end aug 24, 2020")
+;; (ATTENDEE
+;; (CN "Mark Hershberger" ROLE "REQ-PARTICIPANT" PARTSTAT "NEEDS-ACTION" CN "Mark A. Hershberger")
+;; "mailto:mah <at> nichework.com")
+;; (DTSTART
+;; (TZID "America/New_York")
+;; "20200724T090000")
+;; (DTEND
+;; (TZID "America/New_York")
+;; "20200724T093000")
+;; (STATUS nil "CONFIRMED")
+;; (CLASS nil "PUBLIC")
+;; (X-MICROSOFT-CDO-INTENDEDSTATUS nil "BUSY")
+;; (TRANSP nil "OPAQUE")
+;; (LAST-MODIFIED nil "20200719T150815Z")
+;; (DTSTAMP nil "20200719T150815Z")
+;; (SEQUENCE nil "0")
+;; (DESCRIPTION nil "The following is a new meeting request:"))
+;; ((VALARM nil
+;; ((ACTION nil "DISPLAY")
+;; (TRIGGER
+;; (RELATED "START")
+;; "-PT5M")
+;; (DESCRIPTION nil "Reminder"))
+;; nil)))))
+
+(provide 'gnus-icalendar-tests)
+;;; gnus-icalendar-tests.el ends here
^ permalink raw reply related [flat|nested] 13+ messages in thread
* bug#39782: 28.0.50; gnus-icalendar does not understand multiple repeating days
2020-07-31 11:39 ` Jan Tatarik
@ 2020-08-21 16:03 ` Mark A. Hershberger
2020-08-22 13:39 ` Lars Ingebrigtsen
0 siblings, 1 reply; 13+ messages in thread
From: Mark A. Hershberger @ 2020-08-21 16:03 UTC (permalink / raw)
To: Jan Tatarik; +Cc: Lars Ingebrigtsen, 39782
Jan Tatarik <jan.tatarik@gmail.com> writes:
> Here's a quick-and-dirty fix (am on vacation now). See if it works for
> you.
Looks like it works.
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#39782: 28.0.50; gnus-icalendar does not understand multiple repeating days
2020-08-21 16:03 ` Mark A. Hershberger
@ 2020-08-22 13:39 ` Lars Ingebrigtsen
2020-08-22 21:25 ` Glenn Morris
0 siblings, 1 reply; 13+ messages in thread
From: Lars Ingebrigtsen @ 2020-08-22 13:39 UTC (permalink / raw)
To: Mark A. Hershberger; +Cc: 39782, Jan Tatarik
"Mark A. Hershberger" <mah@everybody.org> writes:
> Jan Tatarik <jan.tatarik@gmail.com> writes:
>
>> Here's a quick-and-dirty fix (am on vacation now). See if it works for
>> you.
>
> Looks like it works.
Thanks for checking. I've now applied Jan's patch (after renaming some
functions and folding some too-long lines).
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#39782: 28.0.50; gnus-icalendar does not understand multiple repeating days
2020-08-22 13:39 ` Lars Ingebrigtsen
@ 2020-08-22 21:25 ` Glenn Morris
2020-08-22 21:35 ` Lars Ingebrigtsen
0 siblings, 1 reply; 13+ messages in thread
From: Glenn Morris @ 2020-08-22 21:25 UTC (permalink / raw)
To: Lars Ingebrigtsen; +Cc: Mark A. Hershberger, 39782, Jan Tatarik
These new tests fail on hydra.nixos.org, and also locally for me on rhel8.
(Guess: TZ related?)
Ref https://hydra.nixos.org/build/125623557
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#39782: 28.0.50; gnus-icalendar does not understand multiple repeating days
2020-08-22 21:25 ` Glenn Morris
@ 2020-08-22 21:35 ` Lars Ingebrigtsen
0 siblings, 0 replies; 13+ messages in thread
From: Lars Ingebrigtsen @ 2020-08-22 21:35 UTC (permalink / raw)
To: Glenn Morris; +Cc: Mark A. Hershberger, 39782, Jan Tatarik
Glenn Morris <rgm@gnu.org> writes:
> These new tests fail on hydra.nixos.org, and also locally for me on rhel8.
> (Guess: TZ related?)
Indeed.
I've now bound the TZ so that the tests should work everywhere.
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#39782: 28.0.50; gnus-icalendar does not understand multiple repeating days
2020-02-25 13:05 bug#39782: 28.0.50; gnus-icalendar does not understand multiple repeating days Mark A. Hershberger
2020-07-19 13:58 ` Lars Ingebrigtsen
@ 2020-08-24 19:11 ` Mattias Engdegård
2020-08-26 8:54 ` Mattias Engdegård
1 sibling, 1 reply; 13+ messages in thread
From: Mattias Engdegård @ 2020-08-24 19:11 UTC (permalink / raw)
To: Jan Tatarik; +Cc: 39782, Lars Ingebrigtsen, Mark A. Hershberger
gnus-icalendar-tests.el contains backslash-comma sequences in string literals:
DESCRIPTION:In this meeting\, we will cover topics from product and enginee
and so on. The backslashes need to be doubled in order to be effective. (Presumably those in string comparisons should be removed.)
However, the tests pass in their present form. Does that mean that the iCal parser is not following RFC-5545 properly? It does mention that commas must be escaped so that they are not treated as separators (3.3.11), but I haven't read that RFC in its entirety.
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#39782: 28.0.50; gnus-icalendar does not understand multiple repeating days
2020-08-24 19:11 ` Mattias Engdegård
@ 2020-08-26 8:54 ` Mattias Engdegård
0 siblings, 0 replies; 13+ messages in thread
From: Mattias Engdegård @ 2020-08-26 8:54 UTC (permalink / raw)
To: Jan Tatarik; +Cc: 39782, Lars Ingebrigtsen, Mark A. Hershberger
There probably isn't a serious bug in the parser but at least the test should be right, so I pushed a small corrective patch to master.
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2020-08-26 8:54 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-02-25 13:05 bug#39782: 28.0.50; gnus-icalendar does not understand multiple repeating days Mark A. Hershberger
2020-07-19 13:58 ` Lars Ingebrigtsen
2020-07-19 15:36 ` Mark A. Hershberger
2020-07-19 16:03 ` Mark A. Hershberger
2020-07-20 9:56 ` Lars Ingebrigtsen
2020-07-20 10:16 ` Jan Tatarik
2020-07-31 11:39 ` Jan Tatarik
2020-08-21 16:03 ` Mark A. Hershberger
2020-08-22 13:39 ` Lars Ingebrigtsen
2020-08-22 21:25 ` Glenn Morris
2020-08-22 21:35 ` Lars Ingebrigtsen
2020-08-24 19:11 ` Mattias Engdegård
2020-08-26 8:54 ` Mattias Engdegård
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.