iCalendar 开放时间

iCalendar Opening Hours

如何以 iCalendar 数据格式编写商店营业时间的 FREQ 规则?

假设商店每个工作日(周一至周五)营业:

  1. 从 8:00AM 到 5:00PM
  2. (或午休从)8:00AM 到 11:00AM 和 12:00PM 到 5:00PM

这将解决天数:FREQ=WEEKLY;WKST=MO;BYDAY=MO,TU,WE,TH,FR,但小时数如何?

编辑: 我可以这样做吗?

DTSTART;TZID=America/New_York:19970902T080000
RRULE:FREQ=WEEKLY;WKST=MO;BYDAY=MO,TU,WE,TH,FR
DURATION=PT9H

这是否意味着从周一到周五,从 8:00AM 到 5:00PM 的每一天(由于持续时间)?

我想我用 DTSTARTDTEND 解决了这个问题:

BEGIN:VEVENT
...
DTSTAMP:20191016T133700Z
DTSTART;TZID=Europe/Bratislava:20191007T080000
DTEND;TZID=Europe/Bratislava:20191007T170000
RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR
SUMMARY:Opening hours without lunch break
...
END:VEVENT

而且我想如果我想在午休时间安排开放时间,我必须创建两个单独的活动。

我相信使用 DURATION(如问题中所述)也是一种选择:

BEGIN:VEVENT
...
DTSTAMP:20191016T133700Z
DTSTART;TZID=Europe/Bratislava:20191007T080000
DURATION:PT9H
RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR
SUMMARY:Opening hours without lunch break
...
END:VEVENT

编辑:

然而,这在日历中标记了一个事件,我希望这个时间可能被标记为 free 时间。也许……用 FREEBUSY ?

编辑 2: 设置 TRANSP:TRANSPARENT 将此事件标记为日历中的空闲时间(或 "not busy")