Daily meeting brief with your own people database
Each weekday at 7am, get one email covering today's external meetings, with notes pulled from your personal database of people you've met.
Build me an agent workflow that prepares a morning meeting brief for my external meetings every weekday and emails it to me. The agent should treat my General Input Database as a persistent personal CRM of every person I've ever met, reading from it and writing to it on every run.
Trigger: cron, every weekday (Mon–Fri) at 7:00am in my local time zone.
Step 1. Use Google Calendar's List Events to fetch every event on my primary calendar for today, from start-of-day to end-of-day in my local time zone. Include attendee details.
Step 2. Filter to meetings that have at least one external attendee (any attendee whose email domain is not my own). Skip events I've declined and skip all-day events. If there are zero external meetings today, send a one-line email saying "No external meetings today" and exit.
Step 3. Make sure the General Input Database has the tables this workflow needs. During planning, ensure a table called attendee_notes exists with columns: email TEXT PRIMARY KEY, name TEXT, company TEXT, bio TEXT, notes TEXT, last_seen_at DATETIME, created_at DATETIME DEFAULT CURRENT_TIMESTAMP. Also ensure a meeting_log table with columns: meeting_id TEXT PRIMARY KEY, meeting_title TEXT, meeting_start DATETIME, attendee_emails TEXT, follow_up_notes TEXT, created_at DATETIME DEFAULT CURRENT_TIMESTAMP. Create them with Execute SQL if they don't exist.
Step 4. Collect the unique set of external attendee emails across today's meetings. Run a single Execute SQL SELECT against attendee_notes to pull any existing rows for those emails.
Step 5. For every attendee that does NOT yet have a row, do a light web lookup (LinkedIn-style public info, company website, recent press) and draft a short one-paragraph bio: current company, role, anything notable. Then Execute SQL an INSERT into attendee_notes with email, best-guess name and company, the drafted bio, and last_seen_at = today. Be conservative — if you can't confidently identify the person, save what you know and leave the rest null.
Step 6. Compose ONE consolidated morning brief covering every external meeting in chronological order. For each meeting include: meeting title, start time and duration, the list of attendees with their company, a 2–4 sentence summary of what we know about each attendee (pulled from attendee_notes — prefer my own notes field over the agent-written bio), and 2–3 suggested talking points tailored to who's in the room. Format as clean HTML with one section per meeting.
Step 7. Send the brief to me using Gmail's Send a Message. Subject: "Morning brief: {today's date} — {N} external meeting(s)". Body: the HTML from step 6.
Step 8. For each meeting in today's set, Execute SQL an INSERT (OR IGNORE) into meeting_log with the meeting's id, title, start time, comma-separated attendee emails, and an empty follow_up_notes column. Also UPDATE attendee_notes.last_seen_at = today for every attendee in today's meetings. These placeholder rows are how I'll later add my own post-meeting notes by replying or via another workflow.
Integrations: Google Calendar (List Events), General Input Database (Execute SQL, multiple times), Gmail (Send a Message), plus a light web lookup for unknown attendees. The database is what makes this compound: by my second meeting with the same person, the brief already remembers everything from the first one, including any notes I added myself.
Never overwrite a row's notes field if it's already populated — that column is reserved for my own writing. The bio column is the agent's to keep up to date.
Additional information
What does this prompt do?
- Reads your work calendar each morning and finds today's meetings with people outside your company.
- Pulls everything you have previously logged about each attendee from your own private people database.
- Researches anyone new, drafts a short bio, and saves it so the next meeting with that person already has context.
- Emails you one clean morning brief with attendees, what you know, and a few suggested talking points per meeting.
What do I need to use this?
- A Google account with Calendar and Gmail connected.
- A General Input account. The private people database is built in and shared across your workflows.
- Five minutes the first morning to review the brief and tweak how the agent writes notes.
How can I customize it?
- Change the send time, or run it on weekends as well.
- Send the brief to Slack instead of Gmail, or do both.
- Add your own fields to the people database, like deal stage, last touchpoint, or how you met.
- Filter which meetings get briefed, for example skip 15-minute slots or only include meetings with two or more attendees.
Frequently asked questions
What happens if I have not met any of today's attendees before?
Where are these notes stored, and is the data private?
Can I edit or overwrite the notes the agent writes?
Will it brief every event, including internal standups?
Can I get the brief somewhere other than email?
Walk into every meeting with the history.
Connect Google Calendar and Gmail once, and Geni builds you a private people database that gets smarter with every meeting.