I would like to use a google calendar, if I choose the calendar ID not as primary but with the specified one, I get an error message in line 46 (const eventsArray = res.data.calendars.calID.busy). The Error message looks like this (node:49993) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'calendar' of undefined. So basicly, i believe, it can't read the calender ID, can enyone help me to find my fault?
const { google } = require('googleapis');
const { OAuth2 } = google.auth;
const oAuth2Client = new OAuth2(
'id_works_with_primary_calender',
'key_works_with_primary_calender'
)
oAuth2Client.setCredentials({
refresh_token:
'works_with_primary',
})
const calendar = google.calendar( { version: 'v3', auth: oAuth2Client } );
const eventStartTime = new Date()
eventStartTime.setDate(eventStartTime.getDay() + 2)
const eventEndTime = new Date()
eventEndTime.setDate(eventEndTime.getDay() + 2)
eventEndTime.setMinutes(eventEndTime.getMinutes() + 45)
const event = {
summary: 'Meet with David',
location: '295 California St, San Francisco, CA 94111',
description: 'Meeting with David to talk about the new client Project and drink some stuff',
colorId: 1,
start: {
dateTime: eventStartTime,
timeZone: 'Europe/Zurich',
},
end: {
dateTime: eventEndTime,
timeZone: 'Europe/Zurich',
},
}
calendar.freebusy.query( {
resource: {
timeMin: eventStartTime,
timeMax: eventEndTime,
timeZone: 'Europe/Zurich',
items: [ { id: 'gd3q30fhkprf0ubsk3pnqkc64k@group.calendar.google.com' } ],
},
}, (err, res) => {
if (err) return console.error('Free Busy Query Error: ', err)
//Here is the error
const eventsArray = res.data.calendars.gd3q30fhkprf0ubsk3pnqkc64k@group.calendar.google.com.busy
if(eventsArray.length === 0)
return calendar.events.insert( {
calendarId: 'gd3q30fhkprf0ubsk3pnqkc64k@group.calendar.google.com',
resource: event,
},
err => {
if (err) return console.error('Calender Event Creation: ' + err)
return console.log('Event Created: ' + event)
})
return console.log("I'm Busy")
})