Observação: após adicionar novos nós à cadeia da Latenode em um projeto, para acessar os dados dos nós anteriores, você precisa executar o projeto e chamar a cadeia com todos os dados necessários. Os dados substituídos do nó "JavaScript" para o nó "HTTP request" frequentemente precisam ser escapados com aspas duplas. Objetos ou matrizes complexos recebidos como resposta a solicitações de servidores remotos e enviados como string devem ser processados com JSON.parse para que você possa utilizá-los em nós "JavaScript" com o tipo de dados correspondente.
Primeiro, certifique-se de obter o token de acordo com as instruções do nosso artigo. Na lista de servidores, selecione "Google Calendar Api v..." e, no escopo, selecione "www.googleapis.com/auth/calendar ";
Em seguida, crie um novo calendário no Calendar. Você pode chamá-lo, por exemplo, de "LatenodeTest";
Vamos preparar uma solicitação para nosso cliente REST;
REQ01: solicitação para o 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=[Substitua os colchetes pelo conteúdo do seu token]'
--data 'summary=Evento criado com a Latenode'
--data 'location=https://app.latenode.com'
--data 'description=Adição de um evento ao calendário a partir da Latenode usando a API'
--data 'startDate=2022-12-21T09:00:00-07:00 Altere para a data mais próxima'
--data 'startTZ=Europe/Moscow'
--data 'endDate=2022-12-22T09:00:00-07:00 Altere para a data mais próxima'
--data 'endTZ=Europe/Moscow'
Vamos substituir pelo token obtido na etapa inicial;
![]()
Altere a data de início "startDate" e a data de término "endDate" para datas mais próximas. Você também pode alterar o fuso horário caso startTZ e endTZ não sejam adequados;
![]()
Crie um nó "Webhook": "+ Add node" => "Http" => "Webhook";
Copie o endereço do Webhook e cole-o na barra de endereço do cliente REST;
![]()
![]()
Em seguida, adicione outro nó "JavaScript": "+ Add Node" => "Code" => "JavaScript";
Salve as alterações;
Conecte os nós;
Vamos iniciar e chamar a cadeia para transferir dados entre os nós;
Copie o conteúdo abaixo para ele:
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
}
Verifique em todas as construções como "data["{{1.body.name}}"]" se o número do Webhook corresponde ao nó do qual estamos obtendo os dados. Caso contrário, substitua-o pelo número necessário. Lembrando que 1 é o número do nó, exibido logo abaixo do nome do nó e acima do tipo de nó. Em seguida, se for uma consulta, selecione o campo do objeto responsável pelo tipo de dados enviados/recebidos: body para formulários ou query para parâmetros de consulta;
![]()
Salve;
Vamos criar o nó "HTTP request": "+ Add node" => "Http" => "HTTP request";
Salve as alterações;
Conecte os nós;
Vamos iniciar e chamar a cadeia para transferir dados entre os nós;
No campo "Url", no início, substitua pela variável "apiURL" do nó "JavaScript" e, depois dela, informe: /users/me/calendarList ;
Certifique-se de que o método padrão seja "Get";
Adicione o cabeçalho "Autorization" e, no valor dele, a variável "bToken" do nó "JavaScript";
Clique em "Save";
![]()
Vamos criar outro nó "JavaScript": "+ Add Node" => "Code" => "JavaScript";
Salve as alterações;
Conecte os nós;
Vamos iniciar e chamar a cadeia para transferir dados entre os nós;
Copie o conteúdo abaixo para ele para encontrar o calendário desejado na lista obtida pela 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
}
Verifique os dados especificados nos comentários do código;
Salve;
Vamos criar o nó "HTTP request": "+ Add node" => "Http" => "HTTP request";
Salve as alterações;
Conecte os nós;
Vamos iniciar e chamar a cadeia para transferir dados entre os nós;
No campo "Url", no início, substitua pela variável "apiURL" do primeiro nó "JavaScript". Depois dela, adicione: /calendars/, em seguida substitua pela variável "targetCalendar.id" do nó "JavaScript" que processa a lista de calendários e, ao final, adicione: /events;
Altere o método para "Post";
No corpo em "raw", substitua pela variável que contém o objeto com o novo evento do primeiro nó "JavaScript";
Adicione o cabeçalho "Autorization" e, no valor dele, a variável "bToken" do primeiro nó "JavaScript";
Clique em "Save";
![]()
Conecte os nós;
Vamos iniciar e chamar a cadeia para transferir dados entre os nós;
Depois disso, um novo evento deverá aparecer no calendário;
![]()
Ao final, toda a cadeia na Latenode ficará assim:
![]()
Até os próximos artigos;
Links úteis:
Básico:
Latenode
Google OAuth 2.0 Playground
Informações:
Google Calendar API
Google Calendar API CalendarList: list
Google Calendar API Event: insert


