Skip to main content

Get a morning email and calendar brief with Gmail, Google Calendar, GPT-4o-mini and Telegram

Workflow preview

Workflow preview
100%
Get a morning email and calendar brief with Gmail, Google Calendar, GPT-4o-mini and Telegram preview
Open on n8n.io

1. Workflow Overview

Description Activate this workflow once and every weekday morning at 8AM your phone receives a complete day briefing on Telegram — automatically. It fetches your unread emails and today's and tomor...

Best for

  • Personal Productivity automation workflows
  • AI Chatbot automation workflows
  • intermediate n8n builders looking for reusable templates

Tools used

n8n-nodes-base.stickynote, n8n-nodes-base.scheduletrigger, n8n-nodes-base.set, n8n-nodes-base.gmail, n8n-nodes-base.googlecalendar, n8n-nodes-base.code, @n8n/n8n-nodes-langchain.agent, @n8n/n8n-nodes-langchain.lmchatopenai

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by isaWOW.

Original n8n.io source

1.1 Workflow description

Title
Get a morning email and calendar brief with Gmail, Google Calendar, GPT-4o-mini and Telegram
Workflow name
Get a morning email and calendar brief with Gmail, Google Calendar, GPT-4o-mini and Telegram

Description

Activate this workflow once and every weekday morning at 8AM your phone receives a complete day briefing on Telegram — automatically. It fetches your unread emails and today's and tomorrow's calendar events in parallel, sends everything to GPT-4o-mini which filters out promotions and noise, and delivers one clean structured message with your urgent emails, today's schedule, tomorrow's preparation, and one focus recommendation. Built for founders, executives, and busy professionals who want full day context before they open a single app.


What This Workflow Does

  • Fetches emails and calendar simultaneously — Pulls unread inbox emails from the last 24 hours and calendar events for today and tomorrow at the same time to save processing time
  • Filters out email noise automatically — GPT-4o-mini identifies only emails that need a reply or action — newsletters, promotions, automated notifications, and receipts are silently excluded
  • Separates today and tomorrow events — Calendar events are split into two lists so your schedule and your preparation are clearly distinct in the brief
  • Generates one focus recommendation — Based on the combined context of your emails and calendar, GPT surfaces the single most important thing to concentrate on today
  • Adds a preparation tip for busy meetings — If tomorrow has meetings with more than two attendees, the brief automatically includes a preparation suggestion
  • Delivers with Markdown formatting — The Telegram message uses bold headings and clean layout so the brief is easy to scan on a phone screen
  • Includes a timezone-aware timestamp — A footer shows the exact local time the brief was generated so you always know when the data was pulled

Setup Requirements

Tools Needed

  • n8n instance (self-hosted or cloud)
  • Gmail account (the inbox you want monitored)
  • Google Calendar (your primary calendar)
  • OpenAI account with GPT-4o-mini API access
  • Telegram bot (created via @BotFather)

Credentials Required

  • Gmail OAuth2
  • Google Calendar OAuth2
  • OpenAI API key
  • Telegram Bot credential

Estimated Setup Time: 15–20 minutes


Step-by-Step Setup

  1. Import the workflow — Open n8n → Workflows → Import from JSON → paste the workflow JSON → click Import

  2. Get your Telegram Chat ID — Open Telegram → search for @userinfobot → send /start → it replies with your numeric chat ID

  3. Fill in Config Values — Open node 2. Set — Config Values → replace all four placeholders:

Field What to enter
PASTE_YOUR_TELEGRAM_CHAT_ID_HERE Your Telegram chat ID from step 2
PASTE_YOUR_GMAIL_ADDRESS_HERE Your Gmail address (e.g. [email protected])
PASTE_YOUR_NAME_OR_COMPANY_HERE Your name or company name (used in the GPT prompt greeting)
timezone Your timezone string — default is Asia/Kolkata. Change to your timezone e.g. America/New_York, Europe/London, Asia/Singapore
  1. Connect Gmail — Open node 3. Gmail — Fetch Unread Emails → click the credential dropdown → add Gmail OAuth2 → sign in with the Gmail account you want monitored → authorize access

  2. Connect Google Calendar — Open node 4. Google Calendar — Fetch Today and Tomorrow → click the credential dropdown → add Google Calendar OAuth2 → sign in with the same Google account → authorize access

  3. Connect OpenAI — Open node 7. OpenAI — GPT-4o-mini Model → click the credential dropdown → add your OpenAI API key → test the connection

  4. Connect Telegram — Open node 9. Telegram — Send Morning Brief → click the credential dropdown → add your Telegram Bot API credential (paste the bot token from @BotFather) → save

  5. Activate your Telegram bot — Open Telegram → find your bot → send /start — this is required before the bot can message you for the first time

  6. Activate the workflow — Toggle the workflow to Active — it will run automatically every weekday at 8AM

> ⚠️ Test before 8AM — To test immediately, click on node 1. Schedule — Every Weekday 8AM and use the manual Execute option to trigger a test run.


How It Works (Step by Step)

Step 1 — Schedule: Every Weekday 8AM This step fires the workflow automatically every Monday through Friday at 8AM. The cron expression 0 8 * * 1-5 ensures it never runs on weekends. No manual trigger is needed once activated.

Step 2 — Set: Config Values Your Telegram chat ID, Gmail address, name, timezone, and all date variables used throughout the workflow are stored here. Today's date, today's ISO timestamp, yesterday's timestamp (for the 24-hour email window), tomorrow's timestamp, and the day-after-tomorrow's timestamp are all calculated automatically from the current date — you never need to update these.

Step 3 — Gmail: Fetch Unread Emails (parallel) All unread inbox emails received in the last 24 hours are fetched from your Gmail account. This step runs at the same time as the calendar fetch to save time. Up to 20 emails are processed — the sender, subject line, and a short preview of each message are captured.

Step 4 — Google Calendar: Fetch Today and Tomorrow (parallel) All events from your primary Google Calendar for today and tomorrow are fetched simultaneously alongside the Gmail step. For each event, the title, start and end time, location, and attendee count are captured. If the event has a specific time it is formatted as HH:MM to HH:MM — all-day events are labelled accordingly.

Step 5 — Code: Merge Emails and Calendar Both the email and calendar data are read together here and formatted into clean text for GPT. Emails are listed with sender, subject, and preview. Calendar events are separated into a today list and a tomorrow list, each with time and attendee count. If either source returns no data, a clean fallback message is used (e.g. "No unread emails in the last 24 hours"). The formatted text, event counts, and email count are all packaged for the AI step.

Step 6 — AI Agent: Write Morning Brief GPT-4o-mini receives your name, today's date, the full email list, and both calendar lists. It writes a structured 4-section brief in plain text with basic Telegram Markdown bold headings. Section 1 lists only urgent emails that need a reply or action — all promotional and automated emails are excluded. Section 2 lists all today's events with their times. Section 3 lists tomorrow's events and adds a preparation tip for any meeting with more than two attendees. Section 4 gives one single focus recommendation for the day based on the combined context. The brief is kept under 300 words.

Step 7 — OpenAI: GPT-4o-mini Model This is the language model powering the brief. It runs at temperature 0.4 for a natural, warm tone that is not robotic but also not overly creative. It is capped at 600 tokens to keep the brief concise and costs extremely low — well under $0.001 per morning brief.

Step 8 — Code: Prepare Telegram Message The GPT brief text is read and a timestamp footer is added in your local timezone (e.g. Brief generated at 08:02). If GPT failed to generate any output, a fallback message is used instead so Telegram always receives something. The complete message and your Telegram chat ID are packaged for delivery.

Step 9 — Telegram: Send Morning Brief The full brief is sent to your Telegram chat with Markdown rendering enabled. Bold headings render correctly in Telegram so the four sections are clearly separated. A Telegram attribution footer is suppressed so the message looks clean.


Key Features

Fully automated weekday delivery — Runs Monday to Friday at 8AM with zero manual input after the one-time setup ✅ Parallel Gmail and Calendar fetch — Both data sources are pulled at the same time rather than one after the other, keeping the workflow fast ✅ Noise-filtered email list — GPT actively excludes newsletters, promotions, and automated notifications so only actionable emails appear in your brief ✅ Two-day calendar view — Today's schedule and tomorrow's events are always both included so you can plan ahead from the morning brief alone ✅ Preparation tips for group meetings — If tomorrow has a meeting with more than two attendees, the brief automatically suggests how to prepare ✅ Fallback protection — If GPT fails or returns empty output, a fallback message is sent to Telegram so you always receive something at 8AM ✅ Timezone-correct timestamp — The footer shows your local time based on the timezone value in Config Values — not UTC ✅ Under $0.001 per brief — GPT-4o-mini at 600 tokens with temperature 0.4 costs fractions of a cent per run — 260 working days a year costs less than $0.25 total


Customisation Options

Change the delivery time — In node 1. Schedule — Every Weekday 8AM, edit the cron expression 0 8 * * 1-5 to fire at a different hour — for example 0 7 * * 1-5 for 7AM or 30 7 * * 1-5 for 7:30AM.

Include weekends — In node 1. Schedule — Every Weekday 8AM, change the cron expression from 0 8 * * 1-5 to 0 8 * * * to receive a brief every day of the week including Saturday and Sunday.

Add a specific Gmail label filter — In node 3. Gmail — Fetch Unread Emails, add a label filter to only pull emails tagged with a specific Gmail label (e.g. your client label) so the brief focuses only on the emails that matter most to you.

Include a second Google Calendar — After node 4. Google Calendar — Fetch Today and Tomorrow, duplicate the step and connect it to a second calendar ID — then update node 5. Code — Merge Emails and Calendar to also read from that second calendar result and merge the events together.

Add a Slack summary for your team — After node 8. Code — Prepare Telegram Message, add a Slack node that posts a shorter 2-line version (just today's meeting count and your one focus) to a #team-standup channel so your team gets daily context too.


Troubleshooting

Workflow not triggering at 8AM:

  • Confirm the workflow is Active — inactive workflows do not run on a schedule
  • Check that the cron expression in node 1. Schedule — Every Weekday 8AM is exactly 0 8 * * 1-5 — any accidental edit breaks the schedule
  • Confirm your n8n instance is running at 8AM — self-hosted instances that are turned off will not fire scheduled workflows
  • To test immediately, click on node 1 and use the manual Execute option

Gmail returning no emails even when you have unread messages:

  • Confirm the Gmail OAuth2 credential in node 3. Gmail — Fetch Unread Emails is connected and not expired — re-authorize if needed
  • The filter fetches emails received after yesterdayISO — if your n8n instance timezone is set incorrectly, this window may shift unexpectedly
  • Check that PASTE_YOUR_GMAIL_ADDRESS_HERE in node 2. Set — Config Values is replaced with your actual Gmail address

Google Calendar returning no events:

  • Confirm the Google Calendar OAuth2 credential in node 4. Google Calendar — Fetch Today and Tomorrow is connected with the same Google account that owns the calendar
  • The step fetches from the primary calendar — if your events are on a different calendar (e.g. a work calendar with a different email), you need to change the calendar ID in the step
  • Check that your calendar events have dates that fall within today or tomorrow relative to your n8n server's timezone

OpenAI not generating the brief:

  • Confirm the API key is connected in node 7. OpenAI — GPT-4o-mini Model and your account has available credits
  • If the brief arrives as the fallback message ("Your brief could not be generated"), check the execution log of node 6. AI Agent — Write Morning Brief for the raw error
  • Temperature 0.4 and 600 max tokens are set by design — do not reduce max tokens below 400 or the brief may be cut off mid-section

Telegram message not arriving:

  • Confirm the Telegram Bot credential in node 9. Telegram — Send Morning Brief is connected with a valid bot token from @BotFather
  • Confirm PASTE_YOUR_TELEGRAM_CHAT_ID_HERE in node 2. Set — Config Values is replaced with your numeric chat ID from @userinfobot
  • You must send /start to your bot in Telegram before the first message can be delivered — bots cannot initiate conversations without this activation step

Support

Need help setting this up or want a custom version built for your team or agency?

📧 Email: [email protected] 🌐 Website: https://isawow.com/

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Overview

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 2 - Section — Schedule and Config

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 3 - Section — Parallel Data Fetch

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 4 - Section — Data Merge and AI Brief Writing

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 5 - Section — Telegram Delivery

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 6 - 1. Schedule — Every Weekday 8AM

Type / Role
n8n-nodes-base.scheduleTrigger - scheduleTrigger
Config choices
Version 1.2

Block 7 - 2. Set — Config Values

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 8 - 3. Gmail — Fetch Unread Emails

Type / Role
n8n-nodes-base.gmail - gmail
Config choices
Version 2.1

Block 9 - 4. Google Calendar — Fetch Today and Tomorrow

Type / Role
n8n-nodes-base.googleCalendar - googleCalendar
Config choices
Version 1.3

Block 10 - 5. Code — Merge Emails and Calendar

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 11 - 6. AI Agent — Write Morning Brief

Type / Role
@n8n/n8n-nodes-langchain.agent - agent
Config choices
Version 1.7

Block 12 - 7. OpenAI — GPT-4o-mini Model

Type / Role
@n8n/n8n-nodes-langchain.lmChatOpenAi - lmChatOpenAi
Config choices
Version 1.2

Block 13 - 8. Code — Prepare Telegram Message

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 14 - 9. Telegram — Send Morning Brief

Type / Role
n8n-nodes-base.telegram - telegram
Config choices
Version 1.2

3. Summary Table

Workflow Get a morning email and calendar brief with Gmail, Google Calendar, GPT-4o-mini and Telegram
Complexity intermediate
Nodes 14
Categories Personal Productivity, AI Chatbot
Author isaWOW
Published 18 Apr 2026

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/15128/15128.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Get a morning email and calendar brief with Gmail, Google Calendar, GPT-4o-mini and Telegram do?

Description Activate this workflow once and every weekday morning at 8AM your phone receives a complete day briefing on Telegram — automatically. It fetches your unread emails and today's and tomor...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Personal Productivity, AI Chatbot use case.