Back to Alchemy
Alchemy RecipeBeginnerautomation

Meeting notes to action items to calendar automation for distributed teams

Your team finishes a meeting. Everyone closes their laptops. Two weeks later, someone mentions an action item that was supposed to happen. Someone else says they didn't know they were responsible for it. A third person claims they never agreed to the deadline. Sound familiar? This happens because meeting notes exist in isolation. They sit in Slack, Email, or a note app, gathering dust. The action items are scattered across different brains, and without automatic routing into task management systems, they simply disappear into the noise of daily work. The solution is not to hire an administrative assistant. It is to build a workflow that captures meeting intelligence, extracts action items automatically, creates tasks with deadlines, and sends calendar invitations all without human intervention. For distributed teams especially, this eliminates the assumption that everyone paid attention to the same thing at the same time. For more on this, see Meeting notes to action items to calendar automation. For more on this, see Turning Meeting Notes Into Action: Tools for Automating P....

The Automated Workflow

You will need four pieces: a meeting capture tool (Cogram or MeetGeek), a summarisation service to distil key details (Smmry), a task management system with reminders (your existing productivity app), and an orchestration layer to connect them all. We will use n8n for this example because it runs self-hosted or cloud-hosted and handles complex conditional logic well. For more on this, see Freed AI vs Cogram vs MeetGeek: AI Meeting Assistants for....

Step 1: Capture Meeting Data

Both Cogram and MeetGeek listen to your meetings and generate transcripts. Cogram is stronger at identifying action items explicitly; MeetGeek records video and provides detailed summaries. For this workflow, Cogram works better because it surfaces owners and deadlines automatically. When Cogram finishes transcribing a meeting, it sends a webhook to your n8n instance. You configure Cogram's integration settings to post to your webhook endpoint.

POST /webhook/cogram-meeting-complete
Content-Type: application/json { "meeting_id": "cgm_abc123", "meeting_title": "Q1 Planning Session", "participants": ["alice@company.com", "bob@company.com"], "transcript": "...", "action_items": [ { "task": "Prepare budget proposal", "owner": "alice@company.com", "due_date": "2026-04-15" }, { "task": "Review competitor analysis", "owner": "bob@company.com", "due_date": "2026-04-10" } ], "summary": "..."
}

Step 2: Parse and Enrich in n8n

Your n8n workflow receives the webhook. The first node triggers automatically on the incoming POST request. Then you add a second node to extract action items and normalise the data.

Webhook Trigger ↓
Code Node (parse action items and format dates) ↓
For Each action item: split into parallel branches ↓ Branch A: Create task in productivity app Branch B: Extract attendees and send summaries ↓
Wait for all branches ↓
Conditional: If due date exists, schedule calendar invite

In your code node, you extract structured data from Cogram's response. This is necessary because Cogram sometimes returns dates in natural language ("next Friday") that need conversion.

javascript
// n8n Code Node
const actionItems = $input.first().json.action_items;
const processedItems = actionItems.map(item => { const dueDate = new Date(item.due_date); return { title: item.task, assignee: item.owner, dueDate: dueDate.toISOString().split('T')[0], meetingId: $input.first().json.meeting_id, meetingTitle: $input.first().json.meeting_title };
}); return [{ json: { tasks: processedItems } }];

Step 3: Create Tasks in Your Productivity App

Your productivity app (Notion, Asana, Microsoft To Do, or similar) has an API for creating tasks. Add an "HTTP Request" node configured to POST to your task creation endpoint. For example, if using Notion:

POST https://api.notion.com/v1/pages
Authorization: Bearer YOUR_NOTION_API_KEY
Content-Type: application/json { "parent": { "database_id": "YOUR_ACTION_ITEMS_DATABASE" }, "properties": { "Task Name": { "title": [ { "text": { "content": "{{ $node[\"Code\"].json.tasks[0].title }}" } } ] }, "Assigned to": { "people": [ { "object": "user", "id": "USER_ID_FROM_ASSIGNEE_EMAIL" } ] }, "Due Date": { "date": { "start": "{{ $node[\"Code\"].json.tasks[0].dueDate }}" } }, "Meeting": { "rich_text": [ { "text": { "content": "{{ $node[\"Code\"].json.tasks[0].meetingTitle }}" } } ] } }
}

You will need to map email addresses to Notion user IDs beforehand. Use a lookup table in n8n or store it as a JSON variable.

Step 4: Send Summary to Attendees

Add a node that sends each attendee an email containing the meeting summary and their assigned tasks. Use SendGrid, Mailgun, or your email provider's API.

POST https://api.sendgrid.com/v3/mail/send
Authorization: Bearer YOUR_SENDGRID_API_KEY
Content-Type: application/json { "personalizations": [ { "to": [ { "email": "{{ $node[\"Code\"].json.attendee_email }}" } ] } ], "from": { "email": "noreply@company.com" }, "subject": "Meeting Summary: {{ $node[\"Code\"].json.meetingTitle }}", "content": [ { "type": "text/html", "value": "<h2>Your Action Items</h2><ul><li>{{ $node[\"Code\"].json.assigned_tasks.join('</li><li>') }}</li></ul>" } ]
}

Step 5: Create Calendar Invites for Task Deadlines

As a final step, create calendar events for important deadlines. This nudges people's attention without requiring them to check their task manager. Connect to your calendar provider (Google Calendar, Microsoft 365, or Caldav). Create an event 24 hours before each due date.

POST https://www.googleapis.com/calendar/v3/calendars/primary/events
Authorization: Bearer YOUR_GOOGLE_CALENDAR_TOKEN
Content-Type: application/json { "summary": "Deadline: {{ $node[\"Code\"].json.task_title }}", "description": "Action item from meeting: {{ $node[\"Code\"].json.meetingTitle }}", "start": { "dateTime": "{{ $node[\"Code\"].json.reminder_datetime }}" }, "end": { "dateTime": "{{ $node[\"Code\"].json.reminder_datetime_end }}" }, "attendees": [ { "email": "{{ $node[\"Code\"].json.assignee_email }}" } ], "reminders": { "useDefault": false, "overrides": [ { "method": "email", "minutes": 1440 } ] }
}

The Manual Alternative

If you prefer not to automate the entire flow, you can stop after Step 3. Export action items from Cogram into your productivity app manually, but let the calendar and email distribution happen automatically. This gives you control over task phrasing while eliminating the most error-prone steps. Alternatively, use Zapier instead of n8n if you want a hosted, no-code solution. Zapier's UI is simpler but less flexible for complex conditional logic. Expect to pay more per automation as Zapier charges per "task" (API call).

Pro Tips

Email notification accuracy matters.

Always validate email addresses before sending summaries.

If an attendee's email is misspelled in Cogram, your workflow will fail silently or worse, send to the wrong person. Add a conditional check in n8n that validates email format using regex before sending.

Handle timezone mismatches for remote teams.

When extracting due dates from Cogram, always store them in UTC and convert to each assignee's local timezone when creating calendar invites. Otherwise, someone in Singapore will see a deadline that has already passed.

Rate limits on the productivity app API.

Most task management systems throttle requests. If you run this workflow 20 times in an hour, you might hit rate limits and lose action items. Add exponential backoff retry logic in n8n to automatically pause and retry if requests fail.

Test with a small group first.

Run this workflow for one team's meetings for two weeks before rolling it out company-wide. Real-world meeting data is messier than test data. You will discover edge cases like participants joining late, transcription errors, or ambiguous action items that need human judgment.

Keep Smmry as a fallback.

If Cogram's automatic action item extraction misses something, have Smmry create a general summary that goes into the task description. This gives assignees full context, not just a vague title.

Cost Breakdown

ToolPlan NeededMonthly CostNotes
CogramProfessional£40–80Automatic meeting notes and action item detection. Alternative to MeetGeek if you prioritise action item clarity.
MeetGeekStandard$25–50Full meeting recording and transcription. Use if you need video archives and more detailed summaries.
SmmryFree or Pro$0–10Summarisation API. Free tier sufficient for most workflows.
n8nCloud Pro$20–100Self-hosted version is free but requires server infrastructure. Cloud scales with workflow complexity.
Your productivity appExistingIncludedAssumes you already use Notion, Asana, or similar. API access may require paid plan.
Google Calendar or Microsoft 365ExistingIncludedMost organisations already own these.
SendGrid or email APIFree to $100VariesFree tier covers up to 100 emails per day; pay-as-you-go after that.