Tips for using the Google Calendar API with C#
See my previous post: Interfacing with the Google Calendar API using C#
Tip #1 – Google Calendar API is set to ReadOnly in the example
I needed to edit, not just read.
Change line 23 in the code above:
//static string[] Scopes = { CalendarService.Scope.CalendarReadonly }; // I needed more than read only
static string[] Scopes = { CalendarService.Scope.Calendar };
Tip #2 – Your App’s Security Permission to use the Google Calendar API
My application stopped working. I had to revoke my projects permission and then run the code again so I was prompted to accept permission. Sometimes I had to re-run the code twice to get the prompt.
Go here to revoke your permissions: https://security.google.com/settings/security/permissions
Tip #3 – How to find a Calendar by name
You can get a list of Calendars. The Summary property is where the Calendar title is stored.
// . . . Authentication here
// Create Calendar Service.
var service = new CalendarService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = ApplicationName,
});
var list = service.CalendarList.List().Execute();
var myCalendar = list.Items.SingleOrDefault(c => c.Summary == "My Calendar Name");
// . . . do stuff with your calendar
Tip #4 – How to add an event
I thought it was weird that the example didn’t actually have you add an event. To add an event:
- First read Tip #1.
- Use this code:
var list = service.CalendarList.List().Execute();
var myCalendar = list.Items.SingleOrDefault(c => c.Summary == "My Calendar");
if (myCalendar != null)
{
Event calEvent = new Event
{
Summary = "Awesome Party",
Location = "My House",
Start = new EventDateTime
{
DateTime = new DateTime(2015, 5, 20, 19, 00, 0)
},
End = new EventDateTime
{
DateTime = new DateTime(2015, 5, 20, 23, 59, 0)
},
Recurrence = new List<string>()
};
var newEventRequest = service.Events.Insert(calEvent, myCalendar.Id);
var eventResult = newEventRequest.Execute();
}


I follow steps provided by you but i get exception on
newEventRequest.Execute();
Below is the exception
Google.Apis.Requests.RequestError
Insufficient Permission [403]
Errors [
Message[Insufficient Permission] Location[ - ] Reason[insufficientPermissions] Domain[global]
]