Using AI

How I Have AI Build Me a One-Page 'Today's Briefing' While I Get Ready in the Morning

How I Have AI Build Me a One-Page 'Today's Briefing' While I Get Ready in the Morning

Photo: mendhak (CC BY-SA 2.0) via Flickr

Good morning, it’s まさきん.

Mornings are quietly busy: checking the schedule, checking email, checking whether any chat replies slipped through. Squeezing that in while getting ready means the information is scattered across too many places.

So I built a system that has AI pull together the day’s schedule and anything that needs a reply, and generates it as a single briefing automatically. Here’s how I gather the information, plus the tricks for keeping the layout looking right every time.

It started with “too many apps to open”

Calendar, email, chat. Just opening each app separately to check them eats up the first few minutes of the morning. On top of that, things worth seeing and things that aren’t are all mixed together.

So I built a system that crosses all these apps and pulls only “what I actually need to look at today” into one place. It’s generated as a single HTML file.

I decided on an order for gathering information

When you have multiple sources, the order you tackle them in changes the quality of the result. So I gather information in this priority order.

  1. Calendar: Fetch today’s schedule, from midnight to midnight, in one pass first
  2. Email: Threads where I’ve been asked something by name and haven’t replied yet
  3. Chat: Mentions or DMs directed at me from roughly the last two days that I haven’t reacted to yet
  4. Tomorrow’s prep: If I’m listed as the organizer for tomorrow’s schedule, search for related keywords and check whether there’s anything I need to prepare

I put calendar first because it’s the coarsest-grained and easiest to work with. Building the overall skeleton first, then filling in details from email and chat, seems to keep the information from sprawling.

My criteria for “needs a reply”

Email and chat generate a lot of notifications, but only a fraction actually need action. So I filter using these criteria.

If I pulled in group messages too, the briefing would be full of notifications that don’t actually need a response. Narrowing it down to “things that stall if I don’t move” keeps the amount of information in the briefing reasonable. For anything ambiguous, I open the actual thread and check whether my reply is already in there before deciding.

This whole judgment process assumes a working connection, of course. If the signal is unstable, I might miss new messages entirely. Building this made me realize just how much I’ve been quietly relying on a stable connection.

Try the fee simulator and get 100 points, no sign-up required Review the connection behind every morning's judgment call, with Rakuten Mobile

Clicking this opens the Rakuten login page. Once you log in, you’ll see the campaign details.

Splitting information into two groups

Whatever gets picked up is sorted into one of two groups.

GroupContents
Needs actionThings that will keep someone waiting if I don’t respond today
Recently resolvedThings I was worried about that turned out to already be settled

When I list only the “needs action” items, it’s surprisingly short. I also deliberately include “recently resolved” items. Just seeing that something I was worried about is already handled changes the mood of the morning.

On days with nothing to report, I don’t force content into the space. I just show one line: “Nothing needs your attention today.” Trying to fill an empty section tends to make the content feel dishonest.

I’m careful about how things are phrased

I try to keep the briefing’s wording from sounding like instructions. Instead of “please respond to this,” I just state the fact: “this is the situation.”

I also avoid apologetic phrasing. Instead of “there wasn’t much to report,” I go with something like “it’s a quiet day” — stating the situation as-is. Not mixing in evaluative or urgent-sounding language feels like a condition for being able to read this every morning without stress.

Making the day’s shape visible at a glance

Beyond the text, I also represent how packed the day’s schedule is using something like an SVG line graph. The line goes higher during time blocks packed with meetings, and stays flat during open time.

Without reading a single word, glancing at whether the line is high or low gives you a rough sense of the load. On busy days especially, this kind of intuitive information sinks in faster than text. I keep the graph as simple as possible, and avoid exaggerating the peaks beyond how packed the schedule actually is.

Making sure the display never breaks

Since this is generated fresh as a single HTML file every morning, loading fonts or images from external sources risks a broken layout depending on network conditions. So I do the following.

On top of that, right after generation, I take a screenshot of how it actually renders in a browser. It’s a simple setup: a headless browser opens the file automatically, saves it as an image, and I check it visually.

node -e "const {chromium} = require('playwright');
(async () => {
  const b = await chromium.launch();
  const p = await b.newPage({viewport: {width: 960, height: 1400}});
  await p.goto('file:///path/to/generated.html');
  await p.screenshot({path: 'check.png', fullPage: true});
  await b.close();
})();"

Being able to check it with my own eyes right after generation prevents the kind of accident where the layout is broken and I go through the whole day without noticing.

What I noticed after building this

The biggest change is that I no longer have to open a bunch of apps in the morning. One glance tells me what to keep in mind for the day.

It’s generated automatically at a fixed time on weekdays, so I don’t even need to remember when to check it. I think this “automatically ready at a fixed time” design is exactly what makes it easy to turn into a habit.

Who this is for

Wrap-up

I built a system that has AI pull my schedule and messages together across sources and prepares them as a single briefing every morning. It turns out the real crux wasn’t gathering the information — it was the judgment call of “narrowing it down to only what needs to be seen” and the craft of “making sure it opens looking the same way every time.”

This whole system only works because there’s a connection I can take for granted every morning. Building this briefing turned out to be a good excuse to take a closer look at my own connection, too.

Try the fee simulator and get 100 points, no sign-up required Take a look at your own connection with Rakuten Mobile

Clicking this opens the Rakuten login page. Once you log in, you’ll see the campaign details.

This article contains affiliate advertising. If you sign up for a product or service through a link on this site, we may receive compensation from the partner company. The site operator is also an employee of Rakuten Group and may receive compensation through an employee referral program. The content and opinions here are based on the operator’s own experience and research regardless of any advertising relationship, but please read with the above in mind. See the Disclaimer & Affiliate Disclosure for details. Disclaimer & Affiliate Disclosure

This article includes machine-translated content. Please check the official Rakuten Mobile multilingual page for exact terms.

If you have concerns about Rakuten Mobile coverage or signal quality, you can consult through the official signal improvement request form .

ABOUT THE AUTHOR
まさきん

Rakuten Group employee · Digital Marketer (holds a Financial Planner qualification)

In his early 40s, part of a dual-income household with four kids. Works as a digital marketer at Rakuten Group, while also using his Financial Planner (FP) qualification to focus on household finances and building assets.

View Profile

Related Articles

RELATED
I Subscribed to X Premium for Grok, and It Turned Out to Work in My Tesla Too Using AI

I Subscribed to X Premium for Grok, and It Turned Out to Work in My Tesla Too

I signed up for X's paid plan mainly to get Grok. Around the same time, I was surprised to discover the same Grok had become available inside my Tesla too. Here's everything I found out, from choosing a plan to actually using it in the car.

2026.09.01 · 3 min read
A simple way to turn verbal family plans into Google Calendar events with AI Using AI

A simple way to turn verbal family plans into Google Calendar events with AI

I'll share how I turn plans I hear through family LINE chats or conversations, like 'next month's sports day starts at 9am on 10/25,' into a Google Calendar link just by telling an AI. No scanning, no app install needed.

2026.07.10 · 5 min read
How I Have AI Automatically Check My Card Spending Every Night — and Flag Only the 'Expenses Worth Discussing' Using AI

How I Have AI Automatically Check My Card Spending Every Night — and Flag Only the 'Expenses Worth Discussing'

I built a system that has AI automatically tally up each day's card spending and notify me only when a purchase crosses a threshold I set in advance, flagged as an 'expense worth discussing.' Here's a full implementation walkthrough, including the formula for judging sync delays and the design behind capping API calls.

2026.06.20 · 7 min read
Switch to Rakuten Mobile, get up to 14,000 points Try the fee simulator and get 100 points, no sign-up required →
Apply Now →