You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在FullCalendar中使用rrule创建正确的多日重复事件?

在FullCalendar中创建多日重复事件的正确方式

当给跨日事件添加rrule后,FullCalendar会默认忽略原事件的end字段,只以rrule的dtstart作为每个重复实例的起始时间,导致事件被截断成单日。要解决这个问题,核心是给事件明确指定时长,让每个重复实例都继承这个时长,从而保持跨日属性。

具体操作步骤:

  • 计算原事件的时长:用原end时间减去start时间,转换为ISO 8601时长格式(比如原事件从14点到次日15点,时长25小时,对应PT25H)。
  • 在事件对象中添加duration字段,可去掉原有的end字段(若保留end,duration优先级更高)。

修改后的事件对象示例:

{
  "id": "324sdasdaseddssds",
  "title": "Test",
  "start": "2022-09-01T14:00:00.000Z",
  "isAllDay": null,
  "note": null,
  "duration": "PT25H",
  "rrule": {
      "freq": "WEEKLY",
      "interval": 2,
      "byweekday": [
          "su",
          "mo",
          "tu",
          "we",
          "th",
          "fr"
      ],
      "dtstart": "2022-09-01T14:00:00.000Z"
    }
}

这样设置后,FullCalendar会基于rrule生成的每个起始时间,自动加上指定的时长,生成正确的跨日重复事件,每个实例都会从当日14点持续到次日15点。

内容的提问来源于stack exchange,提问作者WildThing

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 20:45:52