TL;DR: A Sydney facilities management company maintains 40 commercial properties with approximately 420 scheduled maintenance events per year: HVAC servicing, fire safety inspections, lift maintenance, electrical testing, pest control, plumbing checks. The operations manager tracks all of it in a Google Sheet with one tab per property, checked weekly when she has time between tenant complaints and emergency repairs. Completion rate on schedule: 68%. Of the 32% that ran late, 23 became emergency callouts at an average of AUD $8,100 each. Total preventable emergency spend: AUD $186,300, plus AUD $12,000 in compliance fines. We designed a four-stage agent that dispatches contractors four weeks before due dates (six weeks for compliance items), parses their email confirmations, tracks completion and certificates, and escalates exceptions. Running cost: AUD $32-$78 per month.
Monday Morning, 40 Tabs
Monday morning. Sarah opens the Google Sheet. Forty tabs. One per property. She checks this week's maintenance items by scanning the "Next Due" column across each tab.
Tab 1 (Martin Place office): HVAC servicing was due last Friday. She missed it. Tab 7 (Parramatta retail): fire safety inspection due Wednesday. She needs to call the contractor. Tab 14 (North Sydney office): pest control due Thursday, contractor not yet confirmed.
She starts making calls. The HVAC contractor can come Thursday. The fire safety inspector is booked out for two weeks, which means the inspection is now overdue. The pest control company confirms Thursday.
Tab 23 (Mascot industrial): electrical testing was due three weeks ago. Sarah hasn't opened this tab in a month. The testing is a compliance requirement. If an incident occurs and the certificate has expired, the building owner's insurance may not cover it. She calls the electrician. Earliest availability: next week.
By lunchtime, Sarah has scheduled four items, discovered three overdue items, and hasn't checked the remaining 26 tabs. She'll get to them tomorrow. Or Wednesday.
At 2pm, the tenant at the Martin Place office calls. The HVAC is making a noise.
It was serviced seven months ago instead of six. The compressor bearing that would have been caught at servicing has failed. Emergency callout: after-hours HVAC technician, urgent parts sourcing, tenant disruption. AUD $7,200.
The scheduled servicing would have cost AUD $380.
This is, when stated precisely, a maintenance management system whose primary interface is 40 browser tabs, whose alerting mechanism is a tenant phone call, and whose escalation trigger is equipment failure. Sarah didn't decide to skip the Martin Place servicing. She got through 14 tabs and ran out of Monday.

The Company
Commercial facilities management company in Sydney, NSW. Twenty-two employees: owner/director, operations manager, two account managers, four maintenance supervisors, ten technicians, two admin, one accounts. AUD $3.8M annual revenue. Forty commercial properties under management across greater Sydney: offices, retail, light industrial.
Sarah is the operations manager. Each property has 8-15 scheduled maintenance items per year with different frequencies (monthly, quarterly, biannual, annual) and different contractors. Total scheduled events per year: approximately 420.
Sarah's loaded cost: AUD $48 per hour. Time spent on maintenance scheduling and tracking: 8-12 hours per week. That's 416-624 hours per year, or AUD $19,968-$29,952 in tracking time alone.
Maintenance events completed on schedule in the prior 12 months: 68%. Which means 32% were late, rescheduled, or missed entirely.
Emergency callouts in the prior 12 months: 67. Of those, 23 were attributable to missed or delayed preventive maintenance. HVAC failures from skipped servicing. Plumbing failures from deferred inspections. Electrical faults from overdue testing. Average cost per emergency callout: AUD $8,100 (after-hours rates, urgent contractor premiums, tenant disruption compensation, emergency parts pricing).
Annual cost of preventable emergencies: AUD $186,300.
Contractor penalties for late compliance inspections (fire safety, electrical testing): AUD $12,000 in fines across three properties last year.
Total annual cost of the maintenance tracking gap: AUD $218,268-$228,252.
The pattern behind every one of those 23 emergencies: a scheduled item, a known due date, a modest cost if completed on time, and a spreadsheet tab that Sarah didn't reach before the equipment did what unmaintained equipment does.
The Design
Four stages. The core insight: Sarah doesn't need a better spreadsheet. She needs the dispatching to happen without her checking anything, so that her attention goes to the exceptions rather than the routine.
Stage 1: Schedule database and monitoring
All 40 properties' maintenance items in a structured database: property, maintenance type, frequency, contractor, contractor email, lead time, compliance flag, last completed date, next due date. Daily check: what's entering the dispatch window?
The migration from Sarah's Google Sheet takes 2-3 hours. Forty tabs export to CSV, import to Postgres, verify. Once. The database then maintains itself as items complete and next-due dates recalculate.
Stage 2: Contractor dispatch and confirmation
Items entering the dispatch window trigger automated contractor emails with job details and preferred dates. Default lead time: four weeks before due. Compliance items: six weeks, because fire safety inspectors and electrical testers book out further and a missed compliance window carries a fine rather than an inconvenience.
The email goes from Sarah's address, not a system address, with the contractor's name and the property address. "HVAC servicing due at Martin Place office. Preferred date: [date]. Please confirm availability."
Contractor replies get parsed by Claude Haiku: confirmed (extract the date), needs to reschedule (extract the proposed alternative), or declined (flag for an alternative contractor). Confirmed appointments log to Google Calendar. No response in three days: reminder. No response in seven days: Sarah gets an alert with alternative contractors from the PropertyMe database.
Stage 3: Completion tracking and documentation
The day after a scheduled appointment, the agent checks whether the contractor confirmed completion and whether the certificate or report was uploaded to Google Drive. If not: follow-up emails at Day 1 and Day 3.
Compliance items carry a harder rule: the certificate must be uploaded within seven days or Sarah is alerted. A completed fire safety inspection without a filed certificate is, from an insurance perspective, an uncompleted fire safety inspection.
Completed items: next due date auto-calculated from completion date plus frequency. Schedule updates without anyone touching a spreadsheet.
Stage 4: Dashboard, compliance reporting, and early warning
Real-time dashboard: all properties, all maintenance items, status (scheduled, confirmed, overdue, completed, certificate pending). Compliance report: all regulatory items by due date with certificate status and days until expiry. Early warning: items where the contractor hasn't confirmed and the due date is approaching. Monthly report to building owners.

Design Notes
The four-week lead time was chosen from contractor availability data, not convenience. Sarah's historical dispatch pattern showed she typically called contractors 3-7 days before an item was due. Contractors need more notice than that, particularly compliance specialists. Fire safety inspectors in Sydney were booking two to three weeks out. Electrical testers similar. The four-week standard lead time and six-week compliance lead time were set so that the contractor's earliest availability still lands before the due date. The dispatch happens early enough that a booked-out contractor isn't a missed deadline.
The emergency-to-overdue cross-reference makes the cost visible. When an emergency work order is created in PropertyMe for a property with an overdue maintenance item of the same type, the agent flags the connection: "Emergency HVAC callout at Martin Place. Note: scheduled HVAC servicing was overdue by 6 weeks." Before the agent, Sarah experienced these as separate events: an emergency happened, and separately, a spreadsheet showed something overdue. The connection existed in principle and nowhere in practice. Making it explicit turned 23 abstract emergencies into 23 documented consequences of specific deferrals.
The Dave pattern recurs. Dave in Chicago tracked 340 HVAC units across 12 buildings in a spreadsheet updated on the last Friday of the month, when he had time. He discovered a $4,200 compressor replacement was still under warranty three weeks after paying for it. Same structure. Different continent. The spreadsheet records what should happen. It has no mechanism for making it happen.
How to Build This
Recommended stack: n8n for orchestration. PropertyMe API for property and contractor records. Google Calendar API for appointment logging. Google Drive API for compliance certificates. Gmail API or SMTP for contractor dispatch. Claude Haiku for parsing contractor email replies. Postgres for the schedule database.
Step 1: Set up infrastructure and populate the schedule (Days 1-3). Deploy n8n. Set up Postgres. Build the maintenance schedule table: property_id, maintenance_type, frequency, contractor_id, contractor_email, lead_time_weeks, compliance_flag, last_completed_date, next_due_date. Migrate from the existing Google Sheet (export CSV, import, verify). Approximately 420 items across 40 properties, 2-3 hours. Configure PropertyMe, Gmail, Calendar, and Drive credentials.
Step 2: Build the dispatch workflow (Days 3-5). Schedule Trigger daily at 06:00. Query Postgres for items with next_due_date within lead_time_weeks. Check dispatch history to avoid duplicates. Generate the contractor email with job details and preferred date. Log dispatch with status "awaiting_confirmation." Compliance items dispatch at six weeks instead of four.
Step 3: Build the response handler (Days 5-6). Email Trigger or webhook receives contractor replies. Claude Haiku parses: confirmed, reschedule, or declined. Confirmed: update status, log appointment, create Calendar event. Reschedule before the due date: auto-accept. Reschedule after: flag to Sarah. Declined: alert Sarah with alternatives from PropertyMe.
Step 4: Build completion and document tracking (Days 6-7). Day after the appointment: check for completion confirmation and certificate upload. If missing: follow-up emails at Day 1 and Day 3. Compliance certificates missing at Day 7: escalate. On completion: calculate next_due_date and update the schedule.
Step 5: Build dashboard and reporting (Days 7-8). Weekly dashboard: items by status, overdue count (target: zero), upcoming items, contractor confirmation rate. Monthly compliance report per property. Monthly owner report.
Step 6: Test and refine (Days 9-12). Pilot with five properties covering a mix of item types and frequencies. Verify dispatch timing. Test response parsing with 10 sample contractor replies. Verify Calendar and Drive integrations. Roll out to all 40 after a two-week pilot.
Estimated build time: 10-12 days for a competent n8n developer. Three weeks if learning alongside.
Cost Breakdown
Monthly running costs:
Component | Estimated Monthly Cost (AUD) |
|---|---|
n8n (Cloud Starter or self-hosted) | $30-$65 |
Claude API (Haiku email parsing) | $2-$5 |
Gmail, Calendar, Drive (Workspace) | $0 |
Postgres | $0-$8 |
Total | $32-$78 |
Claude API detail: contractor email parsing at roughly 80 responses per month costs approximately AUD $0.08. Schedule conflict detection: approximately AUD $0.02. Total intelligence cost: about ten cents per month.
Build costs if hiring: 10-12 days at AUD $500-$800 per day = AUD $5,000-$9,600. Self-built: AUD $0 plus migration time.
Year-one total: AUD $5,384-$10,536 (with developer) or AUD $384-$936 (self-built). Compared against AUD $218,268-$228,252 in annual gap cost. Attributing only the preventable emergencies (AUD $186,300), the ratio runs 18:1 to 485:1 depending on build approach.

What Could Go Wrong
Contractors ignore automated emails. Send from Sarah's address, not a system address. Personalise with contractor name and property address. Include a clear confirmation instruction. If no response after the reminder, Sarah calls. The agent identified the gap; Sarah handles the relationship. Track response rates per contractor. Consistently unresponsive contractors get flagged.
Schedule database goes stale. New properties, changed contractors, adjusted frequencies. Monthly reconciliation prompt: Sarah reviews and confirms. New properties get a setup checklist before the first dispatch cycle. PropertyMe integration can flag new properties automatically.
Compliance certificates not uploaded. Automated follow-up at Day 1, Day 3, and Day 7. Still missing at Day 7: escalate to Sarah with the contractor's details. The agent tracks the gap. Sarah closes it.
Emergency masks a missed scheduled item. Cross-reference emergency work orders in PropertyMe against overdue maintenance items of the same type at the same property. Flag the connection explicitly.
Contractor scheduling conflicts across properties. The agent checks confirmed appointments before dispatching. Where a conflict exists, it offers alternative dates. For contractors covering multiple properties, dispatches space across the month.
Australian compliance varies by state and council. Fire safety, electrical testing, and other requirements differ. Build the compliance schedule from each property's specific regulatory obligations rather than generic national standards. Sarah validates the initial setup per property. Verify with a compliance consultant before go-live.
The Pattern
If your business maintains assets on a schedule and the schedule lives in a spreadsheet that one person checks when they have time, your on-time completion rate is lower than you think and your emergency spend is higher than it needs to be.
Sarah wasn't failing at maintenance scheduling. She was doing an impossible amount of monitoring alongside a full operational role. Forty tabs, 420 events, competing against tenant complaints and emergency coordination. The Monday morning bottleneck here is literal: 40 browser tabs, 14 checked, 26 waiting until Tuesday, which becomes Wednesday.
The agent doesn't decide which maintenance matters. Sarah still sets the schedule, chooses the contractors, and handles the exceptions. The agent dispatches on time, chases the confirmations, and files the certificates. The routine happens automatically so the exceptions get Sarah's attention.
AUD $380 or AUD $7,200. Same servicing. Different timing.
This is Blueprint #52 in the AdAI series. Every week we publish the full architecture of a real AI agent design: the bottleneck, the build guide, and the costs. Free to read. Free to build from.
Want the next one? Subscribe to AdAI News. New blueprint every Thursday.
by TC
for the AdAI Ed. Team


