How AI is Shaping a New Human-Centric Approach to Product Design
A Case Study: How I Integrated AI in Gmail to Plan Meetings in the Fastest Possible Way
Table of Content
Introduction
The Problem
Current, Tool-Centric Solutions
”Integrating” Calendar and Email
Publishing Calendar Availability
Adding an AI Assistant to the Conversation
An AI-Enhanced, Human-Centric Solution
Proposing Free Times Directly from Email
Responding to Email Invitations
Creating Events from Email Content
Design Takeaways for AI Products
Your AI Product Must Be Centered Around the User, Not the Technology
Your AI Product Must Be Designed Around the User Journey
Your AI Product Must Deliver Reliable and Reproducible Results
Your AI Product Must Ensure a Snappy User Experience
In 2020, when OpenAI first released GPT-3, I wrote about how adopting Large Language Models (LLMs) would transform the way we conceptualize and design products. I argued that AI could enable more human-centric products, but this required rethinking our approach to design — moving away from building tools for people and instead enhancing workflows that align with natural human behavior.
Despite the incredible AI advancements since then, I've seen few truly innovative products built this way. Incumbents often just add common AI features to their existing products – e.g. generate-summarize-retrieve text, the proverbial lipstick on a pig – and even most startups are somehow anchored to the status quo, creating incremental rather than re-imagined experiences.
Therefore, I decided to build myself an example of what I meant: taking a common workflow (scheduling meetings via email) and designing a new AI-based experience around it.
Fun fact: while I'm an engineer by education and for the past couple of years I have worked, hands-on, on an LLM-based product, I hadn't written code in over a decade, never ever developed web apps, let alone Chrome extensions. Yet, with AI assistants like Claude, ChatGPT and Devin, I built this entire Chrome extension by myself, integrating with Gmail, Calendar, and various LLMs.
This project demonstrates AI's potential to enhance daily workflows and how it's democratizing software development. In this post, I'll share my journey of reimagining email scheduling through an AI lens, the principles guiding my design process, and the insights gained along the way.
The Problem
Scheduling meetings via email is probably the most common workflows for any professional, but it is also one of the most painful and time consuming. Even for simple 1-o-1 meetings, we have to go through constant back-and-forth, switching between email and calendar apps, proposing times, waiting for responses, and then repeating the process.
Several products attempted to solve this major pain point, but most fall short of truly simplifying the process. While company-wide "Scheduling assistant" functionalities in calendars can help as everyone's availability is accessible, they don't address all scenarios, especially when scheduling with external parties.
Let’s look at few product examples.
Current, tool-centric solutions
“Integrating” Calendar and Email
Both Google and Microsoft approach this problem by integrating a simplified Calendar interface within the email client sidebar:
While this solution somehow reduces context switching and data transfer from Calendar to Gmail/Outlook, it still asks the human to do all the work: click through several steps, manually browse the Calendar, identify suitable slots, and add them to the email.
The end result is an email that doesn’t quite look like a human-generated email (including a surprising “Scheduling by Google Calendar” growth hack in a paid account from a giant as Google):
The recipient has then to manually check those times against their calendar, go back to the email and accept one - or restart the proposal flow from the beginning.
Publishing Calendar availability
Another approach, pioneered by Calendly, allows users to essentially share a calendar view of their available times with others.
While this can streamline the process, it comes with its own set of challenges.
The sender has to first spend a minimum of 11 minutes to configure their account and generate those pages:
After that, the user has to create each and every type of meeting, configuring length, location, preferences, options, etc., for each.
After the success of Calendly, Google Calendar Appointment Scheduling and Cal.com started offering similar functionalities, simply replicating more or less the same UX.
On the receiving side, the experience is not better: users are required to leave their email client, access an external website browse the calendar view, pick a date and time to finally generate a calendar invite.
On top of the configuration time and awkward UX, the non-natural flow of pushing your calendar to someone sparkled discussions about “Calendly etiquette” as sending a Calendly link started appearing as rude and some sort of power play. which can feel impersonal or even rude in some professional contexts.
Adding an AI-assistant to the conversation
Some recent solutions have leveraged AI to mimic the boss-secretary interaction, aiming to alleviate the user’s burden.
In these setups, the user adds an AI assistant to an email thread and lets the AI (or humans behind it!) handle the scheduling process. The AI independently exchanges emails with recipients and eventually loops the user back in for confirmation.
While the AI has significantly improved from early attempts, this approach introduces inefficiencies and unnecessary complications, as the organizer's exclusion from the scheduling loop can lead to inefficiencies and require occasional intervention. And despite the adoption of AI and conversational interactions, users must still invest time in setting up scheduling preferences through rigid interfaces - or, worse, they need to awkwardly add such instructions as part of the email to the recipient and the assistant.
The introduction of an AI intermediary can also create awkward social dynamics and potentially cause frustration due to miscommunications or AI errors.
An AI-enhanced, human-centric solution
These existing solutions, while helpful, feel just incremental improvements designed with a tool-centric approach. They introduce new workflows and behaviors that don't feel natural or truly "human" to me. So, how can we do better?
When designing products, I like to start with the best (im)possible experience for the user — an ideal experience that ignores the boundaries of what’s currently technically achievable. This approach gives you the right product direction, and from there, you can work backwards to make it technically feasible.
In the email scheduling case, imagine a sci-fi scenario where your brain is directly connected to your calendar, instantly providing availability information when needed. Then, you could simply type an email to propose meeting times or accept received proposals without manually checking your calendar or spending time selecting options, as you inherently know your schedule.
By following this human-centric approach, the end result is a product that enhances existing user workflows, making the entire experience feel natural and, ultimately, human. You won’t need to introduce new, separate scheduling tools; you will enhance the right workflow — the user picking times and writing the email rather than the user-to-assistant flow that historically shifted the problem to a proxy instead of solving it.
The crazy part is that today, this sci-fi experience is all but impossible thanks to AI. And I even built it with the full help of AI!
Let’s start looking how the Chrome extension I built works in few use cases.
Proposing free times directly from email
When I want to organize a meeting, I start by typing my email with any initial context (or none at all) and then let the AI do the work for me. I simply click [Find Time], let the AI check my calendar, find available times based on the scheduling preferences I entered in plain English, and even write the email for me!
Whether I'm composing a new email or replying to an existing thread, the AI first understands the context, then generates appropriate content. This context-awareness doesn't come easily – it required careful product design. But the result is a more intuitive and flexible experience that adapts to how you work, not the other way around.
The scheduling preferences I provide are not rigid or constrained by a tool-centric UI like those in Calendly or Google Scheduling. Instead, for each email, I can simply describe what I need: meeting duration, number of options to propose, and useful details like “the other person is on the east coast” or “I can’t meet after 4pm on Friday” if I have commitments not reflected in my calendar. Most of these preferences remain the same for each meeting, so I ensured they don’t need to be re-entered every time.
It’s remarkable what kind of products you can build leveraging LLMs today: no more cluttered UIs, no more complex UX flows that only the designer of the product understands, no more dependency on the siloes created by the traditional app metaphor. Most impressively, as a user, you can now accomplish tasks that were previously impossible, simply by describing them in plain English — or your preferred language, which is incredible in itself if you think how challenging was to simply localizing an app.
Respond to email invitations
The previous use case is relatively simple and, even if much clunkier, there are already solutions like Calendly or Google Scheduling. But what if you are the recipient of an email proposing a meeting? You are on your own with the email-calendar-email loop.
Until now.
When I receive an email asking me to pick a time for a meeting from a few options, I simply click the same [Find Time] button, let the AI do the work for me. It understands the email’s purpose and content, checks my calendar, considers my context, follows my scheduling preferences and decides the best course of action.
Depending on the situation, the AI can
Accept one of the received date/time combination
Suggest specific times within the received dates or time intervals
Propose new options if I’m not available in any of the received ones
And of course the AI writes the email for me!
This part was definitely more complex to design (and code) to ensure the expected behavior.
While LLMs, properly prompted, significantly simplify the process of understanding and responding to complex scheduling scenarios, the deliberate decision to offer a single [Find Time] button to handle all scenarios, including the previous ones, required careful coding, prompting and flow design.
The complexity is still there, but it's hidden behind a simple interface, allowing users to focus on what matters most – their work and relationships – rather than the mechanics of scheduling.
Designing simple products means transferring complexity from the user to the machine.
Creating events from email content
When the schedule negotiation scenario ends with a selected time, someone has to create the calendar event, either to add it to their own calendars or to send an actual meeting invitation.
I haven’t seen much offered for this part of the user flow, aside from some basic date detection in iOS Email (Gmail’s event extraction is limited to flights, concerts or reservations). So I decided to build it as part of this same extension.
By clicking on [Create Event], meeting information are extracted from the opened email, and an appropriate Title and Description are generated by AI:
The beauty of using a LLM to build features is that I only had to properly prompt it to extract information like invitees’ emails, generate the Google Calendar API JSON and add them to the meeting invite — without having to write any additional code.
This is also the only product I’m aware of that can create multiple calendar events from a single email, a huge personal pain point I had for years. For example, I used to receive emails from my kids’ school with a long list of events that I, of course, never manually entered into my calendar, sometimes resulting in missed deadlines or last-minute “surprise” event. Now, with a single click of the [Create Event] button, I can instantly generate separate calendar events for each item, helping me stay on top of everything and look like a great father again!
Design Takeaways for AI Products
Your AI product must be centered around the user, not the technology
In the age of AI, we are all fascinated by what this technology can do. I don’t think in the history of humanity we have experienced anything of this magnitude.
But many companies fall into the trap of building products around what the technology can do, rather than what the user needs. While this has been historically true in general, the marvel of AI exacerbates this issue: I’ve seen many fascinating AI demos and AI features that at first glance seem impressive, but ultimately make you wonder, “Great, but who is going to use this?”
Steve Jobs says it at best:
You’ve got to start with the customer experience and work backward to the technology. You can’t start with the technology then try to figure out where to sell it. … A lot of companies do things because it’s technically possible, but in the end, nobody cares; nobody wants to buy them. And so we see a lot of that technology in search of a customer, and I think the hard thing is to figure out what can be done but also what people really want to do.
In the scheduling example, I of course had to first understand what a LLM could (and could not) do, but then I creatively used that knowledge to solve an actual user problem and and consider all its use cases.
Your AI product must be designed around the user journey
Identifying the use cases is just the first step. To design a human-centric product, you must then understand and analyze the existing user flow in much greater detail than ever to properly insert and prompt the AI modules.
For each step, ask yourself if a LLM, perhaps combined with an API, can augment or even completely remove that same step. For example, the flow of the user leaving Gmail to check Google Calendar is equivalent to combining the LLM analysis of the email with the API retrieving the busy time from Calendar. By following this design framework, you will realize you do not need to include a calendar view like Gmail or Calendly to solve the scheduling problem.
Because I was also coding the product, I had a much deeper understanding and direct control over each intermediate step of the user flow, breaking it down and optimizing it as needed to deliver the best experience. Even if you don’t code, you can guide your engineers with much more detailed requirements by thoroughly mapping out the user journey and identifying where AI can enhance or simplify each step.
Your AI product must deliver reliable and reproducible results
Building a feature through an “AI module”, while incredibly powerful, is still an art. While I’m certain that LLMs will improve reasoning and ability to follow instructions over time, it’s not the case today. You can certainly create a few examples where a single mega prompt gives you a great demo for X, but if you are building products, you don’t want likes, you want users.
Users do love the magical experience that AI can offer, but that’s useless if they don’t get reliable and reproducible outputs. Finding that balance is the art today. Imagine offering a meeting time that is already booked or refusing an important meeting even if you were free—no matter how impressive your demo is, nobody will use your product.
In my next post, I’ll share more details on how I (purposely) started with a single mega-prompt and then moved to a more refined approach to improve the accuracy of the outputs. The result is a sophisticated combination of LLM prompting, minimal business logic explicitly coded, and contextual information from the user flow within Gmail and from the user itself.
Your AI product must ensure a snappy user experience
No matter how spectacular and useful your AI is, you still need to craft the entire user experience.
When I showed an early prototype to my wife, she was first impressed by the magical experience. But a second later, she said “You need to make it faster”.
These are your users and their expectations today. They went from spending several minutes checking a calendar and composing an email, to getting a complete email with the push of a button. Yet, they feel that waiting 10-20 seconds for this new experience is too much. Why? Software is expected to be fast and few seconds in software are perceived as a terrible user experience.
I ended up having to optimize the prompting even more, break down flows and use some UX tricks to mask the “slow” LLM response time. This is an important yet often ignored aspect in AI today. Especially with agents that use advanced reasoning techniques, complex chains of logic, or even browser control to execute workflows, response times can be incredibly high. Yet, little effort is made to mitigate this issue or to question whether this is the optimal user experience for a product.
Ultimately, AI won’t shape the perfect user experience for you — your empathy and craft will.
Should I release this Chrome Extension? Join the waiting list to be notified when available — with enough interest I’ll make it happen!
If you need help building your AI product or just adopting AI in your company, reach out to me on X!