Scheduling command center for multiple people's calendars

By General Input

See every calendar you can reach on one board, find times that work for everyone at once, and book, move, or cancel meetings without leaving the page.

Integrations

  • Aurinko
  • Slack Bot

Type

App

Categories

  • Operations

I want a scheduling command center I keep open all day to run meetings across several people's calendars at once. Build it as an app on Aurinko, with Slack Bot for optional team notifications. The people whose calendars I manage may sit on Gmail, Office 365, Exchange, iCloud, or IMAP, and the app should behave identically regardless of which. That provider-agnostic surface is the whole reason to build this here rather than inside one provider's calendar UI.

The main view is a day and week board. On load, call List Calendars to get every calendar the connected mailbox account can reach, and let me choose which ones are pinned to the board. For the selected date range, call List Events In Range for each pinned calendar and lay the events out side by side, one column per calendar, aligned on a shared time axis so I can read across them. Use Get Calendar when I need the details of a single calendar, such as its display name or timezone.

The board flags three problems visually. Double bookings, meaning two overlapping events on the same calendar. Back to back meetings with no travel time, meaning a gap smaller than my configured buffer. And anything sitting outside that calendar's working hours window. Each flag should be obvious at a glance on the card itself, not hidden behind a click, because the point of the board is catching these without reading every event.

A find a time panel sits alongside the board. I tick the calendars that must attend, set a duration and a date window, and get back ranked candidate slots. Compute them by calling Get Free/Busy for each selected calendar across the window and intersecting the results, keeping only the gaps that are free on every selected calendar at once and long enough to fit the duration plus the buffer on both sides. Availability across people is intersectional rather than additive, and working that out by hand is exactly what standard calendar tools force assistants to do. Rank the surviving slots by how comfortably they sit inside everyone's working hours and how little they fragment the surrounding day.

Booking a candidate slot creates the meeting with its attendees using Create Calendar Event. Dragging a card on the board moves it using Update Calendar Event. Cancelling removes it using Delete Calendar Event. Event updates use ETag optimistic concurrency through an If-Match header, so the drag to move handler must refetch the event and retry when it receives a 409, which is what happens when someone else edited that event in the meantime.

After any create, move, or cancel, generate a pre-filled confirmation email with Create Draft, addressed to the attendees and summarizing what changed, including the new time rendered in each attendee's timezone. Show it to me inside the app so I can edit it, and only call Send Draft once I approve. Never send without my review. Optionally, and only when I have switched it on, also post a short note to a coordination channel using Slack Bot Send a Message.

Persist my settings per user: which calendars are pinned to the board, a working hours window per calendar, a buffer duration between meetings, my display timezone, and the channel used for coordination posts.

Support a hold versus confirmed distinction so tentative options can sit on the board before one is locked in. A hold renders visually distinct from a confirmed meeting, and locking one in should offer to clear its sibling holds in the same batch. Label every candidate slot and every event card with its timezone, since cross timezone coordination is where double bookings actually originate.

Two constraints to bake in. First, the Aurinko access token is tied to a single mailbox, but List Calendars returns every calendar that account can see, so an assistant holding delegate access to their executives gets all of those calendars on one board with no extra setup. Second, Aurinko exposes no contacts or tasks operations, so attendees must be typed in directly or drawn from the attendee lists of events already on the board, never looked up from an address book. Calendar id accepts the literal string primary to target the account's own calendar without looking it up first, and all time ranges are ISO 8601 with a timezone offset.

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