We’ve introduced significant enhancements to the Appointment Resource Status logic in Maica to support better control over which Resources are considered approved to attend Appointments and to introduce a flexible, permissions-based acceptance workflow. These changes improve visibility, security, and data integrity across both individual and recurring Appointments.
New Status Logic for Appointment Resources: The system now respects the Appointment Resource Status, enabling workflows based on statuses like Pending or Accepted. Default status can be configured via a new Setting. If no setting is defined, the system defaults to Accepted (to preserve backward compatibility).
New Restrictions for Unaccepted Resources: Resources who have not been marked as Accepted cannot: Check In/Out, Quick Complete or Cancel Appointments
Permission-Based Acceptance Actions: New permission sets introduced to control acceptance actions: Accept Own Resource and Accept All Resources. Additionally, the system now shows tailored messages based on whether the user has these permissions.
Visual Indicators and Acceptance UI: A warning icon and tooltip now appear for unaccepted Appointment Resources. Users with appropriate permissions can now accept resources directly via the Appointment Wizard or Manage Appointment modal. Messaging varies based on the user’s relationship to the resource:
Recurring Appointments Now Inherit Status: When Recurring Appointments are created from a Master, the Appointment Resource Status is inherited from the Master Appointment. Updates to the Master Appointment status can cascade to scheduled Appointments, but only when triggered manually (e.g., by editing the Master).
Validation Enhancements: Appointments with Pending or Unaccepted Resources are displayed as Unfilled in the Planner. These can still be seen by the Resource and accepted provided the correct Permission Sets are assigned. Appointments now respect Resource-to-Participant ratios and ensure the correct number of Accepted Resources are assigned.
Improved Messaging & Tooltips: The system now shows clear, role-based messages explaining why a user can or cannot accept a Resource or perform an action. Messages dynamically switch between “Appointment” and “Shift” depending on the record type.
Compatibility & Upgrade Considerations: A post-install script ensures that existing Appointment Resources are set to Accepted if no default is defined—preserving historical behavior.
Pending status: ❌ Cannot check in, complete, or cancel the Appointment.
We resolved an issue where Notes entered against a Checklist Item within the Manage Appointment modal were not being retained after saving. Users found that notes were either missing or overwritten upon re-entry, causing confusion and potential loss of important information.
Checklist Notes Now Persist After Save: When users complete a Checklist Item and add Notes, the system now saves and returns those values reliably. Users can exit and re-enter the Checklist modal, and the previously entered Notes will remain visible and unchanged.
Prevents Overwriting of Notes on Re-Entry: The bug causing new entries to overwrite previously saved Notes has been fixed. Users can now confidently add incremental updates or review historical context without losing data.
Applies to All Checklist Item Statuses: The fix supports all status values (e.g., Completed, In Progress, etc.) where Notes are captured, regardless of the Checklist Item’s current state.
We resolved an issue where editing the Start and/or End Date/Time of an Unavailability record in the Planner did not correctly update the Duration (Minutes) on the related Timesheet Entry. This caused discrepancies in Timesheet calculations and required manual corrections by users.
Duration Now Recalculates Automatically: When users edit the Start Date/Time or End Date/Time of an Unavailability entry, the system now automatically recalculates the Duration (Minutes) field on the corresponding Timesheet Entry. This ensures that the recorded duration always reflects the updated availability window.
Fix Applies to All Edited Unavailabilities: Whether users change just the start time, just the end time, or both — the calculated duration is now kept in sync. This applies to all Unavailability records where “Create Corresponding Timesheet = TRUE”.
No Additional Action Required by Users: The update is applied in real time when users submit changes through the Manage Unavailability modal in the Planner. No need to manually open and resave the Timesheet Entry to refresh the Duration.
We resolved an issue where Agreement Items displayed incorrect utilisation percentages and negative remaining balances due to inconsistencies in how Quantity and Unit Price were ratioed in relation to Invoice Line Item records. This fix ensures accurate financial calculations, preventing over-utilisation errors and incorrect funding balances.
New Quantity Delivered Field for Accurate Roll-Ups: Introduced Quantity Delivered field on Delivery Activity. This field captures the actual ratioed quantity, ensuring correct utilization calculations. Roll-ups on Agreement Items now sum Quantity Delivered instead of Quantity.
Enhanced Handling of Ratio-Based Calculations: The system now correctly differentiates between Unit Price Ratioed and Quantity Ratioed Invoice Line Item records, ensuring that the Quantity Delivered field on the Agreement Item always respects your preferred method of ratio calculation set under Maica settings. If Unit Price or Quantity is ratioed, Maica applies the ratio to a new Quantity Delivered field on the Invoice Line Item, which the Agreement Item now uses to calculate Quantity Delivered. This prevents cases where the Quantity Delivered field on the Agreement Item displayed inflated, non-ratioed Quantities if your preferred method of ratio calculation was defined as Unit Price in Maica Settings.
We resolved an issue where editing an Appointment within an existing Schedule (not the Master) unintentionally updated both the original schedule and the newly created schedule during a schedule split. This resulted in incorrect recurrence patterns and unexpected additional Appointments, particularly when switching between weekly and fortnightly frequencies.
When an Appointment within a schedule (not the Master) was edited, Maica attempted to split the schedule: The current Appointment became the Master of a new schedule & the previous schedule was supposed to end on the day before the updated Appointment.
However, all UI changes (e.g., Frequency updates) were incorrectly applied to both the original and new schedules, causing both to reflect the updated values. For example, changing a Fortnightly schedule to Weekly caused both schedules to become Weekly, which in turn led to duplicate Appointments being created for the original schedule beyond its intended end date.
Corrected Cloning Logic During Schedule Splits: The system now ensures that when splitting a schedule the original schedule retains its original values (e.g., Frequency, Interval) and only the End Date of the original schedule is updated to one day before the Appointment’s Scheduled Start.
New Schedule Now Uses Updated Values: The current Appointment becomes the Master of a new schedule, which begins on the Scheduled Start Date of that Appointment. The new Schedule inherits all UI changes, ensuring accurate recurrence going forward.
Pre-Split UI Changes Are No Longer Propagated Prematurely: UI changes are temporarily held until the system confirms a schedule split is required. This prevents incorrect values from being applied to the existing schedule.
Prevents Duplicate Appointment Creation: The updated logic ensures that the original schedule ends cleanly, preventing the system from generating extra Appointments based on the wrong Frequency.
NDIS-834: Required post-install script to update all Invoice Line Items to populate Quantity Delivered

NDIS-834: Required post-install script to update all Agreement Items to populate Quantity Delivered. Please ensure you run the Invoice Line Item script shown above to completion before running this script. You can track the progress of the Job in your Salesforce instance by going to Setup --> Apex Jobs.

CC-504: Required script to reevaluate Duration on TSE related to Unavailability (updates only records where reevaluated value it different to one on the record, basically when Unavailability was changed):

CC-485: Required script to set Default Appointment/Shift Status to Accepted if the field is EMPTY in the org:

CC-485: Optional script that sets Appointment Resource Status to Accepted if the Default value in the settings is Accepted only for those records where Status is not Accepted yet for some reason.

CC-485: Ensure that no default value is set at the Salesforce data model level for the Status field on the Appointment Resource object. Status defaults should now be managed via: Settings → Service Management → Default Appointment Resource Status