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

SQL agent with memory
View
Process
View
Manual Automate Triggered
View
Stickynote Send Triggered
View
Respondtowebhook Webhook Automate Webhook
View
Extract text from PDF and image using Vertex AI (Gemini) into CSV
View
Noop GitHub Automate Triggered
View
Wait Code Send Scheduled
View
Create, update and get records in Quick Base
View
Filter Summarize Send Scheduled
View