This workflow automatically runs at a scheduled time (daily at 8 AM by default), calculates the current day's date range, fetches all calendar events from a specified Microsoft Outlook account for that day, formats these events into a user-friendly HTML email, and then sends this digest to a designated email address.
n8n-nodes-base.scheduleTriggern8n-nodes-base.codetoday to beginning of current day (00:00:00).tomorrow to beginning of next day (00:00:00).2023-10-27T00:00:00Z).today and tomorrow ISO date strings.n8n-nodes-base.microsoftOutlookResource: Event
Filters (Custom):
      start/dateTime ge '{{$json.today}}' and start/dateTime lt '{{$json.tomorrow}}'
(OData filter to fetch events starting on or after today and before tomorrow, i.e., all today's events.)
n8n-nodes-base.setidsubjectdescription (from bodyPreview)meeting_startmeeting_endattendeesmeeting_organizermeeting_organizer_emailmeeting_linkType: n8n-nodes-base.code
Purpose: Generate a single HTML email body summarizing all meetings and create the email subject line.
Configuration (JS Code):
generateMeetingReminderEmail function to format each meeting into an HTML "card."Output: JSON object with:
{
"subject": "email subject string", "html": "generated HTML content string" }
n8n-nodes-base.emailSend[[email protected]](/cdn-cgi/l/email-protection)[[email protected]](/cdn-cgi/l/email-protection){{ $json.subject }} (dynamic from Generate HTML node){{ $json.html }} (dynamic from Generate HTML node)Schedule (Schedule Trigger node):
Modify the trigger hour, minutes, or days of week to change when the workflow runs.
Date Range (Code node):
Adjust JS to change date range (e.g., next business day, upcoming week).
Outlook Calendar (Microsoft Outlook node):
Specify Calendar ID or refine OData filters for event selection.
Event Details (Edit Fields node):
Add/remove/modify event fields extracted.
Email Appearance and Content (Generate HTML node):
Change CSS styling, meeting details, or subject line logic.
No Meetings Scenario:
Use an "If" node after "Edit Fields" to handle no-meeting days (e.g., send "No meetings today!" email or skip email).
Email Recipients (Send Email node):
Update "From" and "To" emails; multiple recipients separated by commas.
Add these credentials in your n8n instance under Credentials :
Microsoft Outlook (OAuth2 API):
Outlook (ID: JcYqVJwcwZIhB8oy)Calendars.Read permission.SMTP:
SMTP account (ID: vCexcphurglwGBfk)Ensure these credentials are configured correctly with required permissions. Activate the workflow for scheduled execution.
Made with ❤️ using n8n by Akhil.


