【问题标题】:Recurrence Rule Error 400 Bad Request - Google Api Calendar重复规则错误 400 错误请求 - Google Api 日历
【发布时间】:2014-10-04 17:33:54
【问题描述】:

我正在尝试使用Google Calendar Api 创建重复规则。

 [JAVASCRIPT - Google Client Library]
 var req = gapi.client.calendar.events.insert({
  [...],
  "recurrence": [
    "RRULE:FREQ=WEEKLY;UNTIL="+date.toISOString()
  ],
  [...]
 });
 req.execute();

上面的代码返回 400 Bad request,因为循环规则的格式不正确。

我不明白如何为 UNTIL 字段创建正确的日期格式。

我尝试使用日期对象并使用 ISO 转换,但它也不起作用。

无论如何,该事件的单个创建都可以正常工作,并且还可以使用 COUNT 字段重复。

FILE ON GITHUB

【问题讨论】:

    标签: javascript calendar google-api google-calendar-api google-api-client


    【解决方案1】:

    有几条规则适用于 UNTIL。首先,它不是 ISO 字符串,而是值 DATE 或 DATE-TIME (https://www.rfc-editor.org/rfc/rfc5545#section-3.3.5)。然后您需要注意,如果重复事件开始是全天事件,则使用 DATE 值,反之亦然。最后你需要注意时区。 UNTIL 必须与您的起点位于同一时区。我真的建议阅读 RFC https://www.rfc-editor.org/rfc/rfc5545#section-3.8.5.3 中有关重复规则的内容@

    【讨论】:

    • 我正在创建时长 1 小时的活动。开始时间和结束时间在循环属性之外,你认为应该将它们也添加到循环规则中吗?
    • 不,start 和 end 是单独的字段,不应进入循环。但是,适用于 DTSTART 和 DTEND 的规则也适用于 v3 中的开始和结束。
    • 所以它们自动嵌套在里面,唯一的问题是此时正确格式化UNTIL属性。
    • 我已经在 github 上添加了文件的链接,也许它会有所帮助。
    • 我在资源中找到了链接正确的日期格式以在 api 请求中使用。谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-08
    • 1970-01-01
    • 2014-02-11
    • 2018-11-20
    • 2022-01-04
    • 2019-12-07
    相关资源
    最近更新 更多