🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Outlook to Microsoft Teams, daily agenda posted

Lisa Granqvist Partner Workflow Automation Expert

Your calendar is full, but your team still starts the day blind. People ask, “What meetings do we have today?” You paste screenshots, forget one invite, and somehow the one meeting that mattered gets missed.

This Outlook Teams agenda automation hits team leads first, because they’re the ones fielding questions. Project managers feel it too. So do remote operators trying to keep a distributed team pointed the same direction.

You’ll set up an n8n workflow that pulls today’s Microsoft Outlook events and posts a clean agenda straight into a Microsoft Teams channel, automatically, on a schedule.

How This Automation Works

Here’s the complete workflow you’ll be setting up:

n8n Workflow Template: Outlook to Microsoft Teams, daily agenda posted

Why This Matters: Daily meeting visibility breaks down fast

Most teams don’t actually have a “single place” where today’s schedule lives. Outlook has the truth, but people don’t check it. Teams is where work happens, but it doesn’t automatically show everyone’s agenda. So you end up with a daily ritual: someone posts reminders, someone else replies with updates, and a third person still books over the one blocked-off slot. It’s not just time. It’s the mental load of keeping everyone aligned, plus the little credibility hit when meetings get missed.

It adds up fast. Here’s where it breaks down.

  • You spend about 10 minutes each morning copying meeting details into a message that still goes out late.
  • Timezone confusion shows up in chat, then you lose another few minutes clarifying “local time” for the group.
  • Meeting links and context get scattered, which means people join unprepared or ask for the agenda again.
  • When nobody posts the schedule (vacation, sick day, busy morning), the team’s day starts reactive instead of planned.

What You’ll Build: A daily Outlook agenda message in Teams

This workflow runs automatically on a schedule (by default, midnight UTC). First, it calculates “today” and builds a Microsoft Graph-compatible date filter so Outlook only returns the events that matter right now. Then it pulls today’s calendar entries from Microsoft Outlook and converts them into a readable agenda message (formatted as HTML so it’s clean in Teams). Finally, it posts that agenda into the Microsoft Teams channel you choose. No screenshots. No hunting through calendars. Just a predictable daily update that’s always there when the team shows up.

The flow is simple on purpose. Schedule trigger starts it, the date filter keeps results accurate, Outlook provides the raw events, and a formatting step turns those events into something people will actually read. Microsoft Teams is the final destination, so visibility happens where work already lives.

What You’re Building

Expected Results

Say your team has 6 meetings in a typical day and you normally send a morning “today’s schedule” post to Teams. Manually, you’re opening Outlook, skimming events, copying subjects, and fixing times, which is usually about 10 minutes total (more when meetings shift). With this workflow, it runs on its own: about 5 minutes to set it up once, then zero daily effort. The message shows up in the channel automatically, even if you’re in back-to-back calls.

Before You Start

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Microsoft Outlook for accessing calendar events via Graph.
  • Microsoft Teams to post the agenda into a channel.
  • Microsoft OAuth2 credentials (create in n8n Credentials for Outlook and Teams).

Skill level: Beginner. You’ll import a workflow, connect credentials, and select the right Team/channel.

Want someone to build this for you? Talk to an automation expert (free 15-minute consultation).

Step by Step

A daily schedule kicks it off. The workflow runs automatically based on the Schedule Trigger, set to midnight UTC by default. You can move this to early morning in your timezone if that’s when people check Teams.

“Today” gets calculated, precisely enough. A code step generates the start and end of the current day in UTC and turns that into a Microsoft Graph filter string. That filter is what keeps the Outlook search from returning yesterday’s leftovers or tomorrow’s meetings.

Outlook returns the events that match. The Microsoft Outlook node pulls “Get Many” events using the generated filter. If you have multiple calendars, this is also where you confirm you’re targeting the correct one.

Teams receives a readable agenda. Another code step formats each event into an HTML message (time, subject, and summary), then the Microsoft Teams node posts it to the channel you selected.

You can easily modify the schedule time to match your morning standup, or adjust the formatted fields to include location and organizer names. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Schedule Trigger

Set up the automation to run daily at midnight using the scheduled trigger node.

  1. Add the Midnight Schedule Trigger node to your canvas.
  2. Open Midnight Schedule Trigger and confirm the schedule rule is configured (default schedule settings are acceptable for daily midnight runs).
  3. Connect Midnight Schedule Trigger to Build Today's Filter.

Step 2: Connect Microsoft Outlook

Retrieve today’s calendar events by building a filter and querying Outlook.

  1. Open Build Today's Filter and keep the JavaScript Code as provided to generate startISO, endISO, and the Outlook filter.
  2. Open Retrieve Calendar Events and set Resource to event.
  3. Set Filters → Custom to {{ $json.filter }}.
  4. Credential Required: Connect your microsoftOutlookOAuth2Api credentials in Retrieve Calendar Events.
  5. Connect Build Today's Filter to Retrieve Calendar Events.

Step 3: Set Up the Processing Node

Format each event into an HTML message that can be sent to Microsoft Teams.

  1. Open Generate HTML Summary and keep the JavaScript Code that maps event data into htmlMessage.
  2. Connect Retrieve Calendar Events to Generate HTML Summary.

Step 4: Configure the Teams Message Output

Send the generated HTML summary into a Microsoft Teams chat.

  1. Open Dispatch Teams Message and set Resource to chatMessage.
  2. Set Chat ID to your target chat (replace [YOUR_ID] with a real chat ID).
  3. Set Message to {{ $json.htmlMessage }}.
  4. Credential Required: Connect your microsoftTeamsOAuth2Api credentials in Dispatch Teams Message.
  5. Connect Generate HTML Summary to Dispatch Teams Message.

⚠️ Common Pitfall: If Chat ID remains as [YOUR_ID], the message will fail to send. Always select a valid Teams chat.

Step 5: Test and Activate Your Workflow

Run a manual test to confirm the end-to-end flow, then activate the workflow for daily execution.

  1. Click Execute Workflow to run Midnight Schedule Trigger manually.
  2. Verify Retrieve Calendar Events outputs events for today based on the filter built in Build Today's Filter.
  3. Confirm Dispatch Teams Message posts a formatted HTML message into the Teams chat.
  4. Toggle the workflow to Active to enable daily automation.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Troubleshooting Tips

  • Microsoft Outlook credentials can expire or need specific permissions. If things break, check the n8n Credentials screen and re-auth your Microsoft Outlook OAuth2 connection first.
  • If your schedule is set to midnight UTC, your “today” might not be your local today. If the agenda looks off, adjust the Schedule Trigger timezone and review the date logic in the “Build Today’s Filter” code step.
  • Microsoft Teams posting failures are often channel or permission related. Confirm the Teams OAuth2 credential can post to that specific team/channel, and that the message type is set to HTML if you’re using formatted content.

Quick Answers

What’s the setup time for this Outlook Teams agenda automation?

About 20 minutes if your Microsoft logins are ready.

Is coding required for this agenda posting automation?

No. You’ll import the workflow and connect Microsoft credentials in n8n. The code steps are already included and usually don’t need edits.

Is n8n free to use for this Outlook Teams agenda workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Microsoft account requirements (typically included with your Microsoft 365 plan).

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

Can I modify this Outlook Teams agenda workflow for different use cases?

Yes, and it’s pretty flexible. You can change the Schedule Trigger to run at 7am local time, or run it twice a day. In the “Retrieve Calendar Events” step, target a different calendar if you separate client calls from internal meetings. Most people customize the “Generate HTML Summary” step to add location, organizer, or meeting links so the Teams post becomes a real launchpad for the day.

Why is my Microsoft Outlook connection failing in this workflow?

Usually it’s expired OAuth authorization in n8n. Reconnect the Microsoft Outlook OAuth2 credential, then re-check the account has permission to read calendar events. If it still fails, the filter can be the culprit, so confirm the workflow is sending a valid “today” window (timezone mismatches are common).

What volume can this Outlook Teams agenda workflow process?

For most teams, “volume” is just how many events you have in a day, and this handles normal calendars easily.

Is this Outlook Teams agenda automation better than using Zapier or Make?

Often, yes, because this is a little more than a simple two-step zap. The date filter logic matters, and n8n makes it easier to keep that logic readable, reusable, and adjustable when your timezone or formatting needs change. Self-hosting is also a big deal if you want to run lots of automations without worrying about task pricing. Zapier and Make can still work if you want the quickest “connect A to B” experience, but you may hit limits once you start formatting messages or adding branches (like “if no events, post a different message”). If you’re unsure, Talk to an automation expert and you’ll get a straight answer for your setup.

Once this is running, your team gets the day’s agenda without anyone playing calendar DJ. Set it up once, then let it quietly keep everyone aligned.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal