Nota: Después de añadir nuevos nodos en la cadena de Latenode de un proyecto, para acceder a los datos de los nodos anteriores, debe ejecutar el proyecto y llamar a la cadena con todos los datos necesarios. Los datos sustituidos del nodo "JavaScript" al nodo "HTTP request" a menudo deben escaparse con comillas dobles. Los objetos o matrices complejos recibidos como respuesta a una solicitud desde servidores remotos y que llegan como cadena deben procesarse con JSON.parse para poder trabajar con ellos en los nodos "JavaScript" con el tipo de datos correspondiente.
Primero, asegúrese de obtener el token según las instrucciones de nuestro artículo; solo que en la lista de servidores seleccione "Google Calendar Api v..." y en el ámbito "www.googleapis.com/auth/calendar ";
A continuación, cree un nuevo calendario en Calendar; por ejemplo, podemos llamarlo "LatenodeTest";
Preparemos una solicitud para nuestro cliente REST;
REQ01: Solicitud para el cliente REST
curl --request POST --url 'https://webhook.latenode.com/00/dev/some_hash'
--header 'Accept: application/json'
--header 'Content-Type: application/x-www-form-urlencoded'
--data 'token=[Replace the square brackets with the content of your token]'
--data 'summary=Event created from Latenode'
--data 'location=https://app.latenode.com'
--data 'description=Adding an event to the calendar from Latenode using the API'
--data 'startDate=2022-12-21T09:00:00-07:00 Change to the nearest date'
--data 'startTZ=Europe/Moscow'
--data 'endDate=2022-12-22T09:00:00-07:00 Change to the nearest date'
--data 'endTZ=Europe/Moscow'
Sustituyamos nuestro token obtenido en el paso inicial;
![]()
Cambie la fecha de inicio "startDate" y la fecha de finalización "endDate" por las más próximas; también puede cambiar la zona horaria si startTZ y endTZ no son adecuados;
![]()
Cree un nodo "Webhook": "+ Add node" => "Http" => "Webhook";
Copie la dirección del Webhook y péguela en la barra de direcciones del cliente REST;
![]()
![]()
A continuación, añadamos otro nodo "JavaScrtipt": "+ Add Node" => "Code" => "JavaScrtipt";
Guarde los cambios;
Conecte los nodos;
Iniciemos y llamemos a la cadena para transferir datos entre los nodos;
Copiemos el contenido en él:
const apiURL = "https://www.googleapis.com/calendar/v3";
const bToken = "Bearer " + data["{{1.body.token}}"];
const event = {
'summary': data["{{1.body.summary}}"],
'location': data["{{1.body.location}}"],
'description': data["{{1.body.description}}"],
'start': {
'dateTime': data["{{1.body.startDate}}"],
'timeZone': data["{{1.body.startTZ}}"]
},
'end': {
'dateTime': data["{{1.body.endDate}}"],
'timeZone': data["{{1.body.endTZ}}"]
},
'reminders': {
'useDefault': false,
'overrides': [
{'method': 'email', 'minutes': 24 * 60},
{'method': 'popup', 'minutes': 10}
]
}
};
return {
apiURL, bToken, event
}
Compruebe en todas las construcciones como "data["{{1.body.name}}"]" que el número de Webhook corresponda al nodo del que obtenemos los datos; de lo contrario, sustitúyalo por el necesario (recuerde que 1 es el número del nodo escrito justo debajo del nombre del nodo, encima del tipo de nodo; después, si se trata de una consulta, se selecciona el campo del objeto responsable del tipo de datos enviados/recibidos: body para formularios o query para parámetros de consulta);
![]()
Guarde;
Creemos el nodo "HTTP request": "+ Add node" => "Http" => "HTTP request";
Guarde los cambios;
Conecte los nodos;
Iniciemos y llamemos a la cadena para transferir datos entre los nodos;
En el campo "Url", al principio sustituyamos la variable "apiURL" de "JavaScrtipt" y, después, especifiquemos: /users/me/calendarList ;
Asegúrese de que el método predeterminado sea "Get";
Añadamos el encabezado "Autorization" y, en su valor, la variable "bToken" de "JavaScrtipt";
Haga clic en "Save";
![]()
Creemos otro nodo "JavaScrtipt": "+ Add Node" => "Code" => "JavaScrtipt";
Guarde los cambios;
Conecte los nodos;
Iniciemos y llamemos a la cadena para transferir datos entre los nodos;
Copiemos el contenido en él para encontrar el calendario deseado en la lista obtenida de la consulta anterior:
const tempCalendarsList = JSON.parse(data["{{3.body.items}}"]); // Make sure the information is from the correct node from the calendar list query
const targetCalendar = tempCalendarsList.find((calendar) => calendar.summary === "LatenodeTest"); // Here instead of "LatenodeTest" you can write the name of the desired calendar
return {
targetCalendar
}
Compruebe los datos especificados en los comentarios del código;
Guarde
Creemos el nodo "HTTP request": "+ Add node" => "Http" => "HTTP request";
Guarde los cambios;
Conecte los nodos;
Iniciemos y llamemos a la cadena para transferir datos entre los nodos;
En el campo "Url", al principio sustituimos la variable "apiURL" del primer nodo "JavaScrtipt"; después añadimos: /calendars/, luego sustituimos la variable "targetCalendar.id" de "JavaScrtipt" con el procesamiento de la lista de calendarios y, al final: /events;
Cambie el método al método "Post";
En el cuerpo de "raw", sustituyamos la variable que contiene el objeto con el nuevo evento del primero de los primeros nodos "JavaScrtipt";
Añadamos el encabezado "Autorization" y, en su valor, la variable "bToken" del primer nodo "JavaScrtipt";
Haga clic en "Save";
![]()
Conecte los nodos;
Iniciemos y llamemos a la cadena para transferir datos entre los nodos;
Después de eso, debería aparecer un nuevo evento en el calendario;
![]()
Al final, toda la cadena en Latenode tendrá este aspecto:
![]()
Nos vemos en futuros artículos;
Enlaces útiles:
Básico:
Latenode
Google OAuth 2.0 Playground
Información:
Google Calendar API
Google Calendar API CalendarList: lista
Google Calendar API Event: insertar


