Scheduling and the calendar
TruePro includes a built-in calendar for scheduling jobs and managing your team's time. Once a customer pays and their booking is confirmed, appointments are set during the sign-agreement step — the customer picks from the available times you offered in your quote. This article explains how the calendar works, how to propose a reschedule, and exactly what customers can see when they request a different time.
The week and day calendar views
Go to Calendar in the main navigation. Switch between week view (overview across 7 days) and day view (detailed hour-by-hour grid for a single day) using the buttons at the top right.
- Week view — each day shows job cards stacked in the column. Drag a card to a different day to reschedule (time of day is preserved). Closed days are dimmed according to your business hours settings.
- Day view — the full 00:00–24:00 grid is shown in a scrollable view. Each appointment appears as a positioned block matching its actual start and end times. Multiple appointments at overlapping times appear side by side. Click any empty space in a team's lane to log a job or block time.
If you have multiple teams, use the team filter pills above the calendar to show one team's schedule at a time. Each team appears in its own swim lane in the day view.
Clicking inside a team's lane checks that time straight away — if it's too close to an existing appointment or blocked time for that team, you'll see a red box instead of the menu, so you find out before you've filled in the job details rather than after. Clicking in the "Unassigned" lane skips this check (there's no team yet to check against).
Clicking Log a job reserves that time immediately — you'll see it appear on the calendar right away, greyed out with "Draft job — click to finish", while you go on to fill in the rest of the job's details. It stays there as a draft until you finish it or remove it with the × on the card — nothing is deleted automatically. See the Logging a direct job guide for the full flow, including scheduling more than one appointment for a job that needs several visits.
Proposing a reschedule from the job page
You can propose a new appointment time directly from any job's detail page — no need to go via the calendar.
- Open the job from your dashboard or jobs list.
- Find the Appointments section in the job details.
- Click "Propose reschedule ↓" next to the appointment you want to change.
- Choose one of two options:
- Keep (soft request) — the existing appointment stays confirmed. You are proposing an alternative. If the customer accepts, the appointment is updated. If they decline, the original time stands.
- Cancel & replace — the existing appointment is cancelled immediately. A new time must be agreed before the job can proceed.
- Enter your proposed date and time and an optional message to the customer.
- Click "Send proposal". The customer receives a notification (email + in-app) and sees your proposal in the job's message thread.
The proposal appears as a card in the message thread visible to both parties. The customer can accept, decline, or counter-propose a different time. You will see their response in the same thread and receive a notification.
If you've already agreed the new time with the customer directly (phone/WhatsApp) and only proposed a single time, tick "Already agreed with the customer — confirm now" before clicking "Send proposal". The appointment moves to the new time immediately — the customer is simply told it's confirmed, rather than being asked to accept a proposal.
A proposal that goes unanswered gets a reminder after 48 hours and expires automatically closer to the proposed time if the customer still hasn't responded. For a "Keep" proposal, expiry just drops it and your original appointment stands. For a "Cancel & replace" proposal, expiry leaves the appointment cancelled and the job drops back to Accepted — you'll be notified either way so you can follow up or propose a new time.
Responding to a customer's reschedule request
Customers can request a reschedule from their job status page. They may propose one or more preferred times across different teams. When they do, you receive a notification (email + in-app) and the Appointments section of the job page shows a response panel directly on the affected appointment card.
The panel shows the customer's proposed times as selectable options (with team name and colour). Choose how to respond:
- Accept a proposed time — click the time that works for you to select it, then click "Send". The appointment is updated immediately and both parties are notified.
- Propose alternative times — click "Propose alternative times →" to go to your calendar. Click any free slot in any team's lane to add it as a proposed time. You can add as many as you like across different days. Click "Done — return to job →" when finished, then click "Send these alternative times" on the job page. The customer will see your proposed times and can accept one.
- Decline — available only when the original appointment has not been cancelled (soft reschedule requests). You must add a message explaining why before clicking "Send" — the customer deserves an explanation.
If the customer cancelled the appointment outright (a hard reschedule), the appointment shows as cancelled and there is no Decline option — you must either accept one of their proposed times or propose your own.
All responses appear as cards in the message thread so both parties have a clear record of what was agreed.
What customers can see on your calendar
When a customer requests a reschedule, they see a version of your calendar to help them pick a time that works. Appointment details are hidden — they cannot see customer names, job descriptions, or any other private information. Here is a comparison of what you see versus what they see:
Your view (pro calendar)
Customer view (when rescheduling)
Specifically, customers can see:
- Your team names and team colours — each lane is labelled with the team name and coloured dot
- Appointment times — start and end times of existing appointments
- That time is blocked — blocked time (supplier visits, days off etc.) shows as "Blocked" with the start and end time; the actual reason is hidden
- Business hours shading — times outside your business hours are shaded grey
Customers cannot see:
- Other customers' names, addresses, or job descriptions
- Internal notes or pricing
- The title of blocked time entries
- Any technician names
The "Reschedule requested" badge
When a customer has requested a reschedule but the original appointment is still in place (a soft reschedule request), the appointment shows normally on your calendar with a small amber "Reschedule requested" badge. This is a reminder to respond — the appointment has not changed yet. Appointments that have been fully cancelled as part of a hard reschedule request do not appear on the calendar at all.
Scheduling a job's first appointment, or adding extra ones
The same panel handles both scheduling a job's very first appointment (via "Skip quote & schedule appointment" on an open job, or "Schedule appointment directly" on a recurring direct lead) and proposing additional appointments once a job already has one. Open the job detail page and find the "Appointment" (or "Additional appointment(s)" once one exists) panel.
- Click "Schedule appointment →" (or "Add appointment →") and set the estimated duration, number of visits, and travel buffer.
- Decide whether to require customer acceptance (recommended for new date proposals) or add the appointment directly to the calendar without asking the customer first — tick "Already agreed" if you've settled the time with the customer already.
- Click "Continue to calendar →" — you are taken to the calendar in slot-picking mode. Click any available time in a team lane to add it as a proposed slot. You can add multiple slots as options for the customer to choose from.
- Return to the job page. If you required customer acceptance, click "Send to customer" — the customer receives a notification and can pick their preferred time. If you chose to add directly, click "Add to calendar" — the appointment is confirmed immediately.
A sent request that goes unanswered gets a reminder after 48 hours and expires automatically closer to the proposed time if the customer still hasn't responded — you'll be notified so you can propose new times.
Cancelled appointments (from previous reschedule requests) are removed from the calendar automatically and do not affect new slots.
Handling scheduling conflicts
If a technician becomes unavailable or a job runs long, open the affected job in your dashboard and use the "Propose reschedule" button to notify the customer. Do not arrange reschedules verbally without updating TruePro — the message thread is a legal record that protects both parties if a case arises.
Blocking time on your calendar
Use Block time (the + Add button in the calendar, or click an empty slot) to mark time that is unavailable for customer visits — supplier visits, team meetings, days off, travel days. Blocked time appears in amber on your calendar and shows as "Blocked" (no title) on the customer's calendar view.
Tips for effective scheduling
- Build travel time into your schedule — do not book back-to-back jobs in distant suburbs.
- Leave buffer time for jobs that run longer than expected.
- Group jobs by area on the same day to reduce travel costs.
- Check the calendar first thing every morning and identify any gaps or risks for the day ahead.
- Respond to reschedule requests promptly — a pending reschedule creates uncertainty for the customer.