解析 Google 日历循环的 Python 解决方案

发布于 2024-10-01 05:11:05 字数 619 浏览 4 评论 0原文

我正在尝试解析 GCal 的重复字段。通常,它看起来像这样:

DTSTART;TZID=Europe/Kiev:20101111T140000
DTEND;TZID=Europe/Kiev:20101111T150000
RRULE:FREQ=DAILY;UNTIL=20101112T120000Z
BEGIN:VTIMEZONE
TZID:Europe/Kiev
X-LIC-LOCATION:Europe/Kiev
BEGIN:DAYLIGHT
TZOFFSETFROM:+0200
TZOFFSETTO:+0300
TZNAME:EEST
DTSTART:19700329T030000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0300
TZOFFSETTO:+0200
TZNAME:EET
DTSTART:19701025T040000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
END:STANDARD
END:VTIMEZONE

我需要提取对我有价值的部分:事件的 DTSTART、DTEND、RRULE 和其他 iCaledar 的字段。 是否有现有的解决方案可以做到这一点?

I'm trying to parse GCal's recurrence field. Usually, it looks like this:

DTSTART;TZID=Europe/Kiev:20101111T140000
DTEND;TZID=Europe/Kiev:20101111T150000
RRULE:FREQ=DAILY;UNTIL=20101112T120000Z
BEGIN:VTIMEZONE
TZID:Europe/Kiev
X-LIC-LOCATION:Europe/Kiev
BEGIN:DAYLIGHT
TZOFFSETFROM:+0200
TZOFFSETTO:+0300
TZNAME:EEST
DTSTART:19700329T030000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0300
TZOFFSETTO:+0200
TZNAME:EET
DTSTART:19701025T040000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
END:STANDARD
END:VTIMEZONE

I need to extract valuable for me part: event's DTSTART, DTEND, RRULE, and other iCaledar's field.
Is there an existent solution for doing this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

↘人皮目录ツ 2024-10-08 05:11:05

您可以尝试神奇的库 python-dateutil (http://labix.org/python-dateutil)。

You can try the fantastic library python-dateutil (http://labix.org/python-dateutil).

壹場煙雨 2024-10-08 05:11:05

我正在使用 mxm 的 icalendar 包:

http://codespeak.net/icalendar/

我很确定它将所有 ical 字段传递给已解析的对象。我不确定是否会再次出现,因为我只是不在我的应用程序中使用它,但我会惊讶地发现它不存在。

I'm using mxm's icalendar package:

http://codespeak.net/icalendar/

and I'm pretty sure it passes all ical fields to parsed objects. I'm not sure about reoccurence because I just don't use that in my app, but I would be surprised to find out it's not there.

离旧人 2024-10-08 05:11:05

由于我有类似的问题,并且找不到任何可以完成这项工作的东西,所以我刚刚在 pypi 上发布了一个小项目,它不仅会为您提供 DTSTART、DTEND、RRULE、RDATE、UID 和 SUMMARY 值,还会给出特定的值时间窗口返回满足 RRULE 规则的所有日期。

您可以在这里获取它:http://pypi.python.org/pypi/pyICSParser(请请注意,我根本不是软件工程师,因此良好的编码实践合规性很差,尽管我将处理文档,但仍处于非常早期的阶段)

As I have a similar problem and could not find anything doing the job, I've just released on pypi a small project which will not only give you the DTSTART, DTEND, RRULE, RDATE, UID and SUMMARY values but will also given a specific time window return all the dates that fullfill the RRULE rules.

You can get it here: http://pypi.python.org/pypi/pyICSParser (please note I'm not at all a SW engineer so good coding practices compliance is poor and though I'll work on documentation it is still very early stage)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文