We need support for itemID in compose mode for Appointments for existing appointments or drafts
This is needed so that we don't have to call saveAsync every time to get itemid (this will trigger Attendee notification dialogs)
Chaitanya Kiran commented
Any updates on this?
Matthias Czapla commented
We need to synchronize appointments and especially meeting series to an external system. The Outlook JS API provides no way to get the exceptions to the recurrence pattern, so we need to ask the Outlook/Graph REST API for those, hence we need the itemId.
Our customers work a lot with huge series, lots of exceptions, lots of editing existing items. As others have already pointed out, unexptected saving of the item in the middle of the user editing the appointment is completely unacceptable.
And of course we need differentiate between already existing and unsaved new items. In the latter case we must not make changes to the external system.
Anders Olsen commented
Any updates on this?
Kasper Frank commented
Come on, Outlook Add-ins Team!
This is really basic functionality. Among other things the itemId solves these problems:
1) Enables tracking appointments and meetings in 3rd party systems.
2) Makes it possible to infer if the appointment is new (i.e. if it were null/undefined for unsaved appointments in Exchange, but otherwise non-null for existing appointments).
3) Enables us to lookup additional properties via EWS (or MS Graph)
Using saveAsync is really not an option as the side-effects are unacceptable from an end-user POV (especially saving uncompleted appointments to the user's calendar and notifying attendees needlessly and unexpectedly!)
I'm not sure what your concern is. Can provide any insights into why you're hesitant to provide this feature?
The saveAsync method is unacceptable as a solution for retrieving an item id for an appointment in compose mode.
We have no way of detecting whether or not the user has made any unsaved changes prior to the add-in being loaded and should not be silently saving changes that may not be complete in any case.
A simple getItemIdAsync method that returned an empty value if the item has not been saved would solve this issue.
Filip Krane Adamsen commented
We also need this functionality in order to check if the appointment is already saved--calling saveAsync won't tell us if the appointment is already saved, and in some add-ins we don't actually want to save the appointment!
This is currently preventing us from implementing several very highly requested features from our customers.