Meeting Follow-Up Task Generator
After a calendar event ends, prompt the user via Adaptive Card to create follow-up Outlook Tasks with assignees and deadlines.
Provided as-is, without warranty of any kind. Review and test each pattern in a non-production environment before deploying it to live automations. See our Terms.
Overview
The Meeting Follow-Up Task Generator turns the end of a calendar meeting into a quick, structured task-capture moment. When a Microsoft 365 calendar event finishes, the flow posts an Adaptive Card to the organizer (or to a configured user) in Microsoft Teams that asks: did this meeting produce any follow-ups? If the answer is yes, the card collects a short list of follow-up items — title, assignee, and due date — and the flow creates each one as an Outlook Task on the assignee's behalf. If there are no follow-ups, the flow exits cleanly with no side effects.
The goal is to make post-meeting hygiene a habit instead of a chore. Instead of waiting for someone to remember to write down action items, the flow nudges the meeting owner at the exact moment they are most likely to remember what was decided, captures the result in two clicks, and routes the work into Outlook Tasks where teams already track their day. Everything runs inside the user's own Microsoft 365 tenant using the standard Outlook 365 and Microsoft Teams connectors — no premium services required.
Use Case
Most meetings end with someone saying "I'll send out the action items" — and then nobody does. This flow closes that gap by intercepting the calendar event's end and asking the organizer, in Teams, whether the meeting produced follow-ups. Because the prompt arrives within seconds of the meeting ending, the organizer can capture the work while the conversation is still fresh, and the assignees get their tasks delivered directly into Outlook without any manual note-taking, email threading, or separate task-tracker logins.
The flow is ideal for teams that:
- Project managers running recurring status meetings who want a lightweight way to capture decisions and owners as they happen.
- Cross-functional teams that already live in Outlook Tasks and want post-meeting action items to land there automatically.
- Organizations looking for a low-friction follow-up workflow that does not require Planner, To Do, or any premium connectors.
- Anyone tired of writing meeting recap emails — this flow replaces that step with a two-click Adaptive Card.
Flow Architecture
When a calendar event ends
Office 365 Outlook — When an upcoming event is ending soon (V3)Triggers shortly after a calendar event on the configured mailbox finishes, giving the flow a natural moment to ask about follow-ups.
Get the event details
Office 365 Outlook — Get event (V4)Fetches the full event payload (subject, organizer, attendees, end time) so the Adaptive Card can show meeting context to the organizer.
Post Adaptive Card and wait for a response
Microsoft Teams — Post adaptive card and wait for a responseSends an Adaptive Card to the organizer in Teams asking whether the meeting produced follow-ups. If yes, the card collects rows of {title, assignee, due date}. The flow pauses until the user submits.
If follow-ups were captured
If conditionBranches on whether the submitted card contained at least one follow-up item.
- Parse the Adaptive Card response — Parses the JSON returned by Teams into a strongly-typed object so each follow-up row can be iterated.
- For each follow-up row — Loops over the submitted rows and creates one Outlook Task per row using Office 365 Outlook — Create a task (V2), setting the subject, due date, and assignee from the row.
- Post confirmation to organizer — Sends a short Teams chat message back to the organizer confirming how many tasks were created and to whom.
Empty branch — no action. The flow exits cleanly when the organizer indicates there were no follow-ups.
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_MeetingFollowUpTeamsChannelId | String | <configure> | Optional Microsoft Teams channel ID to post a copy of the captured follow-ups into. Leave blank to skip channel posting and only send tasks. Set to a channel ID like 19:xxxxxxxx@thread.tacv2. |
| flowlibs_MeetingFollowUpDefaultDueDays | Number | 3 | Number of days from the meeting end time used as the default due date pre-fill on the Adaptive Card. |
| flowlibs_MeetingFollowUpOrganizerOverride | String | <configure> | Optional user principal name (e.g. user@your-tenant.onmicrosoft.com) to receive the Adaptive Card instead of the calendar event's organizer. Useful for testing. Leave blank in production. |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Office 365 Outlook | shared_office365 | OnUpcomingEventsV3 (trigger — when an upcoming event is ending soon) GetEventV4 CreateTaskV2 |
| Microsoft Teams | shared_teams | PostAdaptiveCardAndWaitForResponse PostMessageToConversation (confirmation message back to organizer) |
Note — All connections are referenced as solution connection references; the flow is portable between environments as long as a connection is mapped at import time.
Customization Guide
Almost every realistic variant of this flow can be implemented by changing environment variable values. A few cases require small edits inside the flow definition — those are called out explicitly below.
- Route follow-ups to Planner or To Do instead of Outlook Tasks
- Swap the Office 365 Outlook — Create a task action for Planner — Create a task or To Do — Add a to-do. You will need to add the corresponding connection and decide which Plan/Bucket or List the items land in. Note: Planner is a premium connector.
- Filter which meetings trigger the prompt
- Add a Condition right after the trigger that checks the event subject, category, or organizer and only proceeds for meetings you care about (e.g. subject contains 'standup' or category equals 'Project Review'). This avoids prompting after every 1:1 or focus block.
- Capture richer follow-up metadata
- Extend the Adaptive Card schema with extra fields (priority, project tag, description) and map them onto additional task properties when calling Create a task. The For-each loop already iterates the row collection, so adding columns is a card-only change.
- Send a recap email in addition to creating tasks
- After the For-each loop, add an Office 365 Outlook — Send an email (V2) action that emails the meeting attendees a summary of the captured follow-ups. Useful when stakeholders are not in Teams.
Key Expressions
The flow is intentionally light on Power Fx / WDL gymnastics — the heaviest expressions are the branch-name concatenation and the approval outcome check. They are listed below in the order they appear in the flow.
EXPR.01Default due date based on meeting end + offset
Used to pre-fill the due-date column on each Adaptive Card row so the organizer only has to override it when needed.
EXPR.02Resolve organizer recipient (override if set)
Returns the override UPN when configured, otherwise falls back to the calendar event's organizer.
EXPR.03Count captured follow-ups
Used in the If condition to skip the create-task branch when the organizer submits the card with zero rows.
Comments
Sign in to join the conversation.
Sign inNo comments yet. Be the first to share your experience with this flow.