What CalSpark does today
A dispatch board you can click and drag, estimates customers approve online, recurring jobs, invoices with card payment, a custom automation builder, Slack notifications, CSV export and a public API. Details on each page, and a plain list of what is missing.
Works now
- Customers with multiple addresses and notes, with contains-search
- Customer CSV import with column mapping and duplicate detection
- Jobs with a status lifecycle (pending, scheduled, in progress, completed, cancelled) and photos
- Dispatch board with Day and Week views, one row per technician: click to create a job, drag to reschedule or reassign, drag from the unassigned list
- Tablet and touch dragging on the day board: press and hold to pick it up, or tap Move on a job and tap an empty slot. Keyboard arrows plus Enter also work
- Scheduling conflict warnings, with a "schedule anyway" override
- Recurring jobs: repeat a job every N days, weeks or months, edit one visit or all future visits, skip a visit, or end the series
- Estimates: line items, PDF, email, a customer page to approve or decline, then convert to a job and a draft invoice
- Technician web view that works on a phone browser, with job photos and an "On my way" button that records the start of the trip
- Team roles: admin, front office, technician. Up to 10 users, enforced. Owner or office staff can be marked "Also works jobs" and then appear as a row on the board
- Company settings: time zone, logo, default tax rate, business hours and a default job length
- Invoices with line items, PDF, email send, secure pay links, online card payment of the remaining balance through your own Stripe account, partial payments recorded by staff, refunds reflected and per-company numbering
- Email automations from templates (booking confirmation, appointment reminders, review request, overdue invoice reminders, estimate follow-up three days after sending, payment receipt, new-lead reply) plus a custom automation builder with triggers, conditions, delays and actions. Wording and timing are editable, with a preview, a test send and a run log. Fair-use sending limits apply, and trial accounts have lower limits
- Slack notifications through a Slack incoming webhook (not a Slack app): prebuilt messages for new leads, completed jobs and paid invoices, and a Slack step in any custom automation
- CSV data export of customers, jobs and invoices from Settings, Data, for company admins
- Calendar feeds: a private read-only iCalendar link, either per person (one technician, their own jobs) or for the whole company (every job), with no customer phone or email in it. One-way
- Public REST API with scoped bearer keys, idempotency keys and cursor pagination, plus signed webhooks with a delivery log, replay and a test event. Developer docs at /developers. Off until an admin turns on API and Webhooks in Company, Features
- A hosted request form (and embeddable snippet) at /request/<company-slug>: records a lead, creates or matches the customer, and adds an unscheduled pending job. Off until an admin turns on Request form in Company, Features
- Text messages (appointment reminders, the On-my-way text and any automation that sends a text) need your own Twilio account and the Text messaging switch in Company, Features. They are off by default, and a customer must have agreed to receive texts
Dispatch board: every technician and every job in one view
The dispatch board shows one row per technician, by day or by week. Click to book a job, drag to move it, and get a warning before you double-book anyone. Jobs without a time or a tech wait in a queue.
Invoice from the job and get paid by card
Build an invoice with line items, email it as a PDF, and let the customer pay by card. Payments go to your own Stripe account. You connect it once.
Estimates the customer can approve from a link
Build an estimate with line items, email it as a PDF, and let the customer approve or decline on a web page. When they approve, turn it into a job and a draft invoice with one click each.
Recurring jobs for maintenance and repeat visits
Turn any job into a repeating series: every N days, weeks or months. CalSpark creates the visits a few weeks ahead, and you can edit one visit, edit all future visits, skip a visit or end the series.
A technician view that works in any phone browser
Technicians open CalSpark in a phone browser, see their own jobs, tap On my way, update status and add job photos. There is nothing to install. An iOS app is built but not in the App Store.
Not built
If you need one of these now, pick a different tool.
- Route optimization
- Reporting dashboards
- Inventory and parts tracking
- Payroll
- Part payments through the online card link. The link collects the full remaining balance and staff record partial payments
- Deposit requests on estimates. An estimate approval is a typed name and a timestamp, not a certified signature
- An Android app, and an App Store listing for the iOS technician app
- QuickBooks Online sync: planned, not available
- Google Calendar push (one way): planned, not available
- A Zapier app: planned, not available
- An MCP server: planned, not available
What is coming. Not available yet.
These are planned or in progress. None of them are available today. We have no dates to promise.
iOS technician app in the App Store
Built, not released.
QuickBooks Online sync
Planned. Built, not available to customers.
Google Calendar push
Planned. Jobs pushed one way into a Google calendar. Calendar feeds are available now.
Zapier app
Planned. Not available. The API and webhooks it would use are available now.
MCP server for AI assistants
Planned. Not available.
Try it with your own jobs
14-day free trial. No card. $49 a month flat for up to 10 users after that.