Skip to main content

Hi Everyone,

I have a problem in updating an appointment in Outlook using Web Request Action. The scenario is this I have a workflow that will create an appointment to Outlook when an event is created in a sharepoint calendar and this workflow is just working fine. The next workflow is when an event is modified in the sharepoint calendar the changes will reflect on the Outlook calendar. Thanks to Caroline Jung‌ answer to https://community.nintex.com/thread/1783. I successfully created a workflow that will update the Outlook calendar when the sharepoint calendar is modified. But here is the problem. In every event the user will also input several attendees and I can't update their Outlook calendar and I don't know why I cant update it my best guess is that I don't have their username or password that the web request action is requesting for. I also mark it as a red text on the codes below and the only information I have to the attendees is their email address

Example Scenario:

Rogelio created an event and input two attendees Mark and Jeff. The appointment should be created to the Outlook Calendar of Rogelio, Mark and Jeff. If Rogelio or any other user updates the Appointment. The Update should also reflect to their respective calendars.

Note: I only have the email address of Mark and Jeff so I cant input their login information to the Web Request action.

I also attached my Workflow for these. Any suggestions is welcomed. Thanks

Cheers,

Rogelio

Hi Rogelio,

When you create the appointment in Outlook calendar, do you create it in the calendar of every attendee (in your example, do you create three appointments with three web requests)?

You can create/update an appointment in some else's Outlook calendar if you use credentials of a user who has write permission on this other user's calendar. What I've already done is creating a service account and using PowerShell, giving this account create and edit owned items permissions on everyone's calendar so that this service account can create and only edit items that this account has created. This PowerShell script is executed every day to add this permissions to every new user created.

Hope this helps


Hi Caroline,

I have a separate workflow which uses a Create Appointment action to create appointments in individual outlook calendar base on the creator of the appointment and it's attendees. and I only use Web Request action for updating the appointment when it is modified in the sharepoint calendar. Our team has a separate email which all of the technical teams in our company check upon on it's calendar. This team email is also the credential I use on creating appointments on other calendars. Should I just put this credential on the web request? because I don't know what email I will put on the code below:

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<soap:Body>
<FindItem Traversal="Shallow" xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
<ItemShape>
<t:BaseShape>IdOnly</t:BaseShape>
<t:AdditionalProperties>
<t:FieldURI FieldURI="calendar:Start"/>
<t:FieldURI FieldURI="calendar:End"/>
<t:FieldURI FieldURI="item:Subject"/>
</t:AdditionalProperties>
</ItemShape>
<Restriction>
<t:Contains ContainmentMode="Substring" ContainmentComparison="IgnoreCase" >
<t:FieldURI FieldURI="item:Subject" />
<t:Constant Value="Subject to find" />
</t:Contains>
</Restriction>
<ParentFolderIds>
<t:DistinguishedFolderId Id="calendar">
<t:Mailbox>
<t:EmailAddress>test@mail.com</t:EmailAddress> 
</t:Mailbox>
</t:DistinguishedFolderId>
</ParentFolderIds>
</FindItem>
</soap:Body>
</soap:Envelope>


If the team email account has write permission on attendees' calendars then you should put the credentials of this account.

Regarding the email address to put in the XML, part you've written in red, you should put the email of the calendar to update, so the email address of the attendees. You need to perform one request per attendee as the id of the event to update will be different from one calendar to anotther one (one request per attendee to get the id of the event to update and one request per attendee to perform the update of the event).

Hope this helps


Hi Caroline,

Thanks a lot I will try this and update you on the results. This is a great help.

Cheers,

Rogelio


Vote for: Update / Delete the appointment – Customer Feedback for Nintex


Reply