Unified Calendar View — Combined Appointments & Job Schedule
Enhancement Ticket: Unified Calendar View — Combined Appointments & Job Schedule
Summary
Owner-operators who handle both estimating and job management currently must navigate between two separate calendar contexts — the Appointments view and the Job Schedule — to understand their full day. This creates real scheduling risk: users cannot see estimate appointments and job events side by side, leading to double bookings. This ticket requests a unified calendar view that surfaces all event types in a single, filterable calendar without replacing the existing separate views.
User Story
As an owner-operator who both runs estimates and manages job crews, I want to see all of my scheduled events — appointments, estimates, and job schedule events — in a single calendar view, so that I can schedule new work without accidentally double-booking existing commitments.
Business Rules (Functional Requirements)
BR-1: Unified Calendar View The system must offer a unified calendar view that displays all event types in a single calendar interface. This view must be accessible from the main navigation without removing or replacing the existing Appointments or Job Schedule views.
BR-2: Event Type Inclusion The unified view must display all event types currently supported across both calendars, including but not limited to: estimate appointments, on-site visits, follow-up appointments, and job schedule events (start dates, crew assignments, job milestones where applicable).
BR-3: Toggle / View Switch Users must be able to switch between the unified view and the individual calendar views (Appointments, Job Schedule) without losing their current date context. The toggle or view switch must be clearly labeled and persistently accessible within the calendar UI.
BR-4: Event Visual Differentiation Events originating from different sources (appointments vs. job schedule) must be visually distinguishable within the unified view so the user can understand the event type at a glance. Color coding, badges, or labels are acceptable approaches — the key requirement is that the user can tell what type of event they are looking at without opening it.
BR-5: Event Filtering Within the unified view, users must be able to filter by event type to show all events, appointments only, or job schedule events only. The existing "All Event Types" filter behavior on the Job Schedule should be extended or replicated in the unified view.
BR-6: User Assignment Filtering The unified view must respect the existing "All Users" filter behavior so that owners can view their own events, a specific team member's events, or all events across the account — consistent with how filtering works in the current Job Schedule.
BR-7: Google Calendar Sync Compatibility If a user has Google Calendar connected, the unified view must continue to display synced Google Calendar events alongside DripJobs events, consistent with current Job Schedule behavior.
BR-8: Read & Interact Parity Users must be able to interact with events from the unified view in the same way they can from the source view — at minimum, viewing event details and navigating to the associated deal or job. Creating new events from the unified view is desirable but not required for MVP.
BR-9: Mobile Accessibility The unified view must be accessible and functional on mobile, as owner-operators frequently schedule appointments while in the field or on a call.
BR-10: Persistent View Preference The system should remember the user's last selected view (unified vs. individual) so they are returned to their preferred view on subsequent sessions.
Edge Cases & Exceptions
Overlapping events: When two events occupy the same time slot in the unified view, both must be visible and individually accessible. The view must not suppress or hide one event in favor of another.
Events without time: Job schedule events that have a date but no specific time should still appear in the unified view in a manner that does not obscure timed events (e.g., as an all-day entry or a date-range banner).
Multi-day jobs: Jobs spanning multiple days must be represented appropriately so they don't create false visual conflicts with same-day appointments.
No events state: If a user has no events on a given day across either calendar, the unified view should display an appropriate empty state rather than appearing broken.
Permission scope: Users with restricted access (non-owner roles) should only see events they are currently permitted to view in the individual views — the unified view must not expand visibility beyond existing permission rules.
Acceptance Criteria
[ ] A unified calendar view is accessible from the main navigation or as a toggle option within the existing calendar area.
[ ] The unified view displays all events from both the Appointments and Job Schedule calendars on a single calendar grid.
[ ] Events from different sources are visually distinguishable (color, label, or badge).
[ ] Users can filter the unified view by event type (All, Appointments only, Job Schedule only) and by user assignment.
[ ] Users can toggle between the unified view and the existing individual calendar views without losing their current date context.
[ ] Google Calendar synced events continue to appear in the unified view for connected accounts.
[ ] Event interactions (view details, navigate to deal/job) work from the unified view.
[ ] The unified view is functional on mobile.
[ ] The system remembers the user's last selected view preference.
[ ] No existing Appointments or Job Schedule views are removed or degraded by this change.
This request was merged into another request
No comments yet
Be the first to share your thoughts.