Workflow: Code GoogleCalendar Create

Workflow Details

Download Workflow
{
    "meta": {
        "instanceId": "3c58c896c9089c8fb4d7f2b069bf3119193f239a1f538829758e2f4d6b5f5b24"
    },
    "nodes": [
        {
            "id": "9aa9fa6c-5ccb-4f2b-b6a8-2b91f4a58355",
            "name": "Setup",
            "type": "n8n-nodes-base.set",
            "position": [
                420,
                680
            ],
            "parameters": {
                "fields": {
                    "values": [
                        {
                            "name": "apiKey",
                            "stringValue": "32aa914c947342169c4998b6701a77e0"
                        },
                        {
                            "name": "newsAge",
                            "type": "numberValue",
                            "numberValue": "10"
                        },
                        {
                            "name": "maxArticles",
                            "stringValue": "20"
                        },
                        {
                            "name": "emails"
                        }
                    ]
                },
                "options": []
            },
            "typeVersion": 3.20000000000000017763568394002504646778106689453125
        },
        {
            "id": "6f471217-b69b-4f67-981d-c7c1e2d710b6",
            "name": "Extract company name",
            "type": "n8n-nodes-base.set",
            "position": [
                1100,
                480
            ],
            "parameters": {
                "fields": {
                    "values": [
                        {
                            "name": "companyName",
                            "stringValue": "={{ $json.summary.toLowerCase().replace('meeting with', '').replace('call with', '').trim() }}"
                        }
                    ]
                },
                "options": []
            },
            "typeVersion": 3.20000000000000017763568394002504646778106689453125
        },
        {
            "id": "9bb5adfa-5a36-453e-ad8d-59229ca2f1ab",
            "name": "Sticky Note",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                200,
                320
            ],
            "parameters": {
                "color": 4,
                "width": 436,
                "height": 192,
                "content": "### Latest company news before a call\n\nThis workflow will send you a list of latest news about a company for every meeting in your calendar each day, keeping you up to date with your leads and meeting partners.\n"
            },
            "typeVersion": 1
        },
        {
            "id": "ddfa92e0-ff37-4733-9002-65fe21989d8a",
            "name": "Every morning @ 7",
            "type": "n8n-nodes-base.scheduleTrigger",
            "position": [
                200,
                680
            ],
            "parameters": {
                "rule": {
                    "interval": [
                        {
                            "triggerAtHour": 7
                        }
                    ]
                }
            },
            "typeVersion": 1.100000000000000088817841970012523233890533447265625
        },
        {
            "id": "b71c3683-6077-41b4-ab23-66ee22f64532",
            "name": "Filter meetings",
            "type": "n8n-nodes-base.if",
            "position": [
                840,
                680
            ],
            "parameters": {
                "options": [],
                "conditions": {
                    "options": {
                        "leftValue": "",
                        "caseSensitive": true,
                        "typeValidation": "strict"
                    },
                    "combinator": "or",
                    "conditions": [
                        {
                            "id": "bcfb06b1-d365-43a8-9802-869529baca98",
                            "operator": {
                                "type": "string",
                                "operation": "startsWith"
                            },
                            "leftValue": "={{ $json.summary.toLowerCase() }}",
                            "rightValue": "call with"
                        },
                        {
                            "id": "4ea43ccf-d586-4985-87db-fc1e9f734351",
                            "operator": {
                                "type": "string",
                                "operation": "startsWith"
                            },
                            "leftValue": "={{ $json.summary.toLowerCase() }}",
                            "rightValue": "meeting with"
                        }
                    ]
                }
            },
            "typeVersion": 2
        },
        {
            "id": "34c4241e-e29a-4d9a-b8a8-130b9f19383f",
            "name": "Get latest news",
            "type": "n8n-nodes-base.httpRequest",
            "position": [
                1300,
                480
            ],
            "parameters": {
                "url": "=https:\/\/newsapi.org\/v2\/everything?apiKey={{ $('Setup').first().json.apiKey }}&q={{ $json.companyName }}&from={{ DateTime.now().minus({ days: $('Setup').first().json.newsAge }).toFormat('yyyy-MM-dd') }}&sortBy=publishedAt&language=en&pageSize={{ $('Setup').first().json.maxArticles }}&searchIn=title",
                "options": []
            },
            "typeVersion": 4.0999999999999996447286321199499070644378662109375
        },
        {
            "id": "51059db7-5fec-4287-bf3f-a6a4e76ac5a4",
            "name": "Format for email",
            "type": "n8n-nodes-base.code",
            "position": [
                1500,
                480
            ],
            "parameters": {
                "mode": "runOnceForEachItem",
                "jsCode": "let html = `<table style=\"width: 100%\">`;\nhtml += '<\/table>';\n\nfor(article of $input.item.json.articles) {\n  console.log(article)\n  html += `\n    <tr>\n      <td style=\"display: flex; background-color: #f2f4f8; font-family: sans-serif; padding: 0.3em 0.5em\">\n        <div style=\"padding: 1em\">\n          <a style=\"display: block; margin-bottom: 10px; font-size: 1.2em\" href=\"${article.url}\">${article.title}<\/a>\n          <i>\n            ${article.description ? article.description : article.content}\n          <\/i>\n          <div style=\"margin-top: 1em\">\n            ${ article.source?.name ? '<b>Source:<\/b> ' + article.source?.name : '' }\n          <\/div>\n        <\/div>\n      <\/td>\n    <\/tr>\n  `\n}\nreturn { \"html\": html };"
            },
            "typeVersion": 2
        },
        {
            "id": "9b4351a8-edf9-49ef-829e-6998cb1eea2c",
            "name": "Send news",
            "type": "n8n-nodes-base.gmail",
            "position": [
                1700,
                480
            ],
            "parameters": {
                "sendTo": "={{ $('Setup').first().json.emails }}",
                "message": "={{ $json.html }}",
                "options": [],
                "subject": "=Latest news for '{{ $('Extract company name').item.json.summary }}'"
            },
            "credentials": {
                "gmailOAuth2": {
                    "id": "10",
                    "name": "mrdosija@gmail.com"
                }
            },
            "typeVersion": 2.100000000000000088817841970012523233890533447265625
        },
        {
            "id": "182504b0-3cf6-4afe-ba93-1d2bf7a02fa3",
            "name": "Sticky Note1",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                360,
                640
            ],
            "parameters": {
                "height": 511.49998450779497716212063096463680267333984375,
                "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n### Configure your workflow here\n1. `apiKey` - Your API key for [News API](https:\/\/newsapi.org)\n2. `newsAge` - How old should news be, in days\n3. `maxArticles` - Number of articles that will be sent, max 100\n4. `emails`- List of email addresses that should receive the news, separated by commas"
            },
            "typeVersion": 1
        },
        {
            "id": "604bc73b-f805-40df-baa0-eb3de4c515f3",
            "name": "Sticky Note2",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                820,
                660
            ],
            "parameters": {
                "width": 231.52514020446352560611558146774768829345703125,
                "height": 275.2500697149263260143925435841083526611328125,
                "content": "\n\n\n\n\n\n\n\n\n\n\n\n\nThis will get all meetings that start with *Meeting with* or *Call with* but feel free to update the filter to suit your needs."
            },
            "typeVersion": 1
        },
        {
            "id": "318b2bdc-712f-42a8-b224-8f0dc2c9c4e5",
            "name": "No meetings today",
            "type": "n8n-nodes-base.noOp",
            "position": [
                1700,
                700
            ],
            "parameters": [],
            "typeVersion": 1
        },
        {
            "id": "96b075cd-5c16-453e-93a6-348b22b704bb",
            "name": "Get meetings for today",
            "type": "n8n-nodes-base.googleCalendar",
            "position": [
                660,
                680
            ],
            "parameters": {
                "options": {
                    "timeMax": "={{ $today.plus({ days: 1 }) }}",
                    "timeMin": "={{ $today }}",
                    "singleEvents": true
                },
                "calendar": {
                    "__rl": true,
                    "mode": "list",
                    "value": "milorad.filipovic19@gmail.com",
                    "cachedResultName": "milorad.filipovic19@gmail.com"
                },
                "operation": "getAll"
            },
            "credentials": {
                "googleCalendarOAuth2Api": {
                    "id": "22",
                    "name": "Google Calendar account"
                }
            },
            "typeVersion": 1
        }
    ],
    "pinData": [],
    "connections": {
        "Setup": {
            "main": [
                [
                    {
                        "node": "Get meetings for today",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Filter meetings": {
            "main": [
                [
                    {
                        "node": "Extract company name",
                        "type": "main",
                        "index": 0
                    }
                ],
                [
                    {
                        "node": "No meetings today",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get latest news": {
            "main": [
                [
                    {
                        "node": "Format for email",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Format for email": {
            "main": [
                [
                    {
                        "node": "Send news",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Every morning @ 7": {
            "main": [
                [
                    {
                        "node": "Setup",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Extract company name": {
            "main": [
                [
                    {
                        "node": "Get latest news",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get meetings for today": {
            "main": [
                [
                    {
                        "node": "Filter meetings",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
Back to Workflows

Related Workflows

Building RAG Chatbot for Movie Recommendations with Qdrant and Open AI
View
Entra User to Zammad User Sync
View
Assign values to variables using the Set node
View
CoinMarketCap_Crypto_Agent_Tool
View
HTTP Medium Automation Webhook
View
Automated Resume Review System Using OpenAI + Google Sheets
View
HTTP Schedule Automation Webhook
View
[2/2] KNN classifier (lands dataset)
View
Chat with GitHub OpenAPI Specification using RAG (Pinecone and OpenAI)
View
Translate questions about e-mails into SQL queries and run them
View