How do I append a guest email to a Google Calendar event in n8n without replacing existing attendees?

Hey everyone, I’m running into trouble with n8n’s Google Calendar node. I’ve got a calendar that’s been shared with my service account ([email protected]) with Make changes AND manage sharing rights. I need a workflow that:

  1. Fetches an event via Get Events
  2. Builds an updated attendees array in a Code node, for example:
    const existing = item.json.attendees || ; if (!existing.some(a => a.email === ‘[email protected]’)) { existing.push({ email: ‘[email protected]’ }); } return { json: { …item.json, attendees: existing } };
  3. Calls the Google Calendar → Update node with that new attendees array

No matter what I try—manual mapping, treat value as JSON, passing an array of { email: … } objects—the Update step always errors or wipes out all existing guests and only leaves the new one. I’m not using per-user OAuth flows; each therapist just shares their calendar with my single account.

What I’ve tried:

  • Mapping {{ $json.attendees }} directly in the Attendees field with raw JSON
  • Converting attendees to a comma-separated string or array of strings
  • Splitting/joining strings—always “attendee.split is not a function” or the API rejects the remindersUI parameter

Question:
What’s the correct way in n8n to append an attendee object to a shared Google Calendar event’s attendees list without losing the existing ones? Any tips on node configuration, expressions, or JSON shape that actually works? Thanks!

Hey @marty1 hope all is well, welcome to the community.

I’ve looked at the options in Google Calendar node and in the update action there is a way to add attendees and two ways to do it - append and replace:

Is there a reason you are not using that, or is there a problem with this approach?

1 Like

THANK YOU! Somehow this option was not previously showing up for me.

Great, if the answer helped you, kindly mark it as solution.

Cheers!

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.