for each user id and slack and search slack
Configured with Agent, Filter, Google Calendar, OpenAI Chat Model, and additional nodes. Review the connections and setup before adapting this template.
Node categories in this workflow
- Transform
- Messaging
- Code
- Routing
- Integration
- AI & models
- Trigger
Icons describe general node roles, inferred from node types. Inspect the parameters for the configured action.
Drag to pan; use + and − to zoom. Reconstructed from the exported node positions; nothing runs here. Dashed lines represent non-main connections. Full node names and notes appear below.
How it works
The exported workflow contains the following configured nodes. Their connections are shown above; inspect the JSON for the complete logic, expressions, and external actions.
| Node | Category | Type | Operation |
|---|---|---|---|
| For Each User ID... | Transform | Split Out | See node parameters |
| Get User | Messaging | Slack | user |
| Search for Invite Requests | Messaging | Slack | search |
| Get Existing Invite EventID | Code | Code | See node parameters |
| Should Create Event? | Routing | If | See node parameters |
| Create Event | Integration | Google Calendar | See node parameters |
| Get Invite Reactions | Messaging | Slack | reaction / get |
| Get Invite Replies | Messaging | Slack | channel / replies |
| Extract Invite Reactions | Transform | Split Out | See node parameters |
| Get Old EventId | Transform | Edit Fields | See node parameters |
| Add Attendee to Event | Integration | Google Calendar | update |
| Get Event Details | Integration | Google Calendar | get |
| Is Attending | Routing | Filter | See node parameters |
| Get User Email | Transform | Edit Fields | See node parameters |
| Should Add Attendee? | Routing | If | See node parameters |
| Structured Output Parser | Transform | Output Parser Structured | See node parameters |
| SerpAPI | Integration | Tool Serp Api | See node parameters |
| OpenAI Chat Model | AI & models | OpenAI Chat Model | See node parameters |
| Wikipedia | Integration | Tool Wikipedia | See node parameters |
| Schedule Trigger | Trigger | Schedule Trigger | See node parameters |
| Reply Invite with EventId | Messaging | Slack | See node parameters |
| Calendar Event Booking Agent | AI & models | Agent | See node parameters |
Setup
- Download the JSON and import it into an isolated n8n instance. Leave the workflow inactive.
- Connect your own credentials through n8n’s credential store. Replace
REPLACE_WITH_*values with your resource identifiers. - Inspect API destinations, Code nodes, database queries, file paths, and outbound actions.
- Run with synthetic data and harmless destinations. Enable triggers only after checking the actual outputs.
Requirements
An n8n instance with the listed node types and compatible versions. Service-connected workflows may require accounts, credentials, or paid APIs.
Credential types declared in the source
None declared. HTTP requests and Code nodes may still need configuration.
Workflow notes
1. Pull Messages from Slack Channel
1. Pull Messages from Slack Channel
Read more about using the Slack
Using the Slack Node, we're able to filter all top level messages marked with the calendar emoji signifying a request that a calendar event is created. Be sure to configure your slack app with all the required permissions for your workspace.
2. Decide Whether a new Event Should Be Created
2. Decide Whether a new Event Should Be Created
Read more about using the Code
For more complex workflows, sometimes you may need to gather and prepare variables before the rest of the workflow runs. The Code node is one such tool to achieve this if you're familiar with code but its not the only way.
This workflow splits based on whether the event needs to be created. When it already exists, attendees are updated for the existing event instead.
3. Using AI Agent to Automate Event Creation
3. Using AI Agent to Automate Event Creation
AI Agents are generally described as self-governing LLMs with access to various "tools" which extend their knowledge and/or capability. In this demo, we've instructed the AI to do the following:
- Generate a nice Event title.
- Parse and assume dates and times from user message.
- Parse the address and website of location/venue and to use the "tools" if it cannot get this data from the message or its own knowledge.
5. Get Emoji Reactions to Track Attendees
5. Get Emoji Reactions to Track Attendees
When the event exists, we can instead start adding other team members who've reacted to the message with the ✅ emoji. In this part of the workflow, there's a bit of logic to compare the number of people who've reacted to the attendee list of the actual event. This is necessary to avoid unwanted notifications which could get quite annoying!
6. Add Attendees to Existing Calendar Event
6. Add Attendees to Existing Calendar Event
Read more about using Google Calendar
n8n nodes make it easy to work with Google Calendar by having great converage on the Google API. Most common actions can be found in the dropdown list - there is no need to learn the code itself!
Try It Out!
Try It Out!
This workflow does the following
- Monitors a slack channel for event messages tagged with the Calendar (📅) emoji.
- Checks if a calender event exists otherwise uses ChatGPT to create the calendar event; AI will add event title, description and location details.
- If calendar event exists, checks for channel users who have reacted with checkmark (✅) emoji.
- These users are automatically added as attendees to the event.
Need Help?
Join the Discord or ask in the Forum!
Happy Hacking!
4. Create Event and Send Reply Message
4. Create Event and Send Reply Message
Read more about using Google Calendar
Once we have these details, we create the invite and reply to original user message acknowleging the event was created successfully. Note, we also use this reply to avoid duplicates!
Part 1: Creating the Event
Part 1: Creating the Event
This branch runs when we have a new Event.
Part 2: Adding Attendees to Event
Part 2: Adding Attendees to Event
This branch runs if the event already exists.
Sticky Note9
🚨Required
- Set the channel to monitor here. Also, make sure to use the user access token in your credential
Sticky Note10
🚨Required
- Set the Google Calendar to use here.
for each user id and slack and search slack
for each user id and slack and search slack
Purpose and structure
This folder contains the for each user id and slack and search slack workflow. Its executable nodes use agent, code, filter, googleCalendar, if, lmChatOpenAi, outputParserStructured, scheduleTrigger, set, slack, splitOut, toolSerpApi, toolWikipedia. The table and connection map below are derived from the JSON, not an inferred guarantee of behavior.
Setup
Import inactive. Configure your own credentials and replace REPLACE_WITH_* values. Review external destinations and Code nodes before running.
Entry points
Schedule Trigger
Verification
Sanitized source candidate; not runtime-tested. This overview is generated from node metadata. Read the folder README for the connection map, credential types, and license.
Attribution
https://github.com/Zie619/n8n-workflows/blob/94007c1445d9258a7da116646b79473e7c7c3282/workflows/Splitout/0528_Splitout_GoogleCalendar_Create_Scheduled.json MIT; preserve source notices.