如何解决创建事件系列的问题
我要为其创建Google日历活动系列
“每月的每个第一个星期日”
使用CalendarApp.getCalendarById(testId).createEventSeries(...)。
我尝试了CalendarApp.newRecurrence()。add ...仅...的各种组合,但是它们都不起作用。 代码:
function example () {
var year=2022;
var testId='cobugitj4b6dev17cghb78j3rc@group.calendar.google.com';
var oneHour=60 * 60 * 1000
var sunday=CalendarApp.Weekday.SUNDAY;
var silvester=new Date(year,11,31,23,59,0);
var startDayTime=new Date(year,2,19,30,0);
var recurrenceWeekday=CalendarApp.newRecurrence().addWeeklyRule().onlyOnWeekday(sunday)
var newEvent = CalendarApp.getCalendarById(testId).createEventSeries("Termin",startDayTime,new Date(startDayTime.getTime() + oneHour),recurrenceWeekday.until(silvester));
}
在每个星期日创建一个事件。我应该使用哪种方法将活动限制在每个月的第一个星期日?
在线创建这样的eventSerie没问题。
正确的VCALENDAR条目如下所示:
BEGIN:VEVENT
DTSTART;TZID=Europe/Vienna:20220102T193000
DTEND;TZID=Europe/Vienna:20220102T203000
RRULE:FREQ=MONTHLY;COUNT=12;BYDAY=1SU
DTSTAMP:20200811T121708Z
UID:7ojdc1g1mfjov4m3ubtg7k8d5h@google.com
CREATED:20200811T120316Z
DESCRIPTION:
LAST-MODIFIED:20200811T121423Z
LOCATION:FranZ
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:Termin_1
TRANSP:OPAQUE
END:VEVENT
解决方法
- 您可以找到有关重复发生的Google Calendar API事件here 的文档
- Events resource的含义是:
针对重复发生的事件的RRULE,EXRULE,RDATE和EXDATE行的列表,如RFC5545中所指定。请注意,此字段中不允许使用DTSTART和DTEND行。事件的开始和结束时间在开始和结束字段中指定。对于单个事件或重复发生的事件,将忽略此字段。
- 其中有关于RFC5545 的详细文档
对于您的特定查询,递归规则为:
"RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=SU;BYSETPOS=1"
- CalendarApp不支持这种语法
- 要起诉,您需要启用Advanced Calendar Service
- 要enable,请继续
Resources > Advanced Google services.
此后,您可以按以下方式使用“高级日历”:
function example() {
var testId='XXXXXXXXXXXXXXXXXXXXXX';
var silvester="20221231";
var resource = {
"start": {
"date": "2020-09-06"
},"end": {
"date": "2020-09-06"
},"recurrence": [
"RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=SU;BYSETPOS=1;UNTIL=" + silvester
],"summary": "Termin"
}
Calendar.Events.insert(resource,testId);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。