Daily Google Calendar Agenda Email
Every morning, pull today's Google Calendar events and send a formatted agenda email via Outlook with links and locations.
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
This flow pulls all events from a specified Google Calendar for the current day and sends a professionally formatted HTML agenda email via Outlook 365 every weekday morning. If no events are scheduled, a "meeting-free day" notification is sent instead.
Use Case
Professionals who use Google Calendar as their primary scheduling tool but work in a Microsoft 365 environment benefit from a daily digest that arrives in their Outlook inbox. This eliminates the need to switch between platforms each morning to review the day's schedule. The email includes event times, titles, and locations in a clean HTML table.
Flow Architecture
Recurrence - Daily Morning
RecurrenceFires Mon-Fri at 7:00 AM ET.
Initialize Variable - Calendar ID
Initialize variableLoads flowlibs_GoogleCalendarId env var into varCalendarId.
Initialize Variable - Email Recipient
Initialize variableLoads flowlibs_AgendaEmailRecipient into varEmailRecipient.
Initialize Variable - Subject Prefix
Initialize variableLoads flowlibs_AgendaEmailSubjectPrefix into varSubjectPrefix.
Initialize Variable - Agenda HTML
Initialize variableInitializes varAgendaHTML as an empty string for building the table rows.
Initialize Variable - Event Count
Initialize variableInitializes varEventCount to 0 for tracking how many events exist.
Get Todays Events from Google Calendar
List events (Google Calendar)Calls ListEvents on Google Calendar with timeMin = start of today (UTC) and timeMax = end of today (UTC).
Apply to Each - Build Agenda HTML
Apply to eachFor each event: appends an HTML table row with Start, End, Title, and Location to varAgendaHTML and increments varEventCount.
Check If Events Exist
If conditionBranches on whether any events were returned for today (varEventCount > 0).
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_GoogleCalendarId | String | <configure> | The Google Calendar to pull events from. Use 'primary' for the default calendar or a specific calendar's email address. |
| flowlibs_AgendaEmailRecipient | String | user@contoso.com | Email address that receives the daily agenda email. |
| flowlibs_AgendaEmailSubjectPrefix | String | Your Daily Agenda | Prefix for the email subject line; the date is appended automatically. |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Google Calendar | shared_googlecalendar | ListEvents (Retrieves today's calendar events.) |
| Office 365 Outlook | shared_office365 | SendEmailV2 (Sends the formatted agenda email (or the no-events notification).) |
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.
- Set your Google Calendar ID
- Update the flowlibs_GoogleCalendarId environment variable. Use 'primary' for your default calendar or a specific calendar's email address.
- Set the email recipient
- Update flowlibs_AgendaEmailRecipient to the target inbox that should receive the daily agenda.
- Customize the subject line
- Change flowlibs_AgendaEmailSubjectPrefix to match your preference (e.g., 'Daily Schedule', 'Today's Meetings').
- Change the schedule
- Edit the Recurrence trigger to adjust the time, timezone, or days of the week the agenda is sent.
- Turn the flow on
- Toggle the flow state from Stopped to On once all environment variables are configured.
- Add more event fields
- Expand the HTML table built inside the Apply to Each loop to include Description, Attendees, or HTML Link from the Google Calendar event response.
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.01Today's date range (UTC) - start
Used as timeMin for the Google Calendar ListEvents call.
EXPR.02Today's date range (UTC) - end
Used as timeMax for the Google Calendar ListEvents call.
EXPR.03Formatted date for subject
Appended to the subject prefix so each agenda email is dated.
EXPR.04Null-safe location
Falls back to 'N/A' when an event has no location set.
EXPR.05Event count check
Drives the If condition that picks the agenda vs. no-events email path.
Comments
Sign in to join the conversation.
Sign inNo comments yet. Be the first to share your experience with this flow.