Build meeting agendas from your live Dart project board

By General Input

Every weekday morning we check your calendar for project meetings and write each one a focused agenda from what is actually happening in Dart.

Integrations

  • Dart
  • Google Calendar
  • Slack Bot

Type

Agentic Task

Categories

  • Operations

Every weekday at 7:30am, prepare meeting agendas for the recurring project meetings I have that day, building each one from the live state of the matching project in Dart. Handle the whole day's meetings in a single pass.

Start with Google Calendar's List Events on my primary calendar, bounded to today in my local timezone. Set singleEvents to true so recurring series expand into individual instances, otherwise recurring meetings will not come back as today's events at all. Keep only meetings that look like recurring project, standup, sync, or status meetings, judging from the event title and its recurrence.

Skip two kinds of meeting entirely. Skip one to one meetings, which you can spot from having two attendees or fewer including me. Skip external calls, which you can spot when any attendee's email domain differs from my own organisation's domain. Do not write agendas for either.

For each remaining meeting, match it to a Dart dartboard by name similarity between the event title and the board name. Be strict about this. If no board is a confident match, skip that meeting and move on rather than guessing, and note the skip in your final summary. A wrong agenda is worse than no agenda.

Before reading any tasks, call Dart's Get User Space Configuration once to resolve the workspace's real dartboard names, status names, assignees, and priorities. Valid values vary per workspace, so use what this returns rather than assuming names like Done or In Progress exist.

Then use Dart's List Tasks against the matched dartboard, filtering server side by status, assignee, and dates rather than pulling the whole board and filtering afterwards. These list endpoints paginate with limit and offset and return a count, next, previous, results envelope, so page only as far as you need. The API returns 429 when rate limited, so keep the number of calls modest and back off if you hit it.

Gather four things for each project: tasks completed since this meeting last occurred, tasks due this week, tasks already overdue, and tasks that are blocked or sitting unassigned. To find when the meeting last occurred, look back over the previous 30 days of calendar events for the earlier instance of the same recurring series and use that instance's start time as the cutoff. If you cannot determine it, fall back to the last 7 days.

Write the agenda into Dart with Create Doc, titled with the meeting name and today's date, and place it sensibly in the workspace. Structure it as three sections: decisions needed, at-risk items, and a short progress recap. Keep it to the handful of things genuinely worth discussing as a group. Do not dump the entire board into the doc, and leave out anything that is simply proceeding normally. Note that Dart offers no way to read logged time, so keep the recap to task counts, statuses, and due dates, and never state hours spent or burn rate.

Finally, post to the meeting's Slack channel using Slack Bot's Send a Message, with the link to the Dart doc plus a three bullet preview of the most important items, so attendees can prep before they join. Match the meeting to its channel by name similarity, and if there is no obvious channel, post to a designated fallback channel and say which meeting the agenda belongs to.

Do not modify the calendar events themselves. Google Calendar's update operation is a full replace that clears any writable field not resent, so treat the calendar strictly as a read source and let Dart and Slack carry the output. Finish with a brief summary of which meetings got agendas and which were skipped and why.

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 accountFront desk appointment confirmation board for the next 3 daysGive your team Looker numbers without buying more seats