问题标签 [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 投票
3 回答
2266 浏览

c# - iCalendar RFC 2445 第 4.1 节内容折叠

我正在使用 C# 创建一个简单的 iCalendar,发现 RFC 2445 第 4.1 节的内容折叠非常令人头疼(对我来说:-)。

http://www.apps.ietf.org/rfc/rfc2445.html#sec-4.1

对于长行,您要转义一些字符(我相信反斜杠、分号、逗号和换行符),然后将其折叠以使行不超过 75 个八位字节。我在网上找到了几种直接的方法。最简单的方法是用转义版本替换有问题的字符,然后在每 75 个字符处插入 CRLF。就像是:

我看到两个问题。CRLF 可能被插入到转义序列中。例如,如果插入发生使得转义的新行序列“\n”变为“\CRLF”(那么“n”将在下一行)。第二个问题是当有多字节字符时。由于计算是按字符计算的,因此该行可能会超过 75 个八位字节。

一个简单的解决方案是逐个字符地遍历字符串并转义和折叠,但这似乎相当暴力。有人有更优雅的解决方案吗?

0 投票
5 回答
533 浏览

ruby - iCalendar 的正则表达式解析(Ruby 正则表达式)

我正在尝试使用正则表达式解析 iCalendar (RFC2445) 输入。

这是输入的 [简化] 示例:

我想得到一个匹配数组:“外部”匹配是每个 VEVENT 块,内部匹配是每个字段:值对。

我试过这个的变种:

但是考虑到上面的输入,结果似乎每个匹配的 VEVENT 只有一个字段,尽管 +? 在捕获组上:

在第一场比赛中,我会期待两个字段: abc:123 和 def:456 匹配......

我确定这是一个新手错误(因为在正则表达式方面我似乎永远是新手......) - 但也许你可以指出我正确的方向?

谢谢!

0 投票
2 回答
448 浏览

python - 如何将日期格式化为 BYDAY(iCalendar 规范)

我需要从我的日期值创建带有 BYDAY 参数的 RRULE 字符串。

有什么自然的方法吗?

我为此目的编写了这个实用程序代码:

0 投票
1 回答
510 浏览

google-apps-script - 使用谷歌日历的 Recurrence-OnlyOnWeeks 示例?

我很陌生Google-Apps-Script。你能举个例子如何使用

日历 > 重复 > onlyOnWeeks

我想创建一个每日活动,但只在三个特定的周内。我的解决方案无法正常工作。每日事件正在创建,但每周。

0 投票
0 回答
346 浏览

calendar - 搜索跨设备工作的 iCalendar 重复格式

我正在寻找一种在 iCalendar 中表示重复的方法,该方法适用于 Google 日历、Android 和 iOS。我正在使用一个时间表系统,其中每周重复很常见,但重复的模式并不总是规律的。

以下是一些示例,它们都适用于 Google 日历。理想情况下,我希望为所有设备提供一个提要。

适用于 Android(但不适用于 iOS)

我发现如果我从 RDATE 列表中省略了 DTSTART 日期,它不会显示 Android 上的第一次活动发生(但在 Google 日历中显示)。我得出的结论是RDATE 不适用于 Apple 设备

适用于 iOS(但不适用于 Android)

我很欣赏上面的 iOS 示例可能不是生成 RRULE 的最有效方法,但我正在寻找一种易于为各种模式的每周循环活动生成的方法。

iOS 示例在 Android 中失败,因为仅观察到第一个 EXDATE 条目。我认为 Google 日历将 EXDATE 放在不同的行上,因此将其用于 Android 消费。

0 投票
2 回答
399 浏览

icalendar - iCal 重复规则,我如何指定一个月中的所有天,永远?

我想知道如何做到这一点,我认为使用

频率=每年;每月=7;

意味着每年的 7 月,因此事件每年 7 月的每一天都发生,而不是意味着事件仅在事件指定的日期发生,因此如果事件在 11 月 8 日开始,则重复规则意味着它将永远发生在 7 月 8 日。

指定七月每一天的正确方法是什么?

0 投票
2 回答
1778 浏览

qr-code - DTSTART 与今天相关的事件的 QR 码

是否可以创建一个二维码,在日历中设置一个事件,其日期与扫描代码的日期相关?

示例:扫码,从今天起 2 个月后,我的手机显示事件或为我提供提醒提醒。

0 投票
1 回答
1290 浏览

android - 使用 C# 以 iCal 格式获取事件的 Outlook 重复模式

我正在开发一个系统,它可以提取outlook calendar data并将其保存在 android 设备日历上。到目前为止,所有其他 Outlook 数据均已成功提取和保存。现在我需要创建重复规则 ( rrule)。因为android设备日历使用保存重复模式作为rfc5545标准提到的规则。那么如何将 Outlook 重复模式提取为rule (like iCal format).

简而言之,我需要像这样获取 Outlook 日历事件的重复模式

0 投票
2 回答
2181 浏览

android - android日历事件每年重复的重复规则

我正在尝试以编程方式在日历中添加事件。我希望该活动每年重复一次,例如二月的每个第一个星期一。我使用的规则是这样的:

问题是:如果我创建事件的开始日期在一月,并将其设置为每年一月重复,那么它工作正常。但是,如果我在除 2 月以外的其他月份创建开始日期的事件,并将其设置为按照相同的规则重复,则该事件不会在星期一重复,而是在其他日期重复。那一天会有所不同,具体取决于事件的开始日期是哪个月份。似乎它计算天数,因为在闰年,这一天会改变一。

更新:

我注意到,如果我创建如上所述的事件,则会发生以下情况:如果我在 2 月创建事件并设置为在 3 月重复,则规则从DTSTART事件发生的蛾子获取月份中的天数设置(二月)。因此,如果我在 2 月创建一个事件并将其设置为在 3 月的最后一天重复,它将在 3 月 28 日或闰年的 29 日重复(而不是预期的 31 日)。

另一个例子:我DTSTART在 2013 年 1 月创建事件并将其设置为在 2 月的每个第一个星期一重复。它在 2013 年 2 月的日期创建事件,该日期对应于 2013 年 1 月的第一个星期一,在本例中为 2 月 7 日(因为 1 月 7 日是 2013 年 1 月的第一个星期一)。每年二月的第一个星期四将重复该活动。

0 投票
3 回答
9533 浏览

google-calendar-api - Icalendar ICS 更新在谷歌日历中不起作用

我对 Gmail/Google 日历地址的 ICS 附件有些问题。当我必须编辑事件时,我会通过邮件发送更新,其中包含与原始事件相同 UID 的 ICS 文件。但是,GCalendar 添加了第二个事件。我该如何克服呢?

这是第一个 ICS 文件内容:

这是更新的 ICS 文件内容:

当我收到更新文件并单击“将此事件添加到日历”时,我会发现两个不同的事件。

这是原始的原始电子邮件:

以下是其他测试,其中 ORGANIZER 电子邮件与 Sender 电子邮件相同,ATTENDEE 电子邮件与 Receiver 电子邮件相同。

创建http://tny.cz/6396ba62 更新http://tny.cz/08ac81c0