← All N8N workflows
AI & researchAgentCodeFilterGoogle CalendarIf

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.

Workflow preview
TransformFor Each User ID...Split OutMessagingGet UserSlackMessagingSearch for InviteRequestsSlackCodeGet Existing InviteEventIDCodeRoutingShould Create Event?IfIntegrationCreate EventGoogle CalendarMessagingGet Invite ReactionsSlackMessagingGet Invite RepliesSlackTransformExtract InviteReactionsSplit OutTransformGet Old EventIdEdit FieldsIntegrationAdd Attendee to EventGoogle CalendarIntegrationGet Event DetailsGoogle CalendarRoutingIs AttendingFilterTransformGet User EmailEdit FieldsRoutingShould Add Attendee?IfTransformStructured OutputParserOutput Parser StructuredIntegrationSerpAPITool Serp ApiAI & modelsOpenAI Chat ModelOpenAI Chat ModelIntegrationWikipediaTool WikipediaTriggerSchedule TriggerSchedule TriggerMessagingReply Invite withEventIdSlackAI & modelsCalendar Event BookingAgentAgent

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.

Workflow node names, types, and operations
NodeCategoryTypeOperation
For Each User ID...TransformSplit OutSee node parameters
Get UserMessagingSlackuser
Search for Invite RequestsMessagingSlacksearch
Get Existing Invite EventIDCodeCodeSee node parameters
Should Create Event?RoutingIfSee node parameters
Create EventIntegrationGoogle CalendarSee node parameters
Get Invite ReactionsMessagingSlackreaction / get
Get Invite RepliesMessagingSlackchannel / replies
Extract Invite ReactionsTransformSplit OutSee node parameters
Get Old EventIdTransformEdit FieldsSee node parameters
Add Attendee to EventIntegrationGoogle Calendarupdate
Get Event DetailsIntegrationGoogle Calendarget
Is AttendingRoutingFilterSee node parameters
Get User EmailTransformEdit FieldsSee node parameters
Should Add Attendee?RoutingIfSee node parameters
Structured Output ParserTransformOutput Parser StructuredSee node parameters
SerpAPIIntegrationTool Serp ApiSee node parameters
OpenAI Chat ModelAI & modelsOpenAI Chat ModelSee node parameters
WikipediaIntegrationTool WikipediaSee node parameters
Schedule TriggerTriggerSchedule TriggerSee node parameters
Reply Invite with EventIdMessagingSlackSee node parameters
Calendar Event Booking AgentAI & modelsAgentSee node parameters

Setup

  1. Download the JSON and import it into an isolated n8n instance. Leave the workflow inactive.
  2. Connect your own credentials through n8n’s credential store. Replace REPLACE_WITH_* values with your resource identifiers.
  3. Inspect API destinations, Code nodes, database queries, file paths, and outbound actions.
  4. 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

Read more about AI Agents

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:

  1. Generate a nice Event title.
  2. Parse and assume dates and times from user message.
  3. 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

Read more about using Slack

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.

More in AI & research