C# 通过Google日历API v3创建重复事件
我有一个web应用程序,用户填写表单,然后在提交时将事件添加到google日历中。我可以在日历上插入事件的单个实例,但当我尝试设置事件的重复性时,我无法这样做。到目前为止,我的方法要么没有完成任何工作,要么创建了事件,但只针对一次事件 我正在使用谷歌api日历v3下面是我插入事件的代码C# 通过Google日历API v3创建重复事件,c#,google-calendar-api,C#,Google Calendar Api,我有一个web应用程序,用户填写表单,然后在提交时将事件添加到google日历中。我可以在日历上插入事件的单个实例,但当我尝试设置事件的重复性时,我无法这样做。到目前为止,我的方法要么没有完成任何工作,要么创建了事件,但只针对一次事件 我正在使用谷歌api日历v3下面是我插入事件的代码 try{ Google.Apis.Calendar.v3.CalendarService g = new Google.Apis.Calendar.v3.CalendarService();
try{
Google.Apis.Calendar.v3.CalendarService g = new
Google.Apis.Calendar.v3.CalendarService();
Google.Apis.Calendar.v3.Data.Event ev = new
Google.Apis.Calendar.v3.Data.Event();
//Create Date Times for start and end time
EventDateTime starter = new EventDateTime();
starter.DateTime = start;
EventDateTime ender = new EventDateTime();
ender.DateTime = end;
//Add values to the event
ev.Start = starter;
ev.End = ender;
ev.Summary = summary.Text;
ev.Location = location.Text;
ev.Description = description.Text;
String[] recd = {"RRULE:FREQ=WEEKLY;COUNT=2"};
Random rnd = new Random();
ev.RecurringEventId = "asdf" + rnd.Next(9999).ToString();
ev.Recurrence = recd;
//Add to calendar
addEvent(service, ev);
g.Events.Insert(ev, "********");
}
编辑1:
我已将事件创建代码重写如下:
EventDateTime starter = new EventDateTime();
starter.DateTime = start;
EventDateTime ender = new EventDateTime();
ender.DateTime = end;
Event newEvent = new Event()
{
Summary = summary.Text,
Location = location.Text,
Description = description.Text,
Start = starter,
End = ender,
Recurrence = new String[] {"RRULE:FREQ=DAILY;COUNT=2"}
};
String calendarId = "****@group.calendar.google.com";
EventsResource.InsertRequest request = service.Events.Insert(newEvent, calendarId);
Event createdEvent = request.Execute();
唯一的问题是事件不会被创建,也不会再次发生。如果我不使用该行,代码将运行并将单个事件插入日历。您是否忘记调用.execute()
删除此ev.recurringevantid=“asdf”+rnd.Next(9999.ToString()@DaImTo即使移除了它也不起作用。我试着把它放在适当的位置,看看是否丢失了它。我可以省略代码的重复行,它将在我的日历上创建事件,但当它被包括时,事件将不会被添加,也不会重复。好的,我不确定我做了什么不同的事情,但现在它在删除所有内容并重新开始后工作。谢谢你的帮助!
Event newEvent = new Event()
{
Summary = "Read Awesome Blog posts by Linda ",
Location = "1600 Amphitheatre Parkway., Mountain View, CA 94043",
Description = "A chance to learn more about Google APIs.",
Start = new EventDateTime()
{
DateTime = DateTime.Parse("2015-09-20T09:00:00-07:00"),
TimeZone = "America/Los_Angeles",
},
End = new EventDateTime()
{
DateTime = DateTime.Parse("2015-09-20T17:00:00-07:00"),
TimeZone = "America/Los_Angeles",
},
Recurrence = new String[] { "RRULE:FREQ=DAILY;COUNT=2" },
Attendees = new EventAttendee[] {
new EventAttendee() { Email = "test@test.com" },
},
Reminders = new Event.RemindersData()
{
UseDefault = false,
Overrides = new EventReminder[] {
new EventReminder() { Method = "email", Minutes = 24 * 60 },
new EventReminder() { Method = "sms", Minutes = 10 },
}
}
};
String calendarId = "primary";
EventsResource.InsertRequest request = service.Events.Insert(newEvent, calendarId);
Event createdEvent = request.Execute();