Hourly
Get a research brief before external meetings
Before each external meeting, a short brief on the other company is saved to Drive and the link is emailed to you.
- Runs
- Hourly
- Apps
- Google Calendar, Google Drive
- AI
- Yes, uses the built-in AI allowance
- Access
- calendar.readonly; drive.file
Send this to your assistant
Create a ClickRuntime automation: every hour, find external meetings in the next day on my calendar, research the attendee's company, save a brief to Drive and email me the link.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A founder has four or five calls a day with prospects, investors and partners. She often joins with only the company name in her head, spends the first minutes asking basic questions and misses the chance to make the call about them.
A one-page brief prepared before each external meeting gives her the company's background and recent news in the five minutes before she joins.
What you get out of it
Better first impressions
Knowing what the other company does and what changed recently lets you open with a relevant question instead of a general one.
Preparation that fits a busy day
A short brief is quick to read between calls, unlike researching each company from scratch.
Briefs kept for later
Every brief is saved in Drive, so you can look back before a second meeting or share it with a colleague joining the call.
Internal meetings are left out
Only meetings with people outside your company get a brief, so you are not sent notes about your own team.
How it works
What happens, step by step
Every hour ClickRuntime checks your Google Calendar for meetings in the next day with people outside your company.
It skips meetings that already have a brief.
It reads the other company's website, and AI writes a one-page brief with what they do, recent news and suggested questions.
The brief is saved as a document in your Drive folder and you get an email with the link.
Before it runs live
- Connect Google Calendar
- Connect Google Drive
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Run it at a different time, more or less often, or only on weekdays
- Change what the AI looks for, or how it writes the result
- Add another app, for example also send it to Slack
- Combine it with other Google Calendar and Google Drive steps into one automation
Under the hood
The code that runs this automation
from datetime import datetime, timedelta, timezone
from bs4 import BeautifulSoup
from googleapiclient.discovery import build
from google.oauth2.credentials import Credentials
from clickruntime import on_trigger, credentials, state, notify, ai, http
MY_DOMAIN, FOLDER = "northwind.example", "briefs-folder-id"
@on_trigger
def run(event):
creds = Credentials(credentials.connection("google", "work"))
now = datetime.now(timezone.utc)
events = build("calendar", "v3", credentials=creds, cache_discovery=False).events().list(calendarId="primary",
timeMin=now.isoformat(), timeMax=(now + timedelta(days=1)).isoformat(), singleEvents=True).execute()["items"]
done = state.get("done") or []
for e in events:
domains = {a["email"].split("@")[1] for a in e.get("attendees", [])} - {MY_DOMAIN, "gmail.com"}
if e["id"] in done or not domains:
continue
domain = sorted(domains)[0]
page = BeautifulSoup(http.get(f"https://{domain}", timeout=10).text, "html.parser").get_text(" ", strip=True)[:6000]
brief = ai.generate(f"Write a one-page pre-call brief on {domain} for '{e.get('summary')}':\n{page}", max_output_tokens=700).text
doc = http.post("https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart", headers={"Authorization": f"Bearer {creds.token}"},
files={"metadata": (None, f'{{"name": "Brief - {domain}", "mimeType": "application/vnd.google-apps.document", "parents": ["{FOLDER}"]}}', "application/json"),
"file": ("b.txt", brief, "text/plain")}).json()
notify.email_me(f"Brief: {e.get('summary')}", f"https://docs.google.com/document/d/{doc['id']}/edit")
done.append(e["id"])
state.set("done", done[-300:])
return {"briefs": len(done)}FAQ
Common questions
Where does the research come from?
What if the attendee uses a personal email address?
Will I get two briefs for the same meeting?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Prepare a lesson plan for each of tomorrow's classes
Each evening, every class in tomorrow's calendar gets a lesson plan document in Drive, linked from the calendar event.
See how it worksCreate a prep doc before every sprint planning meeting
The day before each Sprint Planning event, a prep document with a drafted agenda is created in Drive and linked on the calendar event.
See how it worksLet your voice or chat agent book appointments and answer from Drive
Your AI phone or chat agent can check your free times, book appointments in Google Calendar and answer questions from your FAQ document in Drive.
See how it worksKeep exploring
Set up “Get a research brief before external meetings” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.