title: google calendar event insert .NET c#
body: <p>When I execute the following code:</p>
  
  <pre><code>    public static Event createDashyboardCalendarEvent()
      {
          static string[] Scopes = { CalendarService.Scope.CalendarReadonly };
          static string ApplicationName = "Outlook Google Syncher";
  
          Event createdEvent = null;
  
          try
          {
              UserCredential credential;
  
              using (var stream = new FileStream( "client_secret.json", FileMode.Open, FileAccess.Read ))
              {
                  string credPath = System.Environment.GetFolderPath( System.Environment.SpecialFolder.Personal );
                  credPath = Path.Combine( credPath, ".credentials/calendar-dotnet-quickstart.json" );
                  Console.WriteLine( "credPath:\"{0}\"", credPath );
  
                  credential = GoogleWebAuthorizationBroker.AuthorizeAsync( GoogleClientSecrets.Load( stream ).Secrets, Scopes, "user",
                      CancellationToken.None, new FileDataStore( credPath, true ) ).Result;
              }
              // Create Google Calendar API service.
              var service = new CalendarService( new BaseClientService.Initializer( )
              {
                  HttpClientInitializer = credential,
                  ApplicationName = ApplicationName,
              } );
              Event myEvent = new Event
              {
                  Summary = "Test appointment",
                  Location = "Here",
                  Start = new EventDateTime( )
                  {
                      DateTime = new DateTime( 2016, 3, 9, 10, 0, 0 ),
                      TimeZone = "Australia/Brisbane"
                  },
                  End = new EventDateTime( )
                  {
                      DateTime = new DateTime( 2016, 3, 9, 10, 30, 0 ),
                      TimeZone = "Australia/Brisbane"
                  },
                  Recurrence = new String[]
                  {
                  "RRULE:FREQ=DAILY;COUNT=2"
                  }
              };
  
              String calendarId = "primary";
              Console.WriteLine( "calling service.Events.Insert( newEvent, calendarId )" );
              EventsResource.InsertRequest request = service.Events.Insert( myEvent, calendarId );
              createdEvent = request.Execute( );
              Console.WriteLine( "Event created: {0}", createdEvent.HtmlLink );
  
          }
          catch (Exception ex)
          {
              Console.WriteLine( "Exception:{0}", ex );
  
              Console.WriteLine( "returning NULL" );
              return null;
          }
  
  
          Console.WriteLine( "Success. Returning" );
          return createdEvent;
      }
  }
  </code></pre>
  
  <p>I get an exception:</p>
  
  <pre><code>Exception:The service calendar has thrown an exception: Google.GoogleApiException: Google.Apis.Requests.RequestError
  Insufficient Permission [403]
  Errors [
      Message[Insufficient Permission] Location[ - ] Reason[insufficientPermissions] Domain[global]
  ]
  
     at Google.Apis.Requests.ClientServiceRequest`1.Execute() in .....
  </code></pre>
  
  <p>What is missing? I can execute the service service.Events.List without any problems.</p>
  
  <p>Is there a place one can see why a particular exception was thrown?</p>
  
  <p>Thank you</p>