Hello,
I would like to develop a workflow that allows me to call via Telegram and return one or more free 45-minute slots in my Google Calendar over a given period.
I can do this if I give it a slot between two dates/times, but I can’t get it to return all X free slots between two dates…
How do I do this?
Thanks Frédéric
(I’m French, sorry for my English 
My workflow 
Hello there! I hope you’re doing well!
I know it’s been a while but in case you did not find a solution yet, here’s my approach:
Here’s what it does:
1 - Gets the day passed by the trigger and converts it to the correct ISO format that google calendar uses. (Here the “-03:00” corresponds to my own timezone. Adapt it accordingly!)
I’m using 9 to 5, but you can change to whatever you wish.
2 - It calls the “freeBusy” google calendar endpoint to get all the currently unavailable spots - Also uses my timezone, so change to the one you’d like.
3 - Uses a code node to compare all the spots and get only the ones that are available.
You can create a new flow and ask the AI to call it when you need the free spots and you will get them 
1 Like
Are you currently using the Google Calendar node in n8n or making API calls directly?
You can try using Google Calendar’s Freebusy API with a loop.
- Instead of asking for one slot, use the “Freebusy” endpoint to get all busy times between your two dates.
- Then, write a small loop (or use a Function node) to scan through the period, checking where the calendar is free for at least 45 minutes.
- Collect all those free slots and return them.
- This way, you get all free slots, not just one.
You could also use multiple “Time Range” queries and combine results:
- Split your total period into smaller chunks (like every day or every few hours).
- For each chunk, query for free slots of 45 minutes.
- Then aggregate these slots from each chunk into a full list to return.
Hope this helps. Cheers!
1 Like