Python 标准 : get events for a day including recurring ones

标签 python datetime icalendar rfc5545

有没有一种简单的方法可以从 Python 中的 ical 文件中获取一天的事件?

对于非经常性的一天事件,我使用了类似的东西

from icalendar import Calendar
for event in Calendar.from_ical(ical).walk('vevent'):
    if edate > ref_ref_day_start and event.get('dtstart').dt < ref_day_end:
        # code here

但是重复事件只在walk中发生一次。

我可以看到无限事件迭代如何无休止地重复事件可能是一个问题。但是一定有比自己计算重复次数更简单的方法,对吧?

(我找不到太多文档。我阅读了与重复事件相关的 icalendar 测试,但它似乎没有做任何类似的事情)。

最佳答案

你可以使用 pyICSParser。

它将获取一个 ICS 文件并在日期时间对象列表中返回重复事件的日期。

您需要指定希望这些事件返回的时间窗口,否则在没有 UNTILCOUNT 参数的情况下重复出现的事件将呈现无限列表。

(免责声明我是包的作者)

关于Python 标准 : get events for a day including recurring ones,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28829261/

相关文章:

python - django 1.7 迁移文件不能使用用户方法

.net - DateTime 的 WebApi 序列化 - 如何反序列化?

c++ - 序列化和反序列化 time_t 变量后结果不正确

delphi - Delphi 应用程序的实时基于网络的客户端。如何?

Outlook 无法识别 .ics 文件中的自定义 UID,创建新事件(和新 ID)

python - If 语句和 while 循环

jquery - django-autocomplete-light : "The results could not be loaded"

python - OverflowError 真的被提出了吗?

c# - InvalidCastException 将字符串转换为 DateTime

python - 如何在 python 中将规则添加到 icalendar 事件?