Skip to content

On a schedule

Get today's meetings by email each morning

Each morning you get the day's Calendly meetings with who is coming and what they told you.

Runs
On a schedule
Apps
Calendly
AI
Not needed
Access
PAT (read)

Send this to your assistant

Create a ClickRuntime automation: every weekday at 7:30am, email me today's Calendly meetings with times, invitee names and their booking answers.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

People who take meetings through Calendly often use several calendars: a work one, a personal one, a colleague's shared one. The morning ritual of opening each and cross-checking takes five minutes and still misses things, such as a call someone else booked on your behalf at 8 pm. Walking into a call with no context or no meeting link in hand makes the host look disorganized.

Each morning, ClickRuntime lists today's scheduled Calendly events, fetches the invitees for each one and emails you a tidy agenda with times, names and links. Because it asks Calendly directly, it includes events booked as late as the night before.

It is especially valuable for hosts running many short calls, such as sales development reps, recruiters and advisers. Hosts who juggle several calendars benefit most, since the email is built from the booking system itself.

What you get out of it

  • One list replaces calendar-hopping

    Instead of opening several calendars, you read one email that shows every Calendly meeting in order. The five minutes of cross-checking go away, along with the errors it causes. Cross-checking is slow and error prone, so a single reliable list is a real relief.

  • Late bookings are caught

    Events booked at the last moment are included because the list is built at send time. A call added at 8 pm no longer ambushes you at 9 am. Last-minute additions are exactly the ones people forget, which makes them the costliest to miss.

  • Names and context at a glance

    Seeing invitee names beside each time slot lets you recognize returning contacts and prepare accordingly. A familiar name might prompt you to review the last conversation. First impressions with a new contact depend on small details like this.

  • Meeting links are at hand

    Each entry points to the event details, so you do not scramble for a link as the call begins. Calls start on time, and the first impression stays professional. A packed Tuesday is visible on Tuesday morning, not at noon.

  • The day can be planned honestly

    With the full list in front of you before work begins, you can decide when to take breaks and when to do focused work. Overbooked days are spotted early enough to adjust.

How it works

What happens, step by step

  1. Every morning at 7:30, ClickRuntime looks up the Calendly meetings booked for today.

  2. For each meeting it fetches who is coming, their email address and the answers they gave on the booking form.

  3. You get one email listing the day's meetings in time order, each with the invitee and what they told you. On a quiet day the email says there are no meetings.

Before it runs live

  • Connect Calendly

What you get

RunsOn a schedule
Get today's meetings by email each morningtoday, 9:00Succeeded
Email · Today's meetings (3)09:30 Intro call with Sam Lee (sam@northwind.com) What would you like to discuss?: Pricing for 20 seats

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • 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
  • Add an AI step, for example to summarize, sort or draft a reply
  • Add another app, for example also send it to Slack
  • Combine it with other Calendly steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
daily_agenda_email.pyexample
from datetime import datetime, timedelta, timezone
from clickruntime import on_trigger, credentials, http, notify

API = "https://api.calendly.com"

@on_trigger
def run(event):
    h = {"Authorization": f"Bearer {credentials.secret('CALENDLY_TOKEN')}"}
    me = http.get(f"{API}/users/me", headers=h).json()["resource"]["uri"]
    start = datetime.now(timezone.utc).replace(hour=0, minute=0, second=0, microsecond=0)
    events = http.get(f"{API}/scheduled_events", headers=h, params={
        "user": me, "status": "active", "sort": "start_time:asc",
        "min_start_time": start.isoformat(), "max_start_time": (start + timedelta(days=1)).isoformat(),
    }).json()["collection"]
    lines = []
    for ev in events:
        uuid = ev["uri"].rsplit("/", 1)[-1]
        for inv in http.get(f"{API}/scheduled_events/{uuid}/invitees", headers=h).json()["collection"]:
            qa = "; ".join(f"{q['question']}: {q['answer']}" for q in inv.get("questions_and_answers", []))
            lines.append(f"{ev['start_time'][11:16]}  {ev['name']} with {inv['name']} ({inv['email']})\n    {qa}")
    notify.email_me(f"Today's meetings ({len(events)})", "\n".join(lines) or "No meetings today.")
    return {"meetings": len(events)}

FAQ

Common questions

Does it list invitees who have not yet confirmed or have cancelled?
It lists scheduled, active events, so canceled meetings are not included. Calendly books instantly, so there is generally no pending state. If a cancellation arrives overnight, the event is missing from the morning email. That keeps the email short and still useful for planning.
Will group events show every attendee?
The workflow fetches the invitees for each event, so group events can list several names. Very large group sessions can be shortened to a count to keep the email readable. Tell your AI assistant the behavior you prefer.
Can the agenda go to my assistant as well as me?
Yes. The email can be sent to several recipients, for example a team lead and an assistant who manages scheduling. Add the addresses you want and review the updated workflow before it goes live. Everyone then plans from the same list.
What permissions does it need?
PAT (read). Nothing else in your accounts is used.
Does it need AI?
No. It runs without AI, so it doesn't use your plan's AI allowance.
How many runs does it use?
One run each time it runs (on a schedule). Checks that find nothing to do and stop right away aren't counted.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Get today's meetings by email each morning” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.