iCalendar Extract
Description
Section titled “Description”The iCalendar Extract node finds and parses calendar invitations (RFC 5545 .ics) inside any input: a raw .ics file, a full MIME email, or the output object of an email node (Send Mail, MS365 Emails, Gmail).
It automatically handles the common ways an invitation travels inside an email:
- Plain
text/calendarbodies. - Base64-encoded attachments and MIME parts (including base64 blocks embedded in a larger raw email).
- Quoted-printable encoded parts.
- Folded lines,
VTIMEZONEblocks and escaped text, per RFC 5545.
The typical pairing is iCalendar Extract → iCalendar Respond: the first turns the invitation into JSON, the second generates the accept / decline / counter-proposal reply.
Configuration
Section titled “Configuration”Parameters
Section titled “Parameters”| Parameter | Type | Required | Description |
|---|---|---|---|
| content | text | No | Text or variable holding the email/MIME/.ics, e.g. {{body}}. If empty, the node scans the whole input data recursively (strings, arrays, attachment objects) for a BEGIN:VCALENDAR block |
Output
Section titled “Output”Returns the calendar method, the number of events and each event parsed. event is a shortcut to the first event (the usual case for an emailed invitation):
{ "method": "REQUEST", "prodid": "-//Google Inc//Google Calendar 70.9054//EN", "count": 1, "event": { "uid": "7f3k2m9q@google.com", "summary": "DWH integration review, sprint 12", "description": "502 incident recap\nBring the PM2 logs.", "location": "Room 3", "start": "2026-09-01T13:00:00", "end": "2026-09-01T14:00:00", "allDay": false, "timezone": "Europe/Madrid", "organizer": { "email": "laura@example.com", "name": "Laura Gómez" }, "attendees": [ { "email": "agenda@floogos.com", "name": "Agenda Floogos", "partstat": "NEEDS-ACTION", "role": "REQ-PARTICIPANT", "rsvp": true } ], "sequence": 2, "status": "CONFIRMED", "rrule": null }, "events": [ "… same objects as above …" ]}Key fields:
- method —
REQUEST(new invitation or update),CANCEL,REPLY, etc. - start / end — ISO strings. If the original used a
TZID, the time is local andtimezonetells you which one; UTC times end inZ; all-day events useYYYY-MM-DDwithallDay: true. - sequence — version of the invitation; needed to build a valid reply.
- attendees[].partstat — current status of each guest (
NEEDS-ACTION,ACCEPTED,DECLINED,TENTATIVE).
If no BEGIN:VCALENDAR is found anywhere in the input, the node ends with an error (useful to branch with a Decision node when an email may or may not carry an invitation).
Usage Examples
Section titled “Usage Examples”Invitation arriving by email
Section titled “Invitation arriving by email”- An email trigger (MS365 Emails / Gmail) outputs the message.
- iCalendar Extract with
contentempty: the node finds the.icsattachment on its own. - A Decision node routes on
{{method}}(REQUESTvsCANCEL). - iCalendar Respond answers it.
Explicit source field
Section titled “Explicit source field”If your email node leaves the raw MIME in a specific field, point to it directly:
content: {{rawMessage}}