问题标签 [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.
fullcalendar - rfc2445,如何存储全天事件?
我正在创建一个应该符合rfc-2445 规范的日历应用程序。我在这里的全天活动遇到了一些问题,但现在已经解决,您可以在此处看到 SO 问题,但这迫使我提出以下问题。
当我选择全天活动时,例如从 20-10-2015 到 21-10-2015(活动持续时间为 2 天)实际上我需要在数据库中创建从 20-10-2015 到 22 的记录-10-2015,否则将显示为一日事件。
我的问题有两个部分:
- 以上是否正确并符合标准 rfc-2445?
- 我应该将此类事件存储在数据库中,从 20-10-2015 到 22-10-2015 并且当向最终用户显示其详细信息时,我应该从结束日期减少一天或将其存储为 20-10-2015 到 21-10- 2015 并在日历内渲染时在结束日期增加一天。
谢谢你。
php - 如何在 PHP 中格式化 RFC2445 的日期时间
我正在使用其 PHP 库处理 Google Calendar API,我需要设置一个重复事件,我必须为其创建一个 RRule 字符串,该字符串应具有以下格式:
我无法以上述格式创建日期。我确实尝试了所有方法,例如:
但 Google 不接受上述任何格式。我需要使它像:20110701T170000Z。有人可以帮我吗?
谢谢
java - 解析 rrule 时出错,dtstart 格式错误
我正在处理再次发生并使用 google-rfc-2445 库
此时我已经尝试了许多不同的方法,似乎我的 DateTime 变量格式不正确,我不确定发生了什么。
输出看起来像这样2015-05-05T17:11:11.000-05:00
在数据库中看起来像这样2015-05-05 22:11:11.0
我得到的错误看起来像这样
我试过格式化输出但没有运气。
我认为问题是我的 DTStart 格式不正确,但老实说,此时我不知道。它的格式很奇怪。
建议?
icalendar - 来自 google-rfc-2445 的带有 RRULE 的循环事件
我想知道是否可以使用来自google rfc 2445的 RRULE 来表示循环事件。一个例子是避孕药,它遵循 X 天的摄入周期,然后 Y 天的休息,然后重新开始。
任何帮助,将不胜感激!
google-calendar-api - 如何通过 uisng BiWeekly 库和 Java Mail API 创建和发送现有事件的更新?
我正在使用BiWeekly库创建 VEVENT,然后使用Java Mail API发送它。一切正常,但是如何为现有事件创建更新,即当我收到更新的 VEVENT 时,它不会在日历中创建新事件,但会更新现有事件?
我尝试按以下方式设置序列event.setSequence(2)
,但它不起作用。收到电子邮件代理 Lotus Notes 后,谷歌邮件总是会创建新事件。
这是我创建和发送事件的代码:
在这里,我将放置用于发送邀请的代码的迭代:
先感谢您。
更新 1:
这是我的代码和 BiWeekly 库生成的第一个和第二个 VEVENT:
仅创建事件 - 事件数据:
更新事件 - 仅事件数据:
更新 2:
当我发送第一个和第二个邀请时,我在 gmail 上收到以下电子邮件:
由于此处的一些隐私问题,删除了 tracerout 路径的完整原始电子邮件内容:
CREATE EVENT - FULL EMAIL 没有路由部分:
更新事件 - 完整的电子邮件,没有路由部分:
更新 3 它看起来在 Lotus Notes 上可以正常工作,但 Google 日历仍然无法识别更新事件。
更新 4 - 解决方案
正如@arnaudq 所写,我错过ATTENDEE
了制作谷歌日历来识别更新事件的属性。这是一个如何做到这一点的例子:
java - iCal4j/biweekly 和 google-rfc-2445 有什么区别?
现在我正在使用google-rfc-2445库来评估重复事件,并生成实际日期,例如要知道什么时候会发生由以下 RRULE 定义的事件:RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1
我正在使用双周库来生成 *.ics 文件。实际上它与iCal4j相同,但 API 更易于使用。
我看到这两个库在某种程度上都具有可互换的功能,所以我的问题是,我可以对这两个任务使用单个库(iCal4j/biweekly)吗?生成重复事件并导出/导入 *.ics 文件?
icalendar - 如果 DTSTART 的日期不在 BYDAY 指定的日期中,我如何从生成的事件中排除它?
我正在使用google-rfc-2445根据 rfc-2445 生成重复事件:
“VEVENT”的“DTSTART”属性指定事件的包含开始。对于重复事件,它还指定重复集中的第一个实例。
因此,例如每周五发生 5 次的事件的 RRULE:
所以根据rfc-2445它将产生 6 个事件。第一个事件 on Thursday 4 February 2016
,第二个事件 on Friday 5 February 2016
,依此类推。
如果它不在模式中,我如何实现它将排除第一个事件?在上面的示例中,它应该排除第一次出现的4 February 2016
. 如果定义DTSTART;TZID=US-Eastern:20160205T090000
哪个是星期五,则应保留第一次出现。
是否可以通过自行定义此类“排除规则”来完成,RRULE
或者我需要在代码中进行检查,如果DTSTART
与中定义的日期不同,BYDAY
我应该(手动)在代码中查找最接近的日期并DTSTART
相应地进行更改?
更新 好的,根据 rfc-2445 和谷歌组上的这个问题:https ://groups.google.com/forum/#!topic/google-rfc-2445/xqYFe411ysA
“EXDATE”属性可用于排除
“DTSTART”中指定的值。然而,在这种情况下,原始“DTSTART”日期
仍必须由日历和调度系统维护,因为
原始“DTSTART”值与其他属性(例如“RECURRENCE-ID”)具有内在的使用依赖性。
看起来我需要使用EXDATE
属性来实现我需要的东西。尝试通过遵循 RRULE 来实现这一点:
开始日期是:2016-02-10T00:00:00.000+02:00
在以下代码中:
但它只返回 4 个事件,所以它总是删除第一个事件。
fullcalendar - 根据 RFC5545 和 Fullcalendar 的独占/包含 DTEND 和时间部分,如何正确执行?
根据rfc5545:
“VEVENT”日历组件的“DTEND”属性指定事件的非包含结束。
同样在事件对象属性的完整日历文档中也end
写了相同的内容:
事件结束的唯一日期/时间。可选的。
Moment-ish 输入,如 ISO8601 字符串。在整个 API 中,这将成为一个真正的 Moment 对象。
这是事件结束后的瞬间。例如,如果活动的最后一整天是星期四,则活动的唯一结束时间将是星期五 00:00:00!
对于全天活动,一切都很清楚,如果从 2016 年 3 月 24 日到 2016 年 3 月 25 日的活动,我需要根据上述从 24/03/2016 到 25/03/2016 进行写作。
现在,我的问题是当事件 from to时,我应该如何在DTEND中写入,即 30 分钟事件?我是否需要写信
来创建不包含在内的结束日期?24/03/2016 10:00
24/03/2016 10:30
24/03/2016 10:30:01
java - 使用 iCal4J 之前的重复规则
我正在做一个项目,需要使用 iCal4J 库为某个日期范围生成重复。基本上,这是一个简单的 RRule,每周重复一次,每周五重复一次,持续六个月。
这就是我所拥有的:
这会在每个星期五午夜半点生成每周会议,但最后一次会议应该是 27/01/2017,而是 20/01/2017。
一场会议被取消。Ps 这只发生在这个日期范围内(可能与英国夏令时 BST 有关),但是它被设置为 UTC,因此它应该没关系吧?
然后,如果我在 23:59:59 将 UNTIL 属性从重复规则更改为 21-01-2017,那么它就会被拾取。
有什么建议么?
问候
icalendar - 取消并在同一个 VCALENDAR 中创建 VEVENTS,可以吗?
例如,如果用户取消了一个事件并创建了一个新事件,我可以在一个 *.ics 文件中发送这两项更改吗?取消(不更新)第一个事件并创建一个新事件?