← Blog

Reference design

Agent-run snow & ice routes: a ZenSched reference design

• ZenSched Team

The property manager calls at 7:05 a.m. “Was 2400 Hennepin cleared before 7?” Derek texted “done.” The truck GPS breadcrumb shows the plow was near the lot — but not the sidewalk, not the salt, not a photo of bare pavement at 5:47. RealGreen is $199 whether the north entrance got hit or not. What if an AI assistant could open tonight’s storm from a pasted site list, put a GPS check-in on the crew’s phone at each lot, capture surface, condition, salt, and after-photos on a Clear Proof form, and answer “who missed the 7 a.m. SLA” — without putting gate codes, contract rates, or HOA contact detail into a vendor cloud, and without pretending to be RealGreen, Boss LM, GPS Insight, or a legal slip-and-fall defense?

This reference design shows how a 1–8 truck snow and ice contractor can deploy an AI agent using ZenSched as the live schedule of record (with a Clear Proof form on the phone) and a local SQLite database for contracts, sites, storms, clear summaries, and invoices.

Honest framing: evidence, not insurance — and not truck telematics

Read this before you clone the kit.

  • Clear Proof is evidence, not insurance and not a legal opinion. Counsel and the carrier decide what a timestamped, geofenced log plus photos is worth in a slip-and-fall. ZenSched does not certify SIMA documentation standards or assert a surface was legally safe.
  • It is not RealGreen, Boss LM, or GPS Insight / Samsara. No seasonal contract billing engine, no route optimizer, no plow-up/down sensors, no vehicle breadcrumb from a truck puck. Keep the office suite and telematics where they are — ZenSched is the site packet the truck GPS does not capture (sidewalk, salt, 5:47 a.m. photo).
  • Gate codes, entrance notes, and contract contact names stay only in local SQLite (sites.access_notes, contracts.contact_name). ZenSched locations are labeled by street — 2400 Hennepin Ave — not by HOA name or billing detail.
  • After-photos can carry a burned-in stamp (opt-in). Set "stamp_photos": true on the photo field in form_create / form_update. The kit enables this on the Clear Proof after-photos field.
  • There is no signature field on purpose. On ZenSched a signature replaces Submit — submitting the form must not look like signing a legal clearance document.
  • Android on Google Play; iOS on the App Store.
  • July is $0. Meters follow punches — no monthly seat in the off-season.

The kit’s SKILL.md makes that split a hard rule the AI will refuse to break.

The problem: “before 7 a.m.” and eighteen months later

Small snow shops already have a stack: RealGreen or Boss LM if they bought the green-industry office suite; GPS Insight or Samsara on the plow trucks; otherwise group text “lots done,” a paper storm log, and camera-roll JPEGs. When a property manager asks for proof — or a slip-and-fall lands eighteen months later — the file is a reconstructed log.

The storm loop is the same whether you plow forty residential driveways or dispatch four commercial crews:

  1. Was 2400 Hennepin cleared before the SLA (usually 7 a.m.)?
  2. What was done — plow, salt, shovel — and can you show after-photos of the pavement?
  3. Did the sidewalk sub actually go, or just the truck?
  4. Invoice the push (or defend the seasonal flat when someone falls in May).
  5. Dispatch forty sites at 3 a.m. in plain English.

Not on that list: winning a DOT road contract, RWIS weather feeds, or a property-manager portal.

The solution: split responsibility between ZenSched and local data

This architecture divides work cleanly:

  • ZenSched: Live site pin (one per contracted address, geocoded once per season), GPS-verified check-in and check-out (geofence enforced via policy, not per location), crew app + push, one Clear Proof form per clear (surface, condition, after-photos, salt applied). ZenSched never stores gate codes or per-push rates.
  • Local SQLite database: Contracts, sites, storms, clears (one shift each), SLA deadlines, completed clear summaries, receivables, sub payouts. Links to ZenSched location, event, and shift IDs. After one metered form read, punches and clear summaries are cached locally.

The agent orchestrates both: it opens a storm from your site book, creates shifts on ZenSched labeled by address, and writes verified arrival plus Clear Proof answers back into SQLite for invoicing and the claim file.

Split responsibility architecture diagram showing ZenSched on the left managing the live clear and GPS verification, SQLite on the right managing contracts and storm billing, with the AI agent orchestrating both

Privacy: gate codes never cross

Everything sensitive lives only in local tables: contracts.contact_name, contracts.contact_phone, sites.access_notes (north entrance, hydrant, gate code). ZenSched receives the street address for the GPS pin and the Clear Proof answers — never a gate code in a location title, never an HOA name in an event name. If you ask the agent to put access notes into ZenSched, it should refuse.

The site address is geocoded (required for geofencing). After-photos live on ZenSched as part of the form.

Day-to-day workflow

A typical storm night looks like this:

  1. You to agent (plain English): “Storm is on — 1 inch by midnight, clear every site by 07:00. Put Derek on Hennepin.”
  2. Agent reads SQLite: Active contracts and sites; opens a storms row for tonight.
  3. Agent creates shifts on ZenSched: One location_create per new site ($0.03 geocode; returning sites reuse the pin), one event per site per storm day, form_create once for the Clear Proof form, form_assign, shift_create per clear. Crew gets a push.
  4. The operator does the work: Open the ZenSched app, GPS check-in at the pin, fill the Clear Proof (surface, condition, after-photos, salt), check-out.
  5. Operations: “Did Derek hit 2400 Hennepin before 7?” “Who missed the SLA?” Agent answers from shift_status and sla_at_risk after one metered read.
  6. Money: Per-push invoices and sub payouts from local clear summaries. Plain-text invoices under contract terms.

No dashboards. No asking you to run SQL. Talk to the agent.

Snow and ice storm workflow from site book through GPS check-in, Clear Proof form, and SLA check

Clear Proof form on the phone

The operator opens the ZenSched mobile app, checks in at the lot or driveway, then fills the Clear Proof before leaving:

  • Surface (driveway / lot / walk / all)
  • Condition (bare / packed / icy)
  • After photos (up to 4, with optional "stamp_photos": true)
  • Salt applied (yes / no / pretreated)
  • Notes (no customer names or gate codes — those stay local)

A second push the same storm opens as a new storm row — not a duplicate clear on the first storm.

Setup summary

Getting started takes about 15 minutes:

  1. Install an MCP client: Claude Desktop, Cursor, or Muse Code.
  2. Connect ZenSched MCP: Add https://mcp.zensched.com/mcp to your MCP config.
  3. Connect easy-sqlite-mcp: Point SQLITE_PATH at a local snow-ice-ops.db on an encrypted, backed-up folder.
  4. Paste the reference skill: The zensched-snow-ice-kit includes SKILL.md, schema.sql, and a quickstart. Load the schema once (one statement per execute). After-photo fields set "stamp_photos": true so exported JPEGs carry readable date, time, and GPS when captured in-app.
  5. Create your ZenSched account: Call zensched_guide, then account_create for a zsc_ key. Invite crew at $0.25 each once.
  6. Fund when needed: Metered GPS, geocode, and form reads draw from prepaid balance. The $5 activation deposit is credited to your account.

Large commercial lots and campus properties need a wider policy radius (policy_update) or a second brand for commercial vs driveway accounts — not org-wide remote_checkin, which turns GPS proof off for every site. Events cap at 60 days; this kit opens one event per site per storm day. Driveway vs commercial-lot = two brands, two policies when radius needs differ.

Worker app: Android on Google Play and iOS on the App Store.

For step-by-step details, see the ZenSched quickstart and the snow-ice kit.

Metering: what you pay for

ZenSched uses transparent per-action pricing (see pricing):

  • GPS check-in/check-out: $0.10 each
  • Address geocoding: $0.03 per new site (once per season)
  • Worker invite: $0.25 per operator (once)
  • Form submission reads: $0.05 basic / $0.15 with photos — read once, cache locally
  • Processed timesheet export: $0.10 per worker per pay period

Worked example from the vertical pitch: one storm, 4 crews × 40 sites = 160 clears with after-photos every stop → $56/storm (~$0.35/clear). A 10-storm season on the same book → ~$560. A busy January (4 storms) → ~$224. April–October: $0.

Read the incumbent comparison honestly. On a busy four-storm month, photo ZenSched (~$224) is above RealGreen’s ~$199 quote and above GPS Insight’s ~$100 mid plan for four trucks. The sell is site-level punch + photos + sidewalk subs + $0 in July + English dispatch — not a price fight against year-round CRM or truck telematics. GPS Insight still wins the insurer’s vehicle breadcrumb; RealGreen still wins seasonal AR and production entry. Do not tell counsel “it’s in ZenSched” instead of your claim file.

What you get

  • Geofenced check-in and check-out at the lot, with distance from the pin
  • A Clear Proof form on the phone: surface, condition, after-photos, salt (optional burned-in stamp)
  • “Did Derek hit 2400 Hennepin before 7?” from the agent in plain English
  • SLA-at-risk view for sites not checked in before the deadline
  • Per-push invoices and sub payouts from local clear summaries
  • About 15 minutes to stand up; the agent is the storm desk

What you don’t get (be blunt)

  • No truck telematics, plow-up/down sensors, or spreader telemetry
  • No RWIS / weather feed or route optimizer
  • No seasonal contract billing engine or property-manager portal
  • Not insurance, not a lawyer, not a guaranteed slip-and-fall defense
  • Not a replacement for RealGreen or Boss LM if that is your daily office
  • Not a replacement for GPS Insight if the insurer requires vehicle breadcrumbs — use both

Who this is for (and who it’s not for)

Ideal for:

  • 1–8 truck shops on group text + spreadsheet when the radar lights up
  • Lawn/landscape shops adding a winter book without paying RealGreen all summer
  • Operators who need a before-7 a.m. packet for the property manager and the claim file
  • Sidewalk subs who were never on the truck puck

Not a replacement for:

  • Shops whose daily work is estimating, seasonal AR, and production entry in Boss LM or RealGreen
  • Fleets locked to GPS Insight / Samsara as telematics system of record — keep the puck; add ZenSched for the site packet
  • Municipal road primes running AVL on state contracts

This is agent-first infrastructure. The operator talks to the agent, and the agent talks to ZenSched.

Get started

Ready to build your own workflow?

Clone the reference kit and connect ZenSched to your AI agent.