Describe the problem/error/question
Tags: google-calendar, slack, data-modeling, best-practices, deduplication
Hi folks 
Goal: Send a Slack notification whenever a Google Calendar event’s start time changes (reschedules), and include the latest start time in the message.
What is the error message (if any)?
Please share your workflow
My current approach (doesn’t really work as I’m having troubles transforming data too): 1. Watch/update Google Calendar events through when event updated trigger.
Log each change to Google Sheets (one row per change).
Use an AI/LLM step to scan the sheet, find the latest change log for the event, and return the newest start time to post to Slack.
Share the output returned by the last node
Information on your n8n setup
- n8n version: 1.116.2
- Database (default: SQLite): Google Sheets
- n8n EXECUTIONS_PROCESS setting (default: own, main):
- Running n8n via n8n cloud
- Operating system: macOS
Hi @DonLBerlin
Actually, there’s a very simple way to do this without logging anything, if your goal is just to monitor changes in the start time.
Your secret weapon here is the Remove Duplicates node,
and make sure to specify the event name:
to make sure we’re removing the duplicated time of the same event not other one.
I tested this approach with this workflow:
give it a try and let me know if it works for your use case!
1 Like
Hey @mohamed3nan Anan,
This is super helpful! I didn’t know this node exists. Can’t believe I spent all this while trying to wrap my mind around how to maintain a database but turns out all I need is a different node! It looks so straight-forward and efficient now.
Honestly, you saved my week! Thank you Anan!
Have a great weekend! Don
2 Likes
urw @DonLBerlin, i’d really appretiate it if you mark my reply
as the solution !
You marked your reply @DonLBerlin
, it’s okay if you meant to, no problem.
But you’re supposed to acknowledge my reply since it’s the one that helped you.
Or if you don’t want to, you can just leave it, that’s fine too.
Sorry to bother again! It works but I am still wondering why we use operation “Remove Items Repeated Within Current Input” here, rather than “in previous executions”. From my understanding of the n8n docs, “within current input” operation is checking into the input itself if there is any duplicates? How come it works to compare the updated input with the old one?
Thanks! But what confuses me is that in a single execution (within current input), you have only one output from previous nodes, how are you going to compare if there are items with duplicated ID but different startTime?
1 Like
Hmm, wait, you’re correct, @DonLBerlin
Actually I was wrong, I just noticed that it only works because the if node isn’t passing the {{ $json.start.dateTime }} when the update is not for the start time,
We should really use the “In Previous Execution” option and edit the trigger’s “Match Term” to specify only one unique event,
This means we only watch one event update and remove duplicates of the start.dateTime, I think this is it.
Hey Anan, thanks again for the help!
I used “previous executions” node and “keep items where value is a data later than”, with “value to dedupe on” set as “updated“ fetched from trigger, so the last updated info is always the source of truth. I have exprimented it several times and now it is working perfectly!
Case closed!
1 Like