我们有以下要求。
1)我们需要生成一个具有重复模式的约会,并将其发送给与会者。 2)之后,我们需要更新,删除重复模式中的单个事件。 3)在某些情况下,我们可能还需要删除完整的定期约会。
通过删除,我们的意思是应在被邀请者的日历中将会议标记为已取消。
我们正在通过Web应用程序发送约会,并向电子邮件中的嵌入了.ICS文件的与会者发送电子邮件。我们正在使用Java Mail API生成电子邮件,并将.ICS文件嵌入为多部分消息,并保持MIME类型为text / calendar。
我们的受邀者使用的是Microsoft Outlook桌面客户端,Office 365 Web客户端,gmail。
我们能够发送具有重复模式的约会,并且能够更新会议的特定召开时间。
但是,我们在删除约会或单独的会议(特别是在Outlook Desktop Client中)时遇到了困难。当我们发送删除事件时,在被邀请者的邮箱中,该按钮将按钮显示为“从日历中删除”,但在用户日历中未将会议标记为“已取消”。在Gmail网络应用程序中,这同样正确地发生了。
我已经在下面显示的Outlook版本中对其进行了测试
Office 365 MSO(16.0.11601.20184)64位
我还测试了一个简单的测试案例,该案例使用下面的create.ics文件创建简单会议(作为邮件的一部分发送),然后尝试使用下面的delete.ics文件删除会议。
//create.ics
BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:Microsoft Exchange Server 2010
VERSION:2.0
BEGIN:VTIMEZONE
TZID:India Standard Time
BEGIN:STANDARD
DTSTART:16010101T000000
TZOFFSETFROM:+0530
TZOFFSETTO:+0530
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:16010101T000000
TZOFFSETFROM:+0530
TZOFFSETTO:+0530
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
ORGANIZER;CN=Test Sirion:MAILTO:xyz@abc.com
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Kapil Gupta:MAILTO:abc@xyz.com
DESCRIPTION;LANGUAGE=en-US:\n
UID:040000008200E00074C5B7101A82E00800000000908EB51F4E28D501000000000000000
01000000000ED265B41C38B479A5315D1D23383D4
SUMMARY;LANGUAGE=en-US:New Meeting
DTSTART;TZID=India Standard Time:20190622T080000
DTEND;TZID=India Standard Time:20190622T083000
CLASS:PUBLIC
PRIORITY:5
DTSTAMP:20190621T105648Z
TRANSP:OPAQUE
STATUS:CONFIRMED
SEQUENCE:0
LOCATION;LANGUAGE=en-US:
X-MICROSOFT-CDO-APPT-SEQUENCE:0
X-MICROSOFT-CDO-OWNERAPPTID:-2091554845
X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE
X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
X-MICROSOFT-CDO-ALLDAYEVENT:FALSE
X-MICROSOFT-CDO-IMPORTANCE:1
X-MICROSOFT-CDO-INSTTYPE:0
X-MICROSOFT-DONOTFORWARDMEETING:FALSE
X-MICROSOFT-DISALLOW-COUNTER:FALSE
X-MICROSOFT-LOCATIONS:[]
BEGIN:VALARM
DESCRIPTION:REMINDER
TRIGGER;RELATED=START:-PT15M
ACTION:DISPLAY
END:VALARM
END:VEVENT
END:VCALENDAR
//delete.ics
BEGIN:VCALENDAR
METHOD:CANCEL
PRODID:Microsoft Exchange Server 2010
VERSION:2.0
BEGIN:VTIMEZONE
TZID:India Standard Time
BEGIN:STANDARD
DTSTART:16010101T000000
TZOFFSETFROM:+0530
TZOFFSETTO:+0530
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:16010101T000000
TZOFFSETFROM:+0530
TZOFFSETTO:+0530
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
ORGANIZER;CN=Test Sirion:MAILTO:xyz@abc.com
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Kapil Gupta:MAILTO:abc@xyz.com
DESCRIPTION;LANGUAGE=en-US:\n
UID:040000008200E00074C5B7101A82E00800000000908EB51F4E28D501000000000000000
01000000000ED265B41C38B479A5315D1D23383D4
SUMMARY;LANGUAGE=en-US:Canceled: New Meeting
DTSTART;TZID=India Standard Time:20190622T080000
DTEND;TZID=India Standard Time:20190622T083000
CLASS:PUBLIC
PRIORITY:1
DTSTAMP:20190621T110026Z
TRANSP:TRANSPARENT
STATUS:CANCELLED
SEQUENCE:1
LOCATION;LANGUAGE=en-US:
X-MICROSOFT-CDO-APPT-SEQUENCE:1
X-MICROSOFT-CDO-OWNERAPPTID:-2091554845
X-MICROSOFT-CDO-BUSYSTATUS:FREE
X-MICROSOFT-CDO-INTENDEDSTATUS:FREE
X-MICROSOFT-CDO-ALLDAYEVENT:FALSE
X-MICROSOFT-CDO-IMPORTANCE:2
X-MICROSOFT-CDO-INSTTYPE:0
X-MICROSOFT-DONOTFORWARDMEETING:FALSE
X-MICROSOFT-DISALLOW-COUNTER:FALSE
END:VEVENT
END:VCALENDAR
delete.ics文件是否存在问题,请告知我们。
如果相关的话,我还将我们用来发送邮件的代码放在下面的github概要中。
https://gist.github.com/kapilgupta101292/92769d3e9f8e6444cb9dde5960473b1e
我已经按照下面的堆栈溢出链接中的建议通过添加X-WR-RELCALID进行了测试,但这也不起作用-
Delete calendar event using iCalendar file import (Outlook 2003 problem)?
请查看上面的ics文件,并让我们知道如何删除约会。 请让我们知道是否需要任何输入,我们需要快速解决此问题以交付我们的Web应用程序。