问题标签 [rfc2445]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4113 浏览

php - PHP日期重复库?

Ruby、Java 和 Python 都有几个非常好的库,可以让您很好地处理rfc2445的 rrule。

我已经对将处理规则和返回重复日期的类/库进行了非常全面的搜索,但是我还没有找到 PHP 中的 1 个库可以做到这一点。

我将开始编写一个与 Ruby 的ice_cube功能相似的 PHP 库,但是在开始之前,我只想确保我不会重新发明轮子。

所以这让我想到了这个问题,我是在重新发明轮子吗?我是否没有找到已经编写的处理 PHP 中日期重复的库?

0 投票
1 回答
444 浏览

google-calendar-api - 我的重复数据字符串有什么问题?

我正在尝试创建重复规则以将我的时间表导出到Google Calendar,但我做错了。

字符串如下:

UNTIL如果您将使用(我为测试硬编码的这部分:)取下部分,那么它工作正常,;UNTIL=20100827T164500Z但在UNTIL那里它不起作用(我需要它UNTIL在那里)。

我一直在查看文档RFC2445,直到发现有什么问题。

谢谢你的帮助!

0 投票
2 回答
3280 浏览

calendar - RFC 5545 与 RFC 2445 有何不同

在原生 Android 日历应用中,使用 RFC 2445 协议来创建.ics文件。我在一些博客中发现 RFC 2445 被 RFC 5545 取代。谁能告诉我 RFC 5545 中有哪些额外功能以及它与 RFC 2445 有何不同?

0 投票
2 回答
689 浏览

python - 是否有现有的库或脚本集来为 Python 中的 Google 日历 API 编写重复事件字符串?

我有一个基于 Python 的程序,可以将事件添加到 Google 日历。要添加重复的事件,我需要指定一个符合 RFC 2445 标准的recurrent_data 字符串。下面是一个示例,来自http://code.google.com/apis/calendar/data/1.0/developers_guide_python.html#CreatingRecurring

是否有人编写了一组函数来自动生成这些字符串,和/或以其他方式将重复事件写入 Google 日历?自己编写一些函数似乎并不太难,但我想检查一下我是否会重复在 ical 或 GData API 社区中的任何长期努力。

0 投票
1 回答
2536 浏览

icalendar - 从扩展的 iCalendar RRule 确定事件

我正在阅读 RFC 5545 并尝试确定如何正确找到一组事件。假设我有一个 WEEKLY rrule = 2(每隔一周)。我还为 Tue、Wed、Thu 指定了 BYDAY 规则部分。假设我的开始日期是 2011 年 4 月 7 日(星期四),我的结束日期是 2011 年 4 月 27 日(星期三)。显然忽略不重要的日期,我认为我的事件集将包含:2011-04-07、2011-04-12、2011-04-13、2011-04-21、2011-04-26、2011-04- 27.

让我失望的是 RFC 中的以下声明:“WKST 规则部分指定工作周的开始日期。有效值为 MO、TU、WE、TH、FR、SA 和 SU。当每周“RRULE”的间隔大于 1,并且指定了 BYDAY 规则部分。

因此,如果我的 WKST=MO,我从上述语句中看到了一个暗示,即一周不是从开始日期开始,而是从 WKST 开始。这意味着不是使用基于开始日期的一周,在这种情况下,周四至周三,我需要实际从 WKST 开始,并确定哪些事件发生在该周(周一至周日)以及从该 WKST 开始的每隔一周. 因此,出于计算目的,我的开始日期实际上是 2011-04-04。那是在开始日期之前,所以我跳到开始日期,但我坚持周一至周日。这意味着我的事件集实际上是:2011-04-07、2011-04-19、2011-04-20、2011-04-21。这与我原来的设置有很大不同。

此外,如果这是计算的正确方法,这是否也意味着在扩展具有 >1 间隔的其他频率的规则情况时,我必须在该期间的开始而不是开始日期“开始”。MONTHLY 是否包含开始日期当月的第一天 - 最后一天。YEARLY 是否包括开始日期当年的 1 月 1 日 - 12 月 31 日?

我希望那里有一位 iCalendar 大师……我无法理解这里的逻辑。谢谢。

更新:我确实创建了一些 .ics 文件并导入谷歌日历。假设谷歌正确解释了这些,我可以确认使用 INTERVAL>1 的扩展 MONTHLY 将使用该月的第一天到最后一天,而不是从事件的开始日期开始的一个月。YEARLY 规则以相同的方式工作,年份从 1 月 1 日到 12 月 31 日。不是我最初的预期,但希望这可以帮助其他人。

0 投票
2 回答
2026 浏览

icalendar - 如何从 iCalendar RRULE 获取发生日期列表

我有带有 RRULE 的 iCalendar 文件以供出现。如何根据 iCal 文件中的给定开始日期和 RRULE 获取事件将发生的日期列表。

在 Java 中,我想编写一个方法,它应该采用开始日期和 RRULE 并返回发生日期列表。请帮助提供简单的解决方案或指示。

0 投票
1 回答
231 浏览

php - iCalendar 格式是否同时支持多个事件?

如果这是在错误的 StackExchange 站点上,我深表歉意。我想它可以转到 Apple SE,但我对.ical文件的复杂性更感兴趣,而不是应用程序本身,因为我想用 PHP 解析文件。

我正在编写一个具有日历功能的网络应用程序。它需要加载.ical文件并显示分组到半小时时段的约会。

文件是否.ical同时支持多个事件?在编写添加事件的代码时,开始时间将四舍五入到最接近的 30 分钟,因此两个事件可能具有相同的开始时间。这是否允许在.ical文件中,以及被 PHP 解析器正确解析?我只对最近或最流行版本的 iCal 文件真正感兴趣。

我猜答案是“是”,因为事件有自己的DTSTAMP,DTSTARTDTEND属性,但我想确保解析器(在 PHP 中)可以处理这个问题。

0 投票
1 回答
443 浏览

icalendar - 检测 iCal 文件中的更改

我正在编写一个插入 Google 日历(或其他 iCal 支持的服务)并显示事件提醒的小型桌面应用程序。它会每隔一段时间自动重新下载 iCal 文件。如果文件校验和已更改,我会丢弃当前的约会缓存并重新解析日历。

问题是,这不适用于 Google 日历文件。经过进一步检查,我注意到每次我重新下载与某个日历关联的 iCal 文件时,所有事件的DTSTAMP: 属性都会发生变化。所以标准校验和可能不是这里的方法。我正在考虑两种主要的解决方案。

  • 根据原始文件计算校验和,并DTSTAMP:丢弃行。(肮脏的)
  • 实现一个完整的日历差异算法,检测日历的哪些部分是新的,哪些已被丢弃,哪些已更改等(昂贵)

我不知道iCal格式是否还有其他我还没有发现的怪癖,所以我不知道方法1是否能解决我的问题。有限的测试似乎表明确实如此。另一方面,就 CPU 功率而言,方法 2 似乎不必要地昂贵。

你有什么建议?

0 投票
1 回答
276 浏览

icalendar - 在同一用户的多个日历的情况下发布 iCalendar 事件

我在一个 java 应用程序上工作,该应用程序创建并跟踪各种事件,这些事件将发布在人的日历中。
该应用程序通过电子邮件(iTIP/iMIP,而不是 calDav)以iCalendar格式发送消息,更准确地说,我打算发送一个 PUBLISH 事件。问题是,我们使用 Zimbra,每个用户都可能创建多个日历。但我认为我们使用 Zimbra 还是 Outlook 并不重要,我认为允许用户拥有多个日历是常见的功能。

问题是:我想知道是否可以指定(在 iCalendar/iTIP/iMIP 消息中)事件应该显示在哪个日历中?目前它是“主要”日历。

我已经浏览了所有相关的 rfc(5545、5546、6047),但还没有找到答案。谷歌也没有帮助。

感谢您的任何想法。

0 投票
1 回答
1419 浏览

icalendar - iCalendar (RFC5545) 重复规则一天多次

如何使用 RFC5545 中指定的 RRULE 使事件每天发生多次?

假设我希望每隔一周的周一和周五上午 11 点和晚上 18 点举行一次活动。是否可以像下面这样格式化 RRU​​LE:

RRULE:FREQ=WEEKLY;INTERVAL=2;BYDAY=MO,FR;[TIMES=110000,180000]

谢谢