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,列表);