AI Meeting Agenda Generator Issue #22

https://github.com/lsvekis/Google-Apps-Script-Gemini-Projects

🚀 Apps Script + Gemini Mastery — Issue #22

AI Meeting Agenda Generator

Automatically generate structured meeting agendas using Google Apps Script + Gemini.


⭐ What You Will Build

In this issue, you’ll build an AI Meeting Agenda Generator that can:

📋 Create structured agendas from a simple prompt
⏱ Generate timed agenda sections
🎯 Focus meetings around goals and outcomes
👥 Tailor agendas for different audiences
📝 Export agendas into Google Docs automatically


🧠 Why This Project Matters

Most meetings start with:

  • unclear objectives
  • missing structure
  • wasted time
  • no clear outcomes

This tool helps transform vague meeting ideas into organized agendas.

Instead of manually planning, users can simply say:

“Create an agenda for a client onboarding call”

And the AI builds a professional meeting structure automatically.


🧩 Architecture

User prompt

Apps Script sends request to Gemini

Gemini creates structured agenda

Apps Script generates Google Doc output


🧱 Step 1 — Add the Menu

Code.gs

function onOpen() {
SpreadsheetApp.getUi()
.createMenu("AI Tools")
.addItem("AI Agenda Generator", "showAgendaSidebar")
.addToUi();
}

function showAgendaSidebar() {
SpreadsheetApp.getUi().showSidebar(
HtmlService.createHtmlOutputFromFile("Sidebar")
.setTitle("AI Meeting Agenda Generator")
);
}

🧱 Step 2 — Sidebar UI

Sidebar.html

<div style="font-family:Arial;padding:14px;">

<h2>AI Meeting Agenda Generator</h2>

<label><b>Describe the meeting</b></label>

<textarea id="prompt" style="width:100%;height:120px;">
Example: Create an agenda for a client onboarding meeting
</textarea>

<button onclick="generate()">Generate Agenda</button>

<pre id="output" style="white-space:pre-wrap;margin-top:12px;"></pre>

<script>

function generate(){

document.getElementById("output").textContent="Generating agenda..."

google.script.run
.withSuccessHandler(res=>{
document.getElementById("output").textContent=res
})
.generateAgenda(
document.getElementById("prompt").value
)

}

</script>

</div>

🧱 Step 3 — Generate Agenda with Gemini

AgendaGenerator.gs

function generateAgenda(userPrompt){

if(!userPrompt) return "Enter meeting details."

const prompt = `
You are a professional meeting planner.

Generate a structured meeting agenda.

Return JSON in this format:

{
"title":"meeting title",
"objective":"meeting objective",
"sections":[
{
"topic":"topic name",
"duration":"time estimate",
"details":"discussion details"
}
]
}

Meeting request:
${userPrompt}
`

let result

try{
result = callGemini(prompt,"")
}catch(e){
return "Gemini error: "+e
}

result = result.replace(/```json/g,"").replace(/```/g,"").trim()

let json

try{
json = JSON.parse(result)
}catch(e){
Logger.log(result)
return "Could not parse Gemini output."
}

return createAgendaDoc_(json)

}

🧱 Step 4 — Create Google Doc

AgendaDocWriter.gs

function createAgendaDoc_(agenda){

const doc = DocumentApp.create(agenda.title || "AI Meeting Agenda")

const body = doc.getBody()

body.appendParagraph(agenda.title || "Meeting Agenda")
.setHeading(DocumentApp.ParagraphHeading.HEADING1)

body.appendParagraph("Objective:")
.setBold(true)

body.appendParagraph(agenda.objective || "")

body.appendParagraph("Agenda Sections")
.setHeading(DocumentApp.ParagraphHeading.HEADING2)

;(agenda.sections || []).forEach(section=>{

body.appendParagraph(
`${section.topic} (${section.duration})`
).setHeading(DocumentApp.ParagraphHeading.HEADING3)

body.appendParagraph(section.details || "")

})

return "Agenda created: " + doc.getUrl()

}

🧱 Step 5 — Gemini Helper

Reuse the same helper file from earlier issues.

GeminiHelpers.gs

const GEMINI_API_KEY = "YOUR_API_KEY_HERE";
const GEMINI_MODEL = "gemini-2.5-flash";

🧪 Example Prompts

Users can request:

Create an agenda for a client onboarding call
Generate a weekly engineering standup agenda
Create a project kickoff meeting agenda
Generate a sales strategy meeting outline

📄 Example Output

The AI-generated Google Doc might include:

Client Onboarding Meeting

Objective

Review onboarding timeline and align expectations.

Agenda Sections

Introductions (5 mins)

Team introductions and meeting goals.

Project Timeline (15 mins)

Review milestones and deliverables.

Communication Workflow (10 mins)

Discuss reporting cadence and tools.

Questions & Next Steps (10 mins)

Clarify open questions and assign action items.


🔥 Advanced Exercises

Readers can extend this by adding:

✅ attendee-specific agendas
✅ automatic meeting summaries
✅ export to Calendar events
✅ agenda templates
✅ follow-up action item generation


🔜 Next Issue (#23)

AI Workflow Builder for Google Sheets

Describe a workflow → Apps Script generates automation logic automatically.

Example:

“Create a workflow to notify me when a row status changes to Completed”