
Announcements
Hi everyone,
I’m integrating an external shift/absence system with Dynamics 365 Field Service using Power Automate and the msdyn_SaveCalendar action, and I’ve hit a limitation I’d like to confirm.
For a bookable resource, I’m creating calendar rules via msdyn_SaveCalendar:
Working hours
Breaks (WorkHourType = 1)
Non-working hours (WorkHourType = 2)
All rules:
Are on the same day
Do not overlap in time
Are sent in a single msdyn_SaveCalendar request (sometimes split into multiple RulesAndRecurrences)
Use valid ISO timestamps and supported fields only
Whenever non-working hours are present:
Working hours are created correctly
Breaks are either removed or never persisted
This happens even when the break does not overlap the non-working period
Pre-splitting working hours does not change the outcome
The same behavior occurs consistently via API, even though the UI sometimes appears to handle this differently.
Working hours + breaks → ✅
Working hours + non-working → ✅
Working hours + breaks + time off → ✅
Working hours + breaks + non-working hours → ❌ (breaks are lost)
Is this a known limitation / by-design behavior of msdyn_SaveCalendar?
Specifically:
Is it unsupported to have breaks and non-working hours on the same day when created via API?
Is Time Off the intended alternative when breaks must be preserved?
Or is there a supported pattern/API approach that allows all three to coexist?
Any confirmation or guidance from Microsoft or others who’ve implemented similar integrations would be greatly appreciated.
Thanks in advance.