Calendar — schedule installs, book bays, and see your week at a glance
Who it's for
The owner or manager uses the calendar to plan the week: deciding which job goes into which install bay on which day, spotting double-bookings before they happen, and watching how busy each bay is. Production and install staff open it to see what is booked, what bay they are in, and what is still waiting to be scheduled. Anyone who can see the Jobs board can also see the calendar — it is part of every paid team member's default toolkit.
Where it fits
The calendar sits in the middle of the job lifecycle, right after a job is Approved and heading into Scheduled, Production, and Installing. A job is created and quoted on the Jobs board, the design is signed off in Proofs, and then it lands on the calendar to claim a bay and a day. See workflow-map.md for the full lifecycle and personas.md for how each role uses it.
Overview
The calendar is where shop work gets a time and a place. Each booking is a schedule event — a block of time, optionally tied to a job, an install bay, and a team member. You can create a free-standing event (for example, time off or a meeting) or attach the event to a job so the calendar and the job stay in sync.
Two things show up on the calendar automatically:
- Schedule events you create (install appointments, bay bookings, personal/PTO blocks).
- Follow-ups due in the visible date range — these are reminders attached to a job (a call, an email, a meeting). They appear as all-day amber markers so nothing slips through the cracks.
Alongside the calendar grid, two side panels keep you organized: a Bay Utilization panel showing how booked each bay is this week, and an Unscheduled panel listing jobs that are ready to schedule but don't have a booking yet.
The calendar is part of every paid plan. There is no separate add-on to buy.
Screens & navigation
Calendar (/calendar)
Reached from Calendar in the main navigation. The page has the calendar grid on the left and the two helper panels on the right (they stack below the grid on smaller screens).
The grid has three views, switched with the Month / Week / Day toggle in the top bar:
- Month view — the classic month grid. Each day cell shows up to three events; days with more show a "+N more" note. Multi-day events stretch across the cells they span. Today is highlighted. Click any day to start creating an event on that date.
- Week view — a seven-day timeline from 6 am to 8 pm, one column per day. Events are positioned by their start and end time. A red line marks the current time on today's column. Click any empty time slot to create an event at that hour.
- Day view — a single day broken into columns by install bay, plus an "Unassigned" column for events with no bay. This is the best view for seeing which bay is free at a given hour. Click a slot under a bay to create an event already assigned to that bay.
Side panels (right of the grid)
- Bay Utilization — a small bar chart, one row per active bay, showing the percentage of this week's hours that are booked, the hours booked, and the event count. Bars over 80% show at full color intensity so heavily-booked bays stand out.
- Unscheduled — a list of jobs that are ready to schedule (in a schedulable stage, not on hold) but have no calendar event yet, sorted by priority then due date. Each card has a one-click Schedule action.
On mobile The calendar switches to a simplified agenda: a swipeable week strip across the top and a day-by-day list of jobs that have a start or due date on the selected day. Tapping a job opens it on the Jobs board.
Capabilities
Creating events
- Click New Event in the top bar, or click any day (month view) or time slot (week/day view) to open the create dialog pre-filled with that date/time.
- Fields: Title (optional — leave blank to auto-fill from the linked job), Duration quick-picker (1–5 days), Start and End date-time, Job (optional), Install Bay (optional), Installer (optional), Color, and Description.
- If you pick a job but leave the title blank, the title is auto-built as "Job title - Stage" (for example, "Smith Transit Full Wrap - Installing").
- The Duration buttons (1d–5d) set the end date that many days out at 5 pm — handy for multi-day installs.
- Picking an install bay automatically files the event under that bay's location.
Editing an event
- Click any event to open its detail card. It shows the time, the linked job (with a link to open the job and a quick status dropdown), the bay, the assigned installer, and the description.
- Click the pencil icon to edit any field — title, time, job, bay, installer, color, description.
- From the linked-job section you can change the job's workflow status right on the calendar without opening the Jobs board.
Deleting an event
- Open the event and click the trash icon, then confirm. Deleting a calendar event does not delete the job it was attached to — only the booking.
Scheduling an unscheduled job (quick-schedule)
- In the Unscheduled panel, click Schedule on a job card.
- Pick a bay and a date, then click Schedule. Wraptor books an 8-hour block starting at 8 am on that date in the chosen bay and creates the event, auto-titled from the job.
- If the bay is already booked during that window, Wraptor blocks the booking and tells you how many conflicts there are — pick a different day or bay.
- Once scheduled, the job drops off the Unscheduled list.
Reading bay utilization
- The Bay Utilization panel always reflects the current week (Sunday–Saturday), regardless of which date you are viewing in the grid. Use it as a quick "how full are we this week" gauge.
Working with follow-ups
- Follow-ups created on a job (a reminder to call, email, or meet) appear on the calendar as all-day amber items on their due date.
- Open a follow-up to read its note, mark it complete (green check), or delete it. Completing or deleting it here updates the job too.
Switching location
- If your shop has multiple locations, the location picker in the app header filters the calendar, bay utilization, and unscheduled list to the selected location. Personal/PTO events (events with no bay and no location) always show regardless of location.
Step-by-step tasks
-
Book an install for a job (from the Unscheduled list)
- Open Calendar. Look at the Unscheduled panel on the right.
- Find the job you want to schedule and click Schedule.
- Choose the install bay and the date.
- Click Schedule. Wraptor creates an 8-hour booking starting at 8 am for that job in that bay.
- If you see a "Bay is already booked" message, pick a different date or bay and try again.
-
Create a custom event with a specific time
- Switch to Week or Day view.
- Click the empty time slot where the work should start. The create dialog opens with that day and hour filled in.
- Optionally select the Job (the title auto-fills), pick an Install Bay and Installer, and set a Color.
- Adjust the Start and End times, or use the Duration buttons for a multi-day block.
- Click Create Event.
-
Move or reschedule an existing booking
- Click the event on the grid to open its detail card.
- Click the pencil icon to edit.
- Change the Start / End times (and the bay or installer if needed).
- Click Save Changes.
-
Advance a job's stage from the calendar
- Click an event that is linked to a job.
- In the Job section of the detail card, use the Status dropdown to pick the new workflow stage.
- The job's status updates immediately — no need to open the Jobs board.
-
Block out time off (PTO) or a non-job event
- Click New Event.
- Enter a Title (e.g., "Mike — vacation"), leave Job and Install Bay as "None," and optionally choose the Installer it applies to.
- Set the start and end (use the Duration buttons for multi-day time off).
- Click Create Event. Because there is no bay, the event is treated as personal and shows on the calendar at every location.
-
Add or rename an install bay
- Bays are managed in Settings, not on the calendar. Go to Settings and open the install-bay list.
- Add a bay (name + color) or edit an existing one. A bay belongs to a location.
- To retire a bay, set it to Inactive — bays are never hard-deleted, so their booking history is preserved. Inactive bays stop appearing as scheduling options.
Settings & permissions
Who can use the calendar
The calendar permission controls access. It is granted by default to all four standard roles — Manager, Designer, Production, and Installer — so every active team member can view and edit the schedule. Owners and managers have every permission. Custom roles can have calendar access added or removed in Settings → Team.
Plan tiers The calendar has no separate plan gate — it is available on every paid plan (Solo, Starter, Pro, Business, Franchise). (Free Claim shops land in the Marketing inbox rather than the operational dashboard.)
Install bays live in Settings Install bays are created and edited under Settings, each tied to a location. The calendar reads the active bays; it does not create them. Retiring a bay is done by marking it inactive in Settings.
Locations Multi-location shops (Pro and above) can filter the calendar by location using the header location picker. Personal events with no bay always appear regardless of the chosen location.
Tips & common pitfalls
- Quick-schedule always books 8 am to 4 pm. The one-click Schedule action on the Unscheduled panel creates a fixed 8-hour block starting at 8 am. If the install is shorter, longer, or at a different time, schedule it and then edit the event, or create the event directly in Day/Week view with the exact times.
- Conflict checks only apply to bays. Wraptor warns you about double-booking a bay, but it does not check whether the same installer is booked twice at the same time. Keep an eye on installer assignments yourself.
- The bay-conflict warning only fires on quick-schedule. When you create or edit an event through the New Event dialog, overlapping bay bookings are not blocked — you can deliberately stack events in a bay if you need to. Use Day view to eyeball overlaps.
- Bay Utilization is always "this week." It does not follow the date you are browsing. If the numbers look off for a future week you are viewing, that is expected — the panel reports the current calendar week only.
- The time grid runs 6 am–8 pm. Week and Day views only render that window. An event that starts before 6 am or ends after 8 pm is clipped to the visible range on the grid (the full times are still stored and shown in the event detail).
- Deleting an event keeps the job. Removing a booking never deletes the underlying job — it just frees up the time. Conversely, deleting a job removes its calendar events.
- Follow-ups are reminders, not bookings. The amber all-day items are job follow-ups (call/email/meeting). They do not occupy a bay and do not count toward utilization.
- Personal events ignore the location filter. Events with no bay are treated as personal/PTO and appear at every location, by design.
Related modules
- Jobs — events link back to a job; you can change a job's stage from the event card, and the Unscheduled panel is driven by job status.
- Proofs — a job should be design-approved before it is scheduled for install.
- Team — the "Installer" picker lists your active team members; assignments and roles are managed there.
- Settings — create, rename, recolor, and retire install bays here.
- Equipment — separate from install bays; covers machines, tools, and maintenance, not scheduling.
- Workflow map — where scheduling fits in the lead-to-completion flow.
- Personas — how owners, production, and installers use the calendar.