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

如何从FullCalendar现有事件中检索并编辑RRule?

解决FullCalendar 5.10中无法访问重复事件rrule属性的问题

FullCalendar默认不会把你传入的rrule原始对象直接绑定到event实例上,想要获取重复规则的dtstart、freq等属性,得借助fullcalendar-to-rrule插件提供的getRRule方法来提取。

具体实现步骤

  1. 确保插件正确引入/导入

    • 用CDN引入时,要保证fullcalendar-rrule.js在FullCalendar核心脚本之后加载;
    • 用npm模块化开发时,正确导入getRRule方法:
      import { getRRule } from '@fullcalendar/rrule';
      
  2. 在eventClick回调中获取rrule实例
    修改你的showDateModal函数,加入rrule的提取逻辑:

    function showDateModal(info = null){
      var myModal = new bootstrap.Modal(document.getElementById('createEventModal'));
    
      if(info != null)
      {
        document.getElementById('event-title').value = info.event.title;
        
        // 提取rrule实例
        const rruleInstance = getRRule(info.event);
        if(rruleInstance) {
          // 从options中获取需要的属性
          const rrulestart = rruleInstance.options.dtstart;
          const freq = rruleInstance.options.freq;
          
          // 可将值填充到模态框对应输入框
          // 示例:document.getElementById('event-start').value = rrulestart.toISOString().slice(0,10);
          console.log('重复起始时间:', rrulestart);
          console.log('重复频率:', freq);
        }
      }
    }
    

注意事项

  • 只有添加时传入rrule属性的重复事件才能通过getRRule拿到实例,普通事件调用会返回null,务必加判断;
  • 创建事件时要保证rrule格式正确:dtstart必须是标准Date对象,freq建议使用rrule提供的常量(比如RRule.DAILY、RRule.WEEKLY),避免直接传数字导致后续处理混乱;
  • 确认fullcalendar-to-rrule插件版本与FullCalendar 5.10兼容,版本不匹配可能出现方法无法调用的问题。

内容的提问来源于stack exchange,提问作者S. B.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 09:41:03