Turn a Google Sheets Booking Calendar into an Availability Report in Slack
Find the open windows in a booking sheet by combining reservations, holds and maintenance blocks, then listing what remains available. Mio can read the sheet and bring the report into Slack; your team still decides what can be offered or booked.

TL;DR
- Specify the sheet, resources, date horizon and occupancy rules before calculating gaps.
- Treat holds and maintenance as blocks when your rules require it. A missing status is not a free slot.
- List availability per resource, then calculate the overlap when several resources must be free together.
- Start with a private report. Do not change prices, accept bookings or broaden its audience as part of the read-only job.
To turn a Google Sheets booking calendar into an availability report, read the occupied intervals for each resource, combine overlapping blocks and list the gaps inside a defined date horizon. If several resources must be booked together, intersect their free windows. Send the result to Slack with its source, calculation rules and unresolved assumptions.
Ask which windows are open, not how the month is performing
A monthly occupancy percentage does not tell an operator whether two rooms are free on the same dates. A revenue total does not reveal a maintenance block. The availability report answers a narrower question: which exact windows deserve a closer look?
Keep that question separate from pricing, demand forecasting and reservation acceptance. A gap in the sheet is only a candidate opening. Cleaning, staffing, minimum stays or an outdated source can still make it unusable.
Give the calculation an explicit source and rule set
Name the workbook, tab and relevant range. Google Sheets supports reading cell values from specified ranges. The practical point is to identify the current booking rows, not an old monthly summary that happens to be in the same workbook.
- Resource: the room, space or item occupied by each reservation. Use a consistent identifier.
- Start and end: include the year and an unambiguous date format. Specify whether the end date is exclusive.
- Status: define which values count as confirmed, held, canceled or unknown.
- Other blocks: include maintenance, owner use or preparation time according to your operating rules.
- Coverage: state the reporting horizon, time zone and whether all relevant rows were read.
For overnight bookings, an exclusive end means a January 4-6 reservation occupies the nights starting January 4 and 5. It does not occupy the night starting January 6. Same-day turnover still depends on the business's rules. Do not quietly reuse overnight assumptions for hourly appointments.
A small example you can check by hand
Consider this fictional three-studio example, with a horizon of January 4-11, 2027. End dates are exclusive, and holds and maintenance count as occupied. These rows illustrate the calculation, not customer activity.
| Resource | Occupied intervals | Open intervals |
|---|---|---|
| Studio A | Jan 4-6 confirmed; Jan 8-9 maintenance | Jan 6-8; Jan 9-11 |
| Studio B | Jan 5-7 hold; Jan 9-10 confirmed | Jan 4-5; Jan 7-9; Jan 10-11 |
| Studio C | Jan 4-5 confirmed; Jan 7-8 maintenance | Jan 5-7; Jan 8-11 |
All three are free together only from January 10 to January 11: one night. Adding their individual free nights would answer a different question and overstate the shared opening. If a blocked interval overlaps another block, combine them before counting occupied nights.
The Slack request
Mio is a Slack-native AI employee that can read a connected Google Sheet, calculate availability windows and deliver a formatted Slack message. Start with a private report and replace the bracketed fields in this template.
@mio read [sheet URL, tab and range] and prepare an availability report for [resources] from [start] to [end] in [time zone]. Use [start/end columns] and treat end dates as [exclusive or inclusive]. Count [status values] and [maintenance/hold rules] as occupied. Flag unknown dates or statuses instead of treating them as free. List open windows per resource, their duration and weekday/weekend split using [weekend definition]. Then show windows when all selected resources are free. Include the source link, read time and any coverage limits. Omit guest names and booking amounts. Return the report only in this DM. Do not edit the sheet, change prices, accept bookings or send it elsewhere.
If the sheet does not distinguish a hold from a cancellation, fix the input rule before using the result. A longer prompt cannot supply a business decision that was never recorded.
Check the boundaries before making it recurring
Check a confirmed reservation, a hold, a maintenance interval, an overlapping block and an end-date boundary against the original sheet. Confirm that a canceled row follows your rule and an unknown row is flagged. Recalculate one shared opening by hand.
Use those examples as a small workflow acceptance test. The calculation should pass the same checks after a changed column name, status convention or date format. A successful read is not sufficient if the report interprets the rows incorrectly.
Once the first report is useful, save a recurring version with its schedule, time zone, source and recipient. Confirm the saved audience matches the intended destination. Do not assume a job saved for a DM can post into a shared channel. The recurring-workflow runbook gives the next operator a place to keep those rules and the exception owner.
Keep the decision with the operator
The report should finish with windows to review and assumptions to resolve, not bookings made. Verify operational readiness and current source data before offering a slot. A scheduled report can become stale as soon as another reservation arrives.
Try the availability review with Mio in Slack. Start with one sheet and one read-only report, then decide whether it earns a place in the team's routine.
Keep exploring
Related articles

Playbook
How to Automate Client Reports From Slack Without Losing Review Control
Give every client a consistent, evidence-linked report while keeping account judgment and external sending with the human who owns the relationship.

Playbook
How to Automate Board Reporting Without Losing Control (2026)
You can automate board reporting by separating evidence collection, variance checks, narrative drafting, and final approval. The board still gets a report shaped by leadership judgment, but nobody spends the week before the meeting rebuilding company context from Slack threads and dashboards.

Guide
Why Two Dashboards Disagree: Reconcile the Metric Before the Meeting
When two dashboards disagree, compare what they count, whose activity they include, the reporting window, filters and metric definition before choosing a number. The discrepancy may be a real data issue, but two correct queries can also answer different questions.
Mio is the Slack-native AI employee that already knows your company, connects to 3,000+ tools, and turns shared context into work. Just @mio, it's handled.