Skip to content

Changelog

What shipped, with the date. Everything built in the October 2026 effort is dated October 6, 2026 and grouped by area, because it landed together. Older entries, back to November 2024, use the date of the project\'s commits.

  1. Estimates

    Build an estimate with 1 to 100 line items, a tax rate (your company default if you leave it blank), a discount, an expiry date, notes and terms. Send it by email with a PDF. The customer opens a page, approves or declines with their full name and can leave a reason. An approved estimate can be turned into a pending job and a draft invoice, once each.

  2. Recurring jobs

    Make any job repeat every N days, weeks or months, with weekday and day-of-month options and an end by count, by date or never. CalSpark creates visits a few weeks ahead. Edit one visit or this and all future visits, skip a visit, or end the series and keep or remove the future visits.

  3. Automations: templates, a custom builder and Slack

    Email templates for booking confirmation, appointment reminders, review requests, overdue invoice reminders, payment receipts and new-lead replies, plus a custom automation builder with triggers, conditions, delays and actions. Slack notifications use an incoming webhook, with presets for new leads, completed jobs and paid invoices. Everything except payment receipts is off until an admin switches it on. Fair-use sending limits apply, and trial accounts have lower limits. Texts need your own Twilio account.

  4. Data in and out: CSV import and CSV export

    Import customers from a CSV with column mapping and duplicate detection by email or phone, with a report of what was created, skipped or failed. Company admins can download customers, jobs and invoices as CSV from Settings, Data, up to 100,000 rows each, with an optional date range.

  5. Dispatch board: day and week views, click, drag and touch

    The board has a Day and Week toggle with a row per technician. Click an empty slot or day to create a job, drag a job to reschedule or reassign, and drag from the unassigned list. On a tablet, press and hold to pick a job up, or tap Move and tap an empty slot. Keyboard arrows plus Enter also work. Overlaps for one technician show a warning, and you can schedule anyway.

  6. Jobs, photos, technicians and company settings

    Add before, after, damage, completion and other photos to a job, up to 10 MB each in JPEG, PNG or HEIC. Technicians get a phone web view with an On my way button that records the start of the trip. Mark an owner or office user as Also works jobs to give them a row on the board. Set your company time zone, logo, default tax rate, business hours and default job length. Every time, including calendar feeds, shows in the company time zone.

  7. Invoices: partial payments, refunds, pay links and numbering

    Invoices accept recorded partial payments, show refunds on the invoice, get a secure pay link and are numbered per company. Card payment goes through your own Stripe account, and the pay link collects the remaining balance.

  8. Public API, webhooks, calendar feeds and request form

    A REST API with scoped keys, idempotency keys and cursor pagination, and signed webhooks with a delivery log, replay and a test event. Private read-only calendar feeds that carry no customer phone or email. A hosted request form with an embeddable snippet that records a lead, matches or creates the customer and adds an unscheduled pending job. The API, webhooks and request form are off until an admin turns them on in Company, Features. Docs are at /developers.

  9. Billing and security hardening

    Stripe webhook handling was rebuilt so a repeated event is not applied twice. The 10 user limit is enforced, and trial and subscription status checks were tightened. Sign-in and API rate limits are tighter, each company can only see its own data, the Content Security Policy is stricter, and session replay masks all text, inputs and media. Error reports no longer include personal data by default.

  10. Timeline company filter removed

    Removed the company filter from the timeline view to keep the dispatch board simple.

  11. New marketing site

    Redesigned the public landing page.

  12. Faster database queries

    Added indexes and tuned the main queries behind the timeline and job lists.

  13. Better handling of pending jobs

    Pending jobs now sit in one queue and move to the right status automatically when you schedule or finish them. Job details were rebuilt to load faster.

  14. Invoice list and detail pages

    Clearer invoice list with action menus, plus Send to Customer and Pay Online actions. Fixed a line item calculation bug.

  15. 14-day free trial through Stripe

    Trials now run as Stripe-native 14-day trials. Also added a confirmation prompt before creating an unassigned job, a customer notes field, and a job status system.

  16. Online invoice payments

    Customers can open a public payment page and pay an invoice by card.

  17. Customer search and inline customer creation

    Search customers as you type with keyboard navigation, and create a customer without leaving the job form. Employees can now be deactivated and reactivated.

  18. Company and settings pages

    Company page with details, team and billing tabs. Settings page with profile and security. Light and dark themes. Frozen technician column on the timeline.

  19. Addresses model

    Customers can have several addresses, and each job points to one of them.

  20. Invoice PDFs

    Invoice PDF generation moved to a headless browser renderer.

  21. Error tracking and input validation

    Added error tracking and stricter validation of data sent to the API, plus stronger password hashing.

  22. Phone-friendly web views

    Mobile-first web view for technicians, a responsive schedule calendar, and card views for customers on small screens. Employee invite status and resend.

  23. Email invites and Google sign-in

    Invite employees by email. Sign in with Google.

  24. Self-service signup and subscription billing

    Companies can sign up on their own and subscribe through Stripe.

  25. Team roles

    Roles are now admin, front office and service technician.

  26. Multi-company data separation

    Each company sees only its own data.

  27. Security hotfix

    Tightened cross-origin rules, updated Next.js and hardened sign-in tokens.

  28. Role checks in the API

    Every API route now checks the caller's role before it acts.

  29. API endpoints for the technician mobile app

    Added the endpoints the technician mobile app uses. The iOS app is still not in the App Store.

  30. Drag a job on the schedule calendar

    The first schedule calendar let you drag a job to move it. Job end time was added to the new job form.

  31. First schedule calendar

    A basic calendar showing jobs.

  32. Customers and jobs

    Create customers and jobs, with customer and job detail pages.

  33. Project started

    First commit.

Try it with your own jobs

14-day free trial. No card. $49 a month flat for up to 10 users after that.