I am new to Nintex workflow, so please don't assume I know the basics. I would like to create a workflow that will insert multiple holiday calendar items on all user Exchange Online calendars. Could someone point me in the right direction?
Hey, no problem. There are several Exchange specific actions that you can review here in the online documentation http://help.nintex.com/en-US/O365/Default.htm#O365WorkFlow/Workflow Actions - INT/Exchange Online.ht...
Those actions are
Exchange Online cancel calendar item
Exchange Online create calendar item
Exchange Online create task
Exchange Online delete task
Exchange Online get meeting suggestions
Exchange Online retrieve calendar items
Exchange Online retrieve tasks
Exchange Online update calendar item
Exchange Online update task
Check and see if the create calendar item will do what you are looking for.
Yes, I know I want to use Exchange Online create calendar item. However, because I'm very new to Nintex, I'm looking for some guidance on how to do the following:
Create a calendar item on each user's personal calendar
Apply the workflow to all existing and new Office 365 users
Thank you . . .
That's actually a good question as you need the ability to loop through all of the users in the tenant. The only way I have done that was using PowerShell. I'm not sure if there is a tenant level action in Nintex to get that information. I'll ask around Mike M Eric Harris Caroline Jung Christophe Raucq Dan Stoll
At the moment their isn't a specific tenant level action available to do that level for looping through all the users. However after thinking about it, I don't think you would have to actually do that to achieve what you want.
Why not use the create calendar item, and select the "all users" group or whatever AD group you want to create the item for. This should create an invitation for a calendar event as though your were in Outlook doing that from the calendar settings and send out invitations.
Performing the following web request (using "Web Request" action - GET method) will give you all the SharePoint users (including the external users) :
In the response (in the Web Request action you can store the response in a variable using the "Store response content in" field) there is the property IsShareByEmailGuestUser for each user. If the property is set to true, then it is an external user. So you can use the Query XML action using the following XPath query :
//*[local-name()='properties']/*[local-name()='IsShareByEmailGuestUser' and .='false']/../*[local-name()='Email']
You can maybe get all the users email address like this (just check if there is all the users) and then for each user, create the calendar items.
To apply the workflow to new users, you will have to regularly execute the workflow. For the moment, you can't Schedule site workflows in O365, so an alternative would maybe be to perform a loop. In this loop you can get all the users, create the calendar items for all the users and then add a pause for 1 day for example so that the calendar items will be added every day (you should maybe check if the calendar items have already been added for the each user before adding them using the retrieve calendar items action).
I know, it's not an easy workflow, but there's nothing out of the box the get all the users in a tenant.
Hope this helps
Hi, Aaron Sprague! If you have a solution, please mark the "correct answer" above, as it's helpful to others searching the community for correct answers. If you're still working, keep us posted! Thank you!