C# 谷歌日历(v3)事件格式
我一直在尝试用一个事件更新日历,但它似乎没有通过。你能评论一下我的活动格式是否正确吗?我已经为此挣扎了一段时间了C# 谷歌日历(v3)事件格式,c#,google-calendar-api,C#,Google Calendar Api,我一直在尝试用一个事件更新日历,但它似乎没有通过。你能评论一下我的活动格式是否正确吗?我已经为此挣扎了一段时间了 private void InsertEventIntoCalendar() { List<EventAttendee> ef = new List<EventAttendee>(); ef.Add(new EventAttendee{ Email = "event@gmail.com"}); List<EventReminde
private void InsertEventIntoCalendar()
{
List<EventAttendee> ef = new List<EventAttendee>();
ef.Add(new EventAttendee{ Email = "event@gmail.com"});
List<EventReminder> eventReminder = new List<EventReminder>();
eventReminder.Add(new EventReminder{ Minutes = 4, Method = "email"});
Event.RemindersData de = new Event.RemindersData();
de.Overrides = eventReminder;
Event newEvent = new Event
{
Attendees = ef,
Reminders = de,
Summary = "Tin Roof",
Description = "Its gonna be epic",
Location = "Claremont",
Start = new EventDateTime
{
Date = "2012-09-30",
DateTime = "2012-09-30T10:00:00.000-02:00",
TimeZone = "Cape Town"
},
End = new EventDateTime
{
Date = "2012-09-30",
DateTime = new DateTime( "2012-09-30T10:25:00.000-02:00",
TimeZone = "Cape Town"
},
};
_service.Events.Insert(newEvent, "event@gmail.com").Fetch();
}
private void insertEventToCalendar()
{
List ef=新列表();
添加(新的EventAttendee{Email=”event@gmail.com"});
列表事件提醒=新建列表();
添加(新的事件提醒{Minutes=4,Method=“email”});
Event.rementersdata de=新事件.rementersdata();
de.覆盖=事件提醒;
Event newEvent=新事件
{
与会者=ef,
提醒=de,
Summary=“铁皮屋顶”,
Description=“这将是一部史诗”,
Location=“克莱蒙特”,
开始=新的EventDateTime
{
日期=“2012-09-30”,
DateTime=“2012-09-30T10:00:00.000-02:00”,
时区=“开普敦”
},
End=neweventdatetime
{
日期=“2012-09-30”,
DateTime=新的日期时间(“2012-09-30T10:25:00.000-02:00”,
时区=“开普敦”
},
};
_service.Events.Insert(newEvent,“event@gmail.comFetch();
}
我认为提醒数据中存在错误。请看这里-以防它对其他人有帮助。我找到了解决方法。我也在寻找答案,并偶然发现了一个解决方案:
public static void GCalAdd(string summary, string location, string description,
DateTime start, DateTime end, List<EventAttendee> attendees)
{
try
{
var provider = new NativeApplicationClient(GoogleAuthenticationServer.Description)
{
ClientIdentifier = ClientCredentials.ClientID,
ClientSecret = ClientCredentials.ClientSecret
};
var auth = new OAuth2Authenticator<NativeApplicationClient>(provider, GetAuthentication);
var service = new CalendarService(auth);
var curTimeZone = TimeZone.CurrentTimeZone;
var dateOffsetStart = new DateTimeOffset(start, curTimeZone.GetUtcOffset(start));
var dateOffsetEnd = new DateTimeOffset(end, curTimeZone.GetUtcOffset(end));
var startTimeString = dateOffsetStart.ToString("o");
var endTimeString = dateOffsetEnd.ToString("o");
var evt = new Event
{
Summary = summary,
Location = location,
Description = description,
Start = new EventDateTime { DateTime = startTimeString },
End = new EventDateTime { DateTime = endTimeString },
Attendees = attendees,
};
var insert = service.Events.Insert(evt, "primary").Fetch();
if (insert != null)
{
MessageBox.Show(@"calendar item inserted");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
}
public static void GCalAdd(字符串摘要、字符串位置、字符串描述、,
日期时间开始、日期时间结束、列出与会者)
{
尝试
{
var provider=新的本地应用程序客户端(GoogleAuthenticationServer.Description)
{
ClientIdentifier=ClientCredentials.ClientID,
ClientSecret=ClientCredentials.ClientSecret
};
var auth=新的OAuth2Authenticator(提供者,GetAuthentication);
var服务=新日历服务(auth);
var curTimeZone=TimeZone.CurrentTimeZone;
var dateOffsetStart=新的DateTimeOffset(start,curTimeZone.GetUtcOffset(start));
var dateOffsetEnd=新的DateTimeOffset(end,curTimeZone.GetUtcOffset(end));
var startTimeString=dateOffsetStart.ToString(“o”);
var endTimeString=dateOffsetEnd.ToString(“o”);
var evt=新事件
{
摘要=摘要,
位置=位置,
描述=描述,
Start=new EventDateTime{DateTime=startTimeString},
End=neweventdatetime{DateTime=endTimeString},
与会者=与会者,
};
var insert=service.Events.insert(evt,“primary”).Fetch();
如果(插入!=null)
{
MessageBox.Show(@“插入日历项”);
}
}
捕获(例外情况除外)
{
MessageBox.Show(例如Message);
返回;
}
}
要使用它,请执行以下操作:
var ea = new EventAttendee
{
DisplayName = "testname",
Email = "email@gmail.com",
Organizer = false,
Resource = false
};
var ea2 = new EventAttendee
{
DisplayName = "testname2",
Email = "email2@gmail.com",
Organizer = true,
Resource = false
};
var list = new List<EventAttendee> { ea, ea2 };
var now = DateTime.Now;
var t30 = now + TimeSpan.FromMinutes(30);
Program.GCalAdd("test event", "test location", "test description", now, t30, list);
var ea=新事件与会者
{
DisplayName=“testname”,
电子邮件=”email@gmail.com",
组织者=假,
资源=错误
};
var ea2=新的EventAttendee
{
DisplayName=“testname2”,
电子邮件=”email2@gmail.com",
组织者=真,
资源=错误
};
var list=新列表{ea,ea2};
var now=DateTime.now;
var t30=现在+时间跨度从分钟(30);
GCalAdd(“测试事件”、“测试位置”、“测试描述”,现在,t30,列表);