Calendly team workload board: see who is drowning in meetings
Open one board every Monday to see each person's meetings, booked hours, and spare capacity, then hand the next booking link to whoever has room.
Build me a team scheduling load board that a manager opens every Monday to see who is drowning in meetings and who has room to take more. The data all comes from Calendly, and there is one Slack Bot action for sharing the summary.
The main view is a roster table. On load, pull the organization roster with the Calendly List Organization Memberships operation, then for each member pull that member's bookings for the selected date range with Calendly List Scheduled Events. Pull the catalog of event types once with Calendly List Event Types so each row can break its meetings down by type. Show one row per person with total meetings, total booked hours, average meeting length, and the mix across event types. Sort by booked hours descending by default so the most loaded person sits at the top.
Flag anyone over a weekly booked-hours threshold that I can configure inside the app, defaulting to 20 hours. Persist the threshold so it survives a reload rather than resetting every session. Flagged rows get an obvious visual treatment, and the header carries a count of how many people are currently over the line alongside a count of who has capacity.
Let me switch the whole board between this week, last week, and the trailing four weeks. When the trailing four weeks range is selected, compare each person's weekly average against the threshold rather than the four-week total, so the flag keeps meaning the same thing, and show both the total and the weekly average in the row.
Below the roster, show a heatmap of day of week by hour of day across the whole team, built from the same scheduled events, so I can see which slots fill up fastest and where the quiet periods are. Highlight the hottest cells so it is obvious where to shift availability, and let me hover a cell to see how many meetings land in it.
Clicking a person opens a per-person drill-in that shows exactly what that person is bookable for. Use Calendly List Event Type Hosts to resolve which members host which event types, and for each event type they host show its name and duration alongside its availability rules from Calendly List Event Type Availability Schedules. Also list that person's meetings for the selected range so I can see the detail behind their totals.
From an underloaded person's row, and also from inside their drill-in, I can click to generate a booking link for them using Calendly Create Single-Use Scheduling Link. Let me pick which of their event types the link should be for, then show the resulting URL with a copy button so I can hand it straight to a prospect.
A Share button posts the week's load summary to a team channel using the Slack Bot Send a Message action. Let me pick the channel and preview the message before it goes. The summary should cover per-person booked hours, who is flagged over the threshold, and who has capacity to take more.
Implementation notes. Calendly resource identifiers are full URIs and the UUID is the last path segment, so keep the full URI when passing a user, organization, or event type into another call, and only slice off the last segment when a call specifically wants a bare UUID. List endpoints are cursor paginated through pagination.next_page_token, so page until the token comes back null instead of reading only the first page, otherwise busy people silently lose meetings off their totals. Availability and busy time queries are capped at a 7-day range per request, so the trailing four weeks view has to fetch week by week and aggregate the results. Cache the roster and the event type catalog for the session so switching ranges does not refetch everything from scratch.
What does this prompt do?
- One row per team member showing their total meetings, total booked hours, average meeting length, and the mix of meeting types they ran that week.
- A team heatmap of which days and hours fill up fastest, so you can shift availability before the crunch instead of after it.
- Automatic flags on anyone past your weekly booked-hours limit, set to 20 hours by default, so overload is visible before it turns into burnout.
- One click from an underloaded person's row generates a fresh one-time booking link you can hand straight to a prospect, and a Share button posts the week's summary to your team channel.
What do I need to use this?
- A Calendly account on a plan that includes teams, with permission to see your organization's members and their scheduled meetings
- A Calendly plan that supports one-time booking links, if you want to generate booking links from the board
- A Slack workspace, only if you want the Share button to post the weekly summary to a channel
How can I customize it?
- Change the weekly booked-hours limit from the default 20 to whatever your team treats as a full week
- Switch the whole board between this week, last week, and the trailing four weeks
- Choose which Slack channel the Share button posts the weekly load summary to
FAQs
Does this change anyone's calendar or availability?
Do I need a paid Calendly plan?
Can I look at more than one week at a time?
What counts toward someone's booked hours?
Do I have to connect Slack?
Related templates
See how your brand's news coverage and sentiment stack up against four competitors, then let an assistant write the weekly report for you.
One screen showing every social post waiting on approval, sorted by deadline, so reviewers can approve or reject without leaving the page.
Every Monday, find the past champions and closed-won contacts who changed jobs, update Attio, and get the moves worth chasing in Slack.
Staff submit what happened, your social manager edits the copy, picks the accounts and puts it on the calendar without a single spreadsheet.
Open one board each morning, see which voice calls went badly, replay the exact moment the caller got frustrated, and file the fix.
A personal queue of every overdue Guru card, sorted by how late it is, with one-click verify, reassign, comment, and an agent that drafts the refresh for you.
Stop guessing who has room for one more meeting.
Open one board, see the whole team's meeting load at a glance, and route the next booking to the person with actual capacity.