# Fill tomorrow's empty GoHighLevel slots before they go to waste

> Every weekday afternoon, we spot tomorrow's open appointment times, pick the warm leads worth calling in, and offer each one a personal note.

- Workflow type: agent
- Services: GoHighLevel, Slack Bot
- Categories: Sales, Operations
- Published: 2026-08-14

## What it does

- Checks tomorrow's booking calendar each weekday afternoon and works out how much of the day is still unsold.
- Finds warm leads who showed interest but never booked, skipping anyone already on the calendar or contacted in the last week.
- Sends each person a short, individually written note offering two or three of the specific times that are open.
- Posts a Slack summary showing which slots are still free, who was contacted, and what they were offered.

## What you'll need

- A GoHighLevel account with the calendar you take bookings on
- Contacts in GoHighLevel with a phone number or email so messages can actually reach them
- A Slack workspace where the daily summary should be posted

## Prompt

Every weekday at 2pm, check my GoHighLevel calendar for tomorrow's unbooked capacity and try to fill it before the day goes to waste.

Start by pulling tomorrow's availability. Use GoHighLevel Calendars: Get Calendars to find the booking calendar I use for client appointments, then Calendars: Get Free Slots for that calendar across tomorrow's date range in my local timezone. Count the genuinely open slots. If fewer than two slots are open, stop right there and send nothing at all, no messages and no Slack post. One stray gap is not worth pestering anyone over.

If there is meaningful empty capacity, find people worth offering it to. Use Contacts: Search Contacts to pull warm leads, meaning people who showed real interest but never booked: recent inquiries, form fills, and opportunities that stalled before a meeting was ever set. Then screen them before contacting anyone. Use Contacts: Get Appointments for Contact and skip anyone who already has an upcoming appointment, and use Contacts: Get All Notes to skip anyone carrying one of this workflow's outreach notes from the last seven days. Nobody should get pestered twice in the same week.

From whoever survives that screen, pick the handful who are the best fit for tomorrow's specific times, usually three to five people, not everyone who technically qualifies. Weigh how recently they engaged, what they originally asked about, and whether the open times plausibly suit them. Judgement matters more than volume here, and four well aimed notes beat twenty generic ones.

Message each person individually with Conversations: Send a new message. Offer two or three of the specific open times, and write every message from scratch in my voice, referencing what that person actually asked about. Vary the wording from person to person. These must not read as one template with the name swapped out, since some of these people know each other.

Log what was offered on each contact with Contacts: Create Note, recording the date, the exact times offered, and the channel used, so a later run can see it and skip them. If a note from this workflow already exists for the current week, update that one with Contacts: Update Note rather than stacking up a second.

Finish by posting a summary to Slack with the Slack Bot Send a Message action. Show which of tomorrow's slots are still open, who was contacted, and what times each person was offered, so whoever owns the calendar can see the remaining gaps and work them by hand if they want. Keep it short and scannable.

## How to customize

- Change when it runs or how far ahead it looks, for example checking two days out instead of one.
- Raise or lower the minimum number of open slots before it contacts anyone, and how many people it reaches per run.
- Adjust who counts as a warm lead, and how long someone stays off the list after being messaged.

## FAQ

### What happens if my calendar is already full?

Nothing at all. If fewer than two slots are open for tomorrow, it sends no messages and posts no summary. A nearly full day is not worth interrupting anyone over.

### Will everyone get the same copy-pasted message?

No. Each note is written individually, in your voice, referencing what that person originally asked about. The open times are the only thing the messages have in common, which matters when several of your leads know each other.

### Could the same person get pestered over and over?

No. Everyone who receives an offer is logged on their contact record with the times they were given, and anyone messaged in the last seven days is skipped, as is anyone who already has an upcoming appointment booked.

### Does it book the appointment for them?

No. It offers the open times and lets the person reply the way they normally would. You stay in control of what actually lands on the calendar.

### Can I review the messages before they go out?

By default it sends them, so a gap can be worked the same afternoon it appears. You can change it to post the drafts to Slack for approval first if you would rather have a person in the loop.

Use this prompt in General Input: https://www.generalinput.com/prompts/fill-tomorrows-empty-gohighlevel-slots-before-they-go-to-waste