Create Appointment Action - What About Update Remove


Badge +7

Hi, I have a Sharepoint list that captures absence requests. Items are being synced from our absence request system using DataSync Studio.

 

I'm using the Create Appointment Action to insert them into peoples calendars. However when there is a change to an event, IE it is cancelled or amended, I'd like the ability to amend or delete the item I created in Exchange. At the moment my work around is to simply remind the user to update the calendar item in outlook.

 

Any suggestions? I do see I can connect to exchange services and there is an option to delete an item, but I have no idea how to configure the SOAP code.

 

Regards

 

Tony.


13 replies

Badge +6

Anthony Parker‌, here is the link to the web service description. Important to note, that you have to use the Web Request action and not the Call Web Service action as the Exchange web service doesn't seem to return proper WSDL.

For the format of the SOAP message have a look at the XML described here. In case you want to delete an item please refer to this article. That should give you pointers in the right direction I hope happy.png

Badge +6

Hi Guys,

I have the same issue in SharePoint 2013 and Nintex workflow. Patrick Hosch​ your links above does that mean we need develop pages that we will call via web request?

Why has Nintex not done anything with this functionality?

I put an appointment in someone's calendar I would like to be able to remove or update it using Nintex just like I used Nintex to create it.

Any ideas that maybe Nintex are working on this? Feature request perhaps?

Regards

Bhuti

Badge +6

Hi Bhuti,

no, the link provided shows you how to work and use Exchange web services. YOu can use the Call Web Service action to interact with those web services.

If you'd like to see a dedicated action for it, please log a feature request on Nintex' UserVoice

Badge +17
Bhuti, 
You can do just that with Nintex. 

The action to use is called Web Service. From there you would work to delete the appointment you created, pending you have all necessary information. 

This action hasn't been wrapped up into a pretty work flow action that you can click on but it is there.
Userlevel 5
Badge +9

Hi,

To update or delete an appointment in Exchange, you first need to find the appointment.

To do that, you can perform a web request using "Web request" action in Nintex Workflow configured like the following (the following example look for an appointment in test@mail.com's calendar which subject contains "Subject to find", for more information : https://msdn.microsoft.com/en-us/library/office/dn495614(v=exchg.150).aspx):

This request will get a response where there will be an item id and a change key that will be necessary to perform to request to update or delete the appointment. To extract the item id and the change key, you need to add a "Query XML" action configured like the following :

  • XML Source : XML
  • XML : add the reference to the variable where you stored the result of the previous web request (for example txtWebServiceResult)
  • Output 1 :
    • Process using : XPath
    • //*[local-name()='ItemId']/@Id
    • Return results as : Text
    • Store result in : specify a single line of text workflow variable (for example txtEventId)
  • Output 2 :
    • Process using XPath
    • //*[local-name()='ItemId']/@ChangeKey
    • Return results as : Text
    • Store result in : specify a single line of text workflow variable (for example txtEventChangeKey)

The next step is to perform the web request to update or delete the appointment.

Here's the web request to update the appointment previously found (The following example will update the start and end date and time) :

Here's the web request to delete the appointment previously found :

Hope this helps

Badge

This is great but my issue is there is a duplicate calendar entry I am trying to delete.  How can I find it by subject with a specific date. I have tried multiple entries from the above notes and keep getting internal server error.  It works great if I just use the subject

Userlevel 5
Badge +9

According to this article, you need to add a calendar view right after the "ItemShape" tag (<CalendarView MaxEntriesReturned="5" StartDate="2013-08-21T17:30:24.127Z" EndDate="2013-09-20T17:30:24.127Z" />) :

https://msdn.microsoft.com/en-us/library/office/dn495614(v=exchg.150).aspx

I haven't tried that, tell me if it works.

Hope this helps

Badge +9

Caroline Jung,

How would you add time zone to this? In previous create appointment i did: <MeetingTimeZone TimeZoneName="Central Standard Time"/> 

but cannot seem to figure out for the web request.

Badge +9

Ahh, got it : Had to seperately include time zone updates apart from other date updates

<t:SetItemField>
<t:FieldURI FieldURI="calendar:StartTimeZone" />
<t:CalendarItem>
<t:StartTimeZone Id="Central Standard Time" />
</t:CalendarItem>
</t:SetItemField>
<t:SetItemField>
<t:FieldURI FieldURI="calendar:EndTimeZone" />
<t:CalendarItem>
<t:EndTimeZone Id="Central Standard Time" />
</t:CalendarItem>
</t:SetItemField>

Badge +9

My impersonation account has the modify rights but not delete. I am struggling for if Attendees field is modified, it does not update the attendees (add/remove attendees), or changes to other fields is not reflected for attendees(date time or location).

This is what i have for attendees:

<t:SetItemField>
<t:FieldURI FieldURI="calendar:RequiredAttendees" />
<t:CalendarItem>
<t:RequiredAttendees>
<t:Attendee>
<t:Mailbox>
<t:Name>{WorkflowVariable:txtAttendeesNames}</t:Name>
<t:RoutingType>SMTP</t:RoutingType>
</t:Mailbox>
</t:Attendee>
</t:RequiredAttendees>
</t:CalendarItem>
</t:SetItemField>

Badge +9

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

Userlevel 5
Badge +9

Thanks for sharing happy.png

Badge +6

Is there anyway someone can upload a snippet or workflow sample? The web request in the workflow doesn't error, so I have the connection down. However, I am not a developer and I am getting a bit lost on how to make a appointment created from the workflow delete if the "cancel" box gets checked on the item. 6858i1F9D33B797166B32.png

 

 

 

 

Reply