SharePoint, Azure Functions, and Visual Studio (Part 1)

“In old-school SharePoint, if you wanted to run some custom code in a web part, workflow, form, or event handler, you wrote either a sandboxed or a farm solution. Neither of these are supported in SharePoint Online. So what are developers supposed to do when they need to run some code somewhere other than the web browser? How can they run code in the background, elevate permissions, or fill gaps in the “out of the box” configuration options?”

That paragraph opens a blog post series by Bob German entitled Calling SharePoint CSOM from Azure Functions.

Read more

Using and Search to Create a Rollup Calendar in SharePoint

A few weeks ago I finally posted a blog on using one of my favorite jQuery libraries to create custom calendar views in SharePoint:

Using to Create Custom Calendars in SharePoint

I wanted to follow up that post with a similar solution, but instead of using REST to query a SharePoint list for calendar events, I wanted to use SharePoint’s REST Search functionality to create a rollup calendar view. This allows me to create a calendar view for events across multiple lists, sites, or even site collections. And because it’s search based, the results will be security trimmed to that events the user has access to.

Using the Search REST API is a little less straightforward than just querying a list directly using REST and there’s a couple of challenges to understand. Let me break some of those down for you and we’ll go over them in more detail in the video below as well.

Read more

New & Improved Cascading Dropdowns for SharePoint Classic Forms

Almost three years ago I posted a script on how to create cascading drop downs for SharePoint 2013 and SharePoint Online using REST.

Cascading Drop Down Lists in SharePoint / Office 365 using REST

Since then I’ve had a lot of comments asking for additional functionality to that script. So, I decided it was time to update the script and make it a little more modular. If you are a user of the previous script, the biggest change you will see is how you execute the cascade function. Now, instead of passing in an object to the cascade functionality, you pass in an array of objects. This allows you to set up multilevel cascading.The updated script can be found on GitHub at

As always, take a look at the video at the end of the blog post for step by step instructions and to see the script in action.

Read more