【问题标题】:How can I create a recurring appointment for First Wednesday of Every Month using Ical如何使用 Ical 为每个月的第一个星期三创建定期约会
【发布时间】:2015-12-05 10:33:17
【问题描述】:

如何使用 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

【问题讨论】:

  • 我觉得不错。你面临什么问题?你可能想试试:RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=1WE,这个比较常见。
  • 当我打开文件时,它显示“该 ical 文件不是有效的 Internet 日历文件”
  • 那么outlook有bug。

标签: outlook icalendar recurrence rfc5545


【解决方案1】:

在 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

【讨论】:

  • 我不明白你的意思。
【解决方案2】:

RFC5545 指定 DTSTART 是您的 RRULE 的第一个实例,在您的情况下,您有

DTSTART:20150909T130000

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

DTSTART:20150907T080000

允许 Outlook 打开文件。

有关DTSTARTRRULE 的更多详细信息:RFC5545 Event

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

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

【讨论】:

    【解决方案3】:
    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/

    【讨论】:

      猜你喜欢
      • 2017-08-13
      • 2014-05-10
      • 2016-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-12
      • 1970-01-01
      相关资源
      最近更新 更多