Add external meeting guests to Attio
A Google Calendar (Workspace MCP) + Attio agent flow
You take a sales call, the meeting goes on your calendar with the prospect's email as a guest, and then you forget to ever put them in the CRM. A week later you can't remember who you met. This recipe makes the calendar do the data entry. The agent reads upcoming and recent events with get_events, pulls the attendee emails that aren't on your own domain, and for each new external guest creates a person record in Attio with create-record: name, email, and the meeting title and date as context. Google Calendar returns events when the agent queries it rather than pushing them, so this runs on a cadence and the agent remembers which attendee emails it has already added, so a recurring weekly sync doesn't recreate the same person every time.
The flow
get_eventsRetrieves events from a calendar with time-range filtering.
create-recordCreates a new person, company, deal, or custom-object record.
Step by step
- Read the calendar events
The agent calls get_events for your work calendar over a time window, say the next and last seven days. Each event includes a title, time, and the attendee list with email addresses and response status.
- Filter to external people
From each event's attendees the agent drops your own domain and resources, leaving the outside guests. It checks each email against Attio and the set it has already processed, so only genuinely new contacts move forward.
- Create the Attio record
For each new external guest the agent calls create-record as a person: name from the attendee entry, email, and a note built from the meeting title and date so the record shows where the relationship started. A repeat guest is skipped rather than duplicated.
Tell your agent
Twice a day, call Google Calendar get_events for the next seven days on my work calendar, and for each external attendee not already in Attio, create a person record with their name, email, and the meeting title.
Setup
This flow needs both servers connected to your agent. Follow each install guide:
Worth knowing
- get_events returns events for a time range, not a contacts list, so the agent extracts and dedupes attendees itself; without that, a recurring meeting re-adds the same person on every read.
- Attendee entries sometimes carry only an email and no display name, especially for guests who never accepted. Fall back to the email as the identifier and let a later enrichment fill the name.
Questions
- Will internal teammates end up in the CRM?
- Not if you exclude your own email domains. The agent filters attendees to external addresses before creating anything, so colleagues on the invite are skipped.
- What about declined invites?
- Each attendee carries a response status. The agent can require accepted or tentative before creating a record, so people who declined the meeting don't become contacts.