Diary & Inspection Scheduling
Diary & Inspection Scheduling
The Diary & Inspection Scheduling module gives property management agents a single place to record all office diary activity and site inspection history against developments, units, owners, and contractors. It is accessible from the Operations section of the main navigation under Diary & Inspections.
Overview
The module has two distinct but linked areas:
| Area | Purpose |
|---|---|
| Office Diary | Schedule and track all events, calls, meetings, deadlines, and reminders related to a development or contact |
| Site Inspections | Record structured site inspection visits with findings, outcomes, and follow-up actions |
The two areas are integrated: creating a site inspection can automatically generate a linked diary entry, and completing an inspection automatically completes its linked diary entry.
Office Diary
Diary Entry Types
Each diary entry has a type that categorises the activity:
| Type | Description |
|---|---|
site_visit | On-site visit to a development or unit |
phone_call | Phone call with an owner, contractor, or contact |
meeting | Formal meeting (internal or external) |
inspection | Inspection activity (use Site Inspections for structured records) |
follow_up | Follow-up action on a previous entry |
deadline | Key deadline (e.g. service charge payment, compliance filing) |
reminder | Internal reminder for staff |
agm_related | AGM preparation or follow-up activity |
contractor_visit | Scheduled contractor attendance on site |
owner_meeting | One-to-one or group meeting with unit owners |
other | Any activity not covered above |
Status Lifecycle
scheduled → completed
→ cancelled
→ overdue (automatic when past scheduled date without completion)
Priority Levels
low— routine, no urgencymedium— standard priorityhigh— requires prompt attentionurgent— immediate action required
Linking
Diary entries can be linked to any combination of:
- Development
- Unit
- Owner
- Contact
- Contractor
- Staff assignee
Completing a Diary Entry
Use the Complete action on a diary entry to mark it as done and record outcome notes. Once completed, the entry status changes to completed and is recorded in the audit log.
Site Inspections
Inspection Types
| Type | Description |
|---|---|
routine | Standard periodic site inspection |
pre_agm | Inspection conducted before an AGM |
post_works | Post-contractor-works sign-off inspection |
insurance | Insurance-required inspection |
health_safety | Health & Safety inspection |
fire_safety | Fire safety compliance inspection |
lettings_checkin | Lettings check-in inspection |
lettings_checkout | Lettings check-out inspection |
snagging | Snagging inspection for new or refurbished units |
ad_hoc | Unplanned or ad hoc visit |
other | Any inspection not covered above |
Inspection Outcomes
| Outcome | Meaning |
|---|---|
satisfactory | No issues found |
minor_issues | Small issues noted, no immediate action required |
major_issues | Significant issues requiring action |
urgent_action_required | Immediate action required |
Structured Findings
Each inspection record supports structured findings with:
- Area — the part of the development or unit inspected
- Description — what was found
- Severity — how serious the finding is
- Photo URL — link to supporting photographic evidence
- Action required — what needs to be done
Executive Summary & Follow-up
Inspections include a free-text executive summary and an actions required field, along with a follow-up date for scheduling any remedial work or re-inspection.
Auto-Diary Integration
When creating a site inspection, you can opt to automatically create a linked diary entry. This keeps a chronological diary record alongside the structured inspection report. When the inspection is marked as complete, its linked diary entry is also automatically completed.
Dashboard UI
Navigate to Operations → Diary & Inspections to access the module.
Summary Cards
The top of the page shows live summary counts:
| Card | Description |
|---|---|
| Today | Diary entries scheduled for today |
| Next 7 Days | Entries scheduled in the next 7 days |
| Scheduled | All entries with scheduled status |
| Overdue | Entries that are past their scheduled date and not completed |
| Upcoming Inspections | Inspections not yet completed |
| Urgent Actions | Inspections with urgent_action_required outcome |
Filtering
Both the diary and inspections table views support filtering by:
- Status (scheduled, completed, cancelled, overdue / in progress)
- Type (entry type or inspection type)
- Priority (diary entries only)
Creating Entries
- Use the + New Entry button on the Office Diary tab to open the create diary entry dialog. You can link the entry to a development at creation time.
- Use the + New Inspection button on the Site Inspections tab to open the create inspection dialog. You can opt in to auto-creating a linked diary entry at the same time.
Detail Panels
Clicking any row opens a detail panel showing all fields, linked entities, and findings (for inspections). The completion workflow is accessible from the detail panel.
tRPC API Reference
All procedures are under the diary router namespace.
Diary Entry Procedures
| Procedure | Description |
|---|---|
diary.summary | Dashboard summary counts for diary and inspections |
diary.listDiaryEntries | Paginated list with filters: status, entryType, priority, date range, assignedUserId, developmentId |
diary.getDiaryEntry | Single entry with all linked entity names |
diary.createDiaryEntry | Create a new diary entry |
diary.updateDiaryEntry | Partial update of an existing diary entry |
diary.completeDiaryEntry | Mark an entry as completed with outcome notes |
diary.deleteDiaryEntry | Delete an entry (admin only) |
diary.entriesForDevelopment | All diary entries scoped to a specific development |
Inspection Procedures
| Procedure | Description |
|---|---|
diary.listInspections | Paginated list with filters: status, inspectionType, developmentId, inspectorId |
diary.getInspection | Detailed inspection view including findings |
diary.createInspection | Create an inspection; optionally auto-creates a linked diary entry |
diary.updateInspection | Partial update with findings management |
diary.completeInspection | Record outcome; auto-completes linked diary entry if present |
diary.deleteInspection | Delete an inspection (admin only) |
diary.inspectionsForDevelopment | All inspections scoped to a specific development |
All mutation procedures are covered by full audit logging.
Database Schema
Two new tables are introduced in src/db/schema-diary.ts:
diary_entries
Key columns: id, orgId, developmentId, unitId, ownerId, contactId, contractorId, assignedUserId, entryType, status, priority, title, notes, scheduledDate, scheduledTime, duration, recurrence, outcomeNotes, createdAt, updatedAt.
Indexes: orgId, developmentId, scheduledDate, status, assignedUserId.
inspection_records
Key columns: id, orgId, developmentId, inspectorId, linkedDiaryEntryId, inspectionType, status, outcome, scheduledDate, completedDate, executiveSummary, actionsRequired, followUpDate, findings (structured JSON array), createdAt, updatedAt.
Indexes: orgId, developmentId, scheduledDate, status, inspectorId.
Integration Points
- Development detail pages — use
diary.entriesForDevelopmentanddiary.inspectionsForDevelopmentto embed diary and inspection history directly on a development's detail page - Existing schema — diary entries link to the existing
developments,units,owners,contacts, andcontractorstables - Inspection → Diary — the auto-diary-entry feature on inspection creation keeps the office diary automatically up to date without double-entry