google-api-nodejs-client
google-api-nodejs-client copied to clipboard
How we can make event on google calander in such way that anyone with link can join.
How we can make event on google calander in such way that anyone with link can join.Now when we create calander event via GUI we have :
We can select Meeting access type as OPEN and anyone with meet link can join but how we can do via our googleapis pkg?anyone plz.
I am using this code snippet to create google calander event.
const { JWT } = require("google-auth-library");
const { calendar_v3 } = require("@googleapis/calendar");
const Calander = calendar_v3.Calendar;
const credential = require("./service-account.json");
const createEvent = async () => {
try {
const requestId = Math.floor(Math.random() * 100000);
const auth = new JWT(
credential.client_email,
null,
credential.private_key,
["https://www.googleapis.com/auth/calendar"],
"[email protected]",
credential.client_id
);
const calendar = new Calander({ version: "v3", auth });
const event = {
summary: "Appointment",
description: "Meeting with client",
start: {
dateTime: "2023-08-01T12:00:00",
timeZone: "Asia/Karachi",
},
end: {
dateTime: "2023-08-03T12:30:00",
timeZone: "Asia/Karachi",
},
anyoneCanAddSelf: true,
conferenceData: {
createRequest: {
requestId,
conferenceSolutionKey: {
type: "hangoutsMeet",
},
},
},
attendees: [],
};
const response = await calendar.events.insert({
calendarId: "primary",
resource: event,
conferenceDataVersion: 1,
});
console.log("Google Meet link: %s", response.data.hangoutLink);
return;
} catch (error) {
console.log(error);
}
};
@ddelgrosso1 @sofisl @JustinBeckwith
@MOIN-AKHTAR l: Please don't tag unrelated users. Be patient, and I'm sure you'll get a reply soon.
@jskeet I apologies for that.
`const express = require("express"); const router = express.Router(); const { ErrorResponse } = require("../utils/errorResponse.js"); const { google } = require("googleapis"); const serviceAccount = require("../serviceAccount.json")
router.post("/generate_meeting_link", async (req, res, next) => { try { const { dateTime } = req.body;
if (!dateTime) throw new Error("dateTime is required");
const startTime = new Date(dateTime)
const jwtClient = new google.auth.JWT({
email: serviceAccount.client_email,
key: serviceAccount.private_key,
scopes: ["https://www.googleapis.com/auth/calendar"]
})
const calendar = google.calendar({ version: 'v3', auth: jwtClient });
const data = await calendar.events.insert({
calendarId: serviceAccount.calendar_id,
requestBody: {
summary: 'Appointment scheduling',
description: 'Checking if I can create google meet link',
location: 'Virtual Meeting',
start: {
dateTime: startTime.toISOString(),
timeZone: 'GMT+05:30',
},
end: {
dateTime: new Date(startTime.setHours(startTime.getHours() + 1)).toISOString(),
timeZone: 'GMT+05:30',
},
conferenceData: {
createRequest: {
requestId: crypto.randomUUID(),
conferenceSolutionKey: { type: "hangoutsMeet" }
}
}
}
})
res.status(200).json(data.data)
} catch (err) {
next(new ErrorResponse(err.message, 500));
}
})
module.exports = router; ` I this don't create google meet link
@MOIN-AKHTAR I'm looking for an answer to this too, still. Did you find out how to do it?