0

如何使用 Ical 为每个月的第一个星期三创建定期约会,请参阅下面的 ical 文件

BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 9.0 MIMEDIR//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH  
BEGIN:VEVENT
DTSTART:20150909T130000
DTSTAMP:20150909T053424Z
RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=WE;BYSETPOS=1
UID:77970@local
Location: Test
DESCRIPTION:Test
LAST-MODIFIED:20150909T053424Z
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY: - test service
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR

以下代码适用于 - 发生在每 1 个月的第一个星期日,从 2015 年 4 月 10 日到 2015 年 6 月 12 日,从上午 11:00 到下午 12:00。

BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 9.0 MIMEDIR//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH

BEGIN:VEVENT
DTSTART:20150910T110000
DTSTAMP:20150910T071744Z
RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=SU;BYSETPOS=1;UNTIL=20151210T120000
EXDATE:20151004T110000, 20151101T110000, 20151206T110000
UID:78106@local
Location:Test
DESCRIPTION:Test
LAST-MODIFIED:20150910T071744Z
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY: test service
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR

但是每周一的这段代码不起作用

BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 9.0 MIMEDIR//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH

BEGIN:VEVENT
DTSTART:20150910T080000
DTSTAMP:20150910T075935Z
RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=MO;BYSETPOS=1;UNTIL=20151210T090000
UID:78121@local
Location:Test
DESCRIPTION:Test
LAST-MODIFIED:20150910T075935Z
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY: test service
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
4

3 回答 3

0
BEGIN:VCALENDAR  
PRODID:-//Microsoft Corporation//Outlook 9.0 MIMEDIR//EN  
VERSION:2.0  
CALSCALE:GREGORIAN  
METHOD:PUBLISH  
  
BEGIN:VEVENT  
DTSTART:20150922T023000Z  
DTSTAMP:20150922T025844Z  
RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=TU;BYSETPOS=4;WKST=SU;UNTIL=20151222T033000Z  
UID:1785  
Location:Test  
DESCRIPTION:test  
LAST-MODIFIED:20150922T025844Z  
SEQUENCE:0  
STATUS:CONFIRMED  
SUMMARY:test   
TRANSP:OPAQUE  
END:VEVENT  
END:VCALENDAR  

下面的链接解释得很好..

https://www.techfolks.net/rrule-exdate-ical-recurring-event-appointment-example/

于 2015-09-22T10:06:00.293 回答
0

在 Outlook 中创建约会并将其保存为 ICS 文件。我得到了以下内容。Outlook 打开该 ICS 文件绝对没有问题。

BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 15.0 MIMEDIR//EN
VERSION:2.0
METHOD:PUBLISH
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VTIMEZONE
TZID:Eastern Standard Time
BEGIN:STANDARD
DTSTART:16011104T020000
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=11
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:16010311T020000
RRULE:FREQ=YEARLY;BYDAY=2SU;BYMONTH=3
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
CLASS:PUBLIC
CREATED:20150910T120559Z
DESCRIPTION:\n
DTEND;TZID="Eastern Standard Time":20151007T113000
DTSTAMP:20150910T120559Z
DTSTART;TZID="Eastern Standard Time":20151007T110000
LAST-MODIFIED:20150910T120559Z
PRIORITY:5
RRULE:FREQ=MONTHLY;BYDAY=WE;BYSETPOS=1
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:First Wednesday of Every Month
TRANSP:OPAQUE
UID:040000008200E00074C5B7101A82E00800000000F0DEF1869FEBD001000000000000000
    01000000050D17A24B21FB34F845623E567B81E99
X-ALT-DESC;FMTTYPE=text/html:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//E
    N">\n<HTML>\n<HEAD>\n<META NAME="Generator" CONTENT="MS Exchange Server ve
    rsion rmj.rmm.rup.rpr">\n<TITLE></TITLE>\n</HEAD>\n<BODY>\n<!-- Converted 
    from text/rtf format -->\n\n<P DIR=LTR><SPAN LANG="en-us"></SPAN></P>\n\n<
    /BODY>\n</HTML>
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
X-MICROSOFT-CDO-IMPORTANCE:1
X-MICROSOFT-DISALLOW-COUNTER:FALSE
X-MS-OLK-AUTOFILLLOCATION:TRUE
X-MS-OLK-CONFTYPE:0
BEGIN:VALARM
TRIGGER:-PT15M
ACTION:DISPLAY
DESCRIPTION:Reminder
END:VALARM
END:VEVENT
END:VCALENDAR
于 2015-09-10T12:07:51.110 回答
0

RFC5545 指定这DTSTART是您的第一个RRULE实例

DTSTART:20150909T130000

但 9 月 9 日是星期三而不是星期一。将您更改DTSTART为:

DTSTART:20150907T080000

允许 Outlook 打开文件。

DTSTART有关和的更多详细信息RRULERFC5545 事件

“VEVENT”的“DTSTART”属性指定事件的包含开始。对于重复事件,它还指定重复集中的第一个实例。

因此,虽然在理论上,这意味着无论规则如何,DTSTART都应该附加到出现列表中,Outlook 似乎要做的是检查DTSTARTRRULE 和 RRULE 之间的一致性,因此是你的问题。

于 2015-09-11T06:39:44.683 回答