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”