Managing Jobs
Create standalone work, find the complete job catalog, schedule crews, and move jobs safely through completion.
Managing Jobs
Open Calendar in the web sidebar at /calendar. The workspace has two complementary views:
- Calendar combines lead appointments, scheduled service work, and the unscheduled queue.
- All jobs is the complete catalog, including completed and cancelled work.
The view tabs support a keyboard tab pattern: use Left Arrow or Right Arrow to move between them, or Home and End to jump to the first or last view.
Most jobs are created once when a customer accepts an estimate. Clean Estimate does not create a second manual copy of accepted work. If the accepted estimate has a real appointment, its job starts on that date. Otherwise it remains Unscheduled until the office books it.
A teammate with Manage calendar can also select New job from Calendar or All jobs to create one-time standalone work for an existing active customer or work-owning service site. Choose an active saved service property, enter the service or job title, and optionally add notes and a total. When Job type is set to Holiday lights, a Kind select appears with Standard and Service call; choosing Service call feeds the Holiday Lights report's Open service calls figure while the job stays Scheduled or In progress (see Holiday Lights Analytics). Leave the job Unscheduled, or select Schedule now and provide its date, start, whole-minute duration, and optional active crew. Duration has an absolute cap of 1,440 minutes, but the complete span must fit before midnight, so the actual maximum is lower and depends on the selected start time. The office must create the customer and saved property first; this dialog does not create either record inline.
If the selected crew already has overlapping work, the first scheduled-create attempt stops without creating a job or consuming its number. Review the conflict, enter a reason, and select Schedule anyway only when the crew can safely cover both commitments. Retrying the same successful browser command is idempotent and returns the same job and job number.
Every estimate-backed or maintenance-plan job is also bound to the same customer as its source, including older records that never stored a property. CE Pro rejects cross-customer estimate or plan lineage instead of treating two blank legacy property values as a match.
Exact-work rebooking has a second governed path. A teammate with Manage calendar can review a ready pay-later request or verified prepayment in the repeat-work queue and create one unscheduled job from its frozen customer, property, invoice, scope, and amount. The job then appears in the Calendar's unscheduled queue and in All jobs for normal office scheduling. The request or payment never schedules it automatically, and the same retention order cannot create a second job.
If the applied prepayment needs a refund after this job exists, the repeat-work queue links the exact existing job instead of creating or detaching work. A governed refund can start only while that job is Unscheduled, Scheduled, or In progress. Stripe runs first: a provider failure leaves the job active but blocked from forward progress and keeps the same command available for retry. Provider success finalizes the refund and cancels that exact job in one local transaction, including the refund reason in the normal status audit. If a full refund completes outside CE Pro while its matching refund command is unresolved, retrying that command reconciles registered provider truth and cancels an eligible linked job in the same local transaction without another Stripe request. Without a matching unresolved command, Refund attention remains until the office opens, reviews, and cancels the existing job. A duplicate-payment refund never cancels the valid linked job, and a Complete or Cancelled job cannot start the governed applied-payment refund. A provider-reported partial applied refund returns active or not-yet-created repeat work to Refund attention, blocks creation, scheduling, rescheduling, start, and completion, and still lets a scheduled job return to Unscheduled for review. Completed and cancelled history is not re-enqueued.
For a prepaid exact-work fulfillment job, the applied provider payment history remains the financial record. CE Pro blocks creating, retargeting or editing a draft, and first-sending a second invoice for that job, including after a partial or full refund. Use the governed refund and linked-job cancellation workflow for reversals. A repeat-work job booked with Pay later keeps the normal invoice workflow and frozen service property.
Find a job
Open All jobs to search by job number, customer, work title, property address, crew, or service location. You can combine search with:
- Status: Unscheduled, Scheduled, In progress, Complete, or Cancelled
- Location
- Crew, including Unassigned
- Scheduled from and Scheduled to calendar dates
- Customer tags, matching any selected shared CRM label
- Sort: Recently updated, Schedule date, Customer, or Highest value
The workspace shows 25 matching jobs at a time. Use Previous and Next to move between pages. Changing a filter returns to the first page so an older page number cannot hide matches.
Each result shows the job number when one was assigned, saved customer, first customer tags, work title, property address, schedule, crew, location, status, and job value. Jobs without an assigned number display Job without a number; CE Pro never invents one. Select the job title to open its detail record. On desktop or phone, select Schedule or Move to book it without leaving the catalog.
Office job details also show read-only checklist progress from the assigned crew, with Done, Pending, or an empty state when there is no checklist. Office users cannot edit checklist items here; crew members continue to update them from the mobile Crew job view.
Job statuses
V2 currently enforces this smaller state machine:
| Status | Meaning |
|---|---|
| Unscheduled | Accepted estimate work, authorized repeat work, or a standalone office job is waiting for a real service date. |
| Scheduled | A date is booked. A start time and crew are optional. |
| In progress | The team has started the work. |
| Complete | The work is finished. |
| Cancelled | The work will not be performed. |
Use Start, Complete, or Cancel from All jobs, or open the job record for its current permitted actions. Cancelling requires a reason. A customer-visible date or start-time change also requires a reschedule reason; V2 records that reason instead of silently replacing the appointment.
Weather hold
A teammate with Manage calendar can open a job's detail page and select Weather hold to mark it on hold, or Clear weather hold to remove one already set. The job keeps its current status — a held job stays visibly Scheduled or In progress rather than moving to a separate hold state — and its detail page shows when the hold was set. Both actions are refused once the job is Complete or Cancelled; there is nothing left to hold up.
Beside it sits the Callback / rework checkbox (Manage team permission), which flags the job as a callback or rework for the Margins report's callback leakage figure; see Callback Leakage.
Schedule a job
From Calendar or All jobs, select Schedule on unscheduled work or Move on scheduled work. Enter:
- service date
- optional inclusive end date
- optional daily start and end time
- service location
- optional active crew from that location
- estimated duration, from 0.25 to 24 hours, for calendar capacity
- optional independent crew hours
- optional service type, job type, and active truck
- a required reason when moving a customer-visible date or start time
An end date keeps the job on every occupied date in the web Calendar and in its day, week, month, and agenda views. A daily time window, when present, is shown separately from the independent crew-hours estimate. The native mobile schedule view remains the approved start-date-only surface.
When exact timing overlaps another job on the crew or a sales appointment run by a teammate on that crew, the first save is blocked. Confirm the overlap, enter the required override reason, and select Schedule anyway only when the crew can safely cover both commitments. Work without enough timing data is marked Capacity unknown instead of receiving a guessed duration.
If a crew was deactivated after work was assigned, its historical name remains visible on that loaded work. It is not offered for new assignments.
If an accepted proposal still has a pending deposit outcome, an active office teammate with both Manage invoices and Issue refunds can use Deposit received or Waive before scheduling. Clean Estimate locks and rechecks the current teammate, both permissions, and all-office or same-office access inside the payment update, so a deactivation, permission removal, or office reassignment that commits first blocks a stale action. Repeating the same successful outcome is safe and does not create a second audit event. Verified Stripe settlement continues through the separate provider webhook path. Monthly membership signup still cannot use either office override, including before its plan and visit records have been reconciled.
Route-day overview
The route-day view groups scheduled jobs into manually ordered stops. Its available work hours come from each job's scheduled duration and the daily start/end hours in Schedule & dispatch settings; travel time is excluded, and jobs that do not fit the usable window are called out. The route is not automatically optimized. Use the Google Maps action to open the shop and the stops in their current order; it includes up to the first 10 stops with an address.
An optional financial overlay shows stored net crew-pool-retained pay for the whole job, not a daily payout. It appears only when View financial reports and the workspace overlay setting are both enabled. Refresh reloads the dispatch settings and stored pay before updating the route-day view.
Reviewing Customer Appointment Requests
Signed-in customers can request a future date with morning, afternoon, or no time preference, or ask to cancel an eligible upcoming job. A request does not change the job immediately. Clean Estimate keeps the current date, status, assignments, and route in place and adds the request above normal work in Tasks for review.
Teammates with Manage calendar can review only requests in their current office scope. For a reschedule, confirm and enter the exact arrival time before approving; the customer's time preference is never silently treated as an appointment. Declining requires a reason. Approving a conflict requires the same explicit override reason as the shared Calendar.
The decision rechecks the current teammate, office access, request, job, and schedule after acquiring the same locks as Calendar. If the job changed after the customer requested, refresh instead of overwriting the newer booking. If the original appointment has started or passed, or the requested date is no longer future, the stale request is closed without rewriting historical work. Repeated or concurrent decisions are idempotent. Use Load more appointment requests to continue through the stable office-scoped queue.
Customer requests and office identity edits are ordered consistently. A customer request checks the current session and customer details before it is saved.
For an exact-work fulfillment job, the customer Work history, nearest upcoming visit, and office appointment-request queue resolve the service address through the exact organization, office, customer, and linked repeat order. Existing estimate-then-plan property precedence remains intact, while a retention-only job uses the repeat order's frozen property and a standalone office job uses its immutable selected property instead of a generic Service location label. Conflicting property lineage fails closed rather than showing or billing a different service address.
An eligible job now provides Create invoice. It opens the standalone single-screen invoice builder with the job, customer, service property, and any linked estimate lineage already selected; the invoice service rechecks that scope before it saves or sends the bill.
Repeat-work requests
The Repeat-work requests card on the Jobs workspace lists accepted post-job offers waiting to become unscheduled jobs -- a customer choosing Rebook this exact work, Upgrade to Suds Club, or (commercial) Request a custom maintenance proposal from their post-job portal card. Nothing here is scheduled automatically: every accepted offer needs office follow-up to pick the actual visit date.
Each request shows the customer name, a payment badge (prepaid or pay later), the service location, property address and source invoice number, the customer's phone and email (click to call or email when available), and a View client link to their client profile. A standing reminder -- Reach out to coordinate the service date, then create the job -- sits on every card, since accepting an offer never books an appointment by itself. The scope lines (from the original completed work) and total amount are shown alongside the request so the office can quote the follow-up call without reopening the source job.
A teammate with Manage calendar selects Create job on a ready request to generate the unscheduled job; a settled prepayment or an unresolved refund can hold a request back from that action until the payment state clears. Every accepted offer -- including a prepaid rebook, once its payment settles -- raises an office alert linking back to this queue so the request is not missed between refreshes. Use Refresh to reload the queue on demand.
Office job notes and private crew photos
Authorized office users can edit the shared Notes visible to the assigned crew. Keep the note to 8,000 characters or fewer and use it for team coordination rather than customer-facing messages. The Notes editor provides an accessible Cancel action to leave without saving.
Office users with Manage team access can open the private crew-photo section in job details. If the crew has not submitted photos, the section shows an empty state. The office view is read-only; it does not edit or delete crew photos.
Current V1 parity boundaries
The V2 Jobs workspace uses the V2 job, estimate, location, crew, payment, and status services. The following useful V1 capabilities still need dedicated data or transaction services and are not simulated in this release:
- multi-property bulk scheduling and inline customer/property creation from the job dialog
- bulk status changes and bulk crew assignment
- permission-gated CSV export
- historical job-number backfill, job-side tags distinct from the shared customer labels, saved job views, and appointment confirmation
- En route, On site, Invoiced, On hold, and Skipped states
- automatic route optimization, drive-time estimates, in-app route maps, and
navigation; route directions open Google Maps from the manual stop order
- crew-day assignments, crew pay, and richer sales-rep dispatch context
- job-scoped line-item editing, materials, photos, and embedded invoice/payment
management beyond the current Create invoice handoff
- recurring-template job generation and recurring visit administration
These are tracked parity slices, not removed product goals. They will be added on top of V2's scoped authorization and immutable acceptance/payment records.
Related guides
- Use Calendar and dispatch for calendar views, crew conflicts, and the unscheduled queue.
- Use Your first estimate to send and accept the proposal that creates the job.
- Use Invoices and payments for the standalone current
V2 invoice workspace, job entry point, Review & Send delivery, governed office collection/refunds, and separate customer-payment ledger.
Related articles
Was this article helpful?
Still need help? Contact support