Calendly team workload board: see who is drowning in meetings

By General Input

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.

Integrations

  • Calendly
  • Slack Bot

Type

App

Categories

  • Operations
  • HR & People

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.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them