Scheduling SharePoint Online Tasks With Azure Web Jobs

Krishna KV
Team Leader, Aspire Systems
Published On :   15 Aug 2016
Visit Count
Today :  3    Total :   8119
Plan, Migrate, Secure, Report
SharePoint & Office 365 Tool. Simple & Easy to Use. 15-Day Trial!

Sharegate: Kick-Ass Tool
Think Your SharePoint & Office 365 Are Secure ? Find Out Now!

In SharePoint, timer job does the repetitive, scheduled background service to perform task. The azure web job takes the advantage of the SharePoint Online timer service to perform the task in regular basis through scheduled or on-demand. The web jobs uses console application and CSOM to execute the task.

We can start with creating a new console application and we need to add the required assembiles to the project.


We can store the site url, username and password in the app.config file. For security we can encrypt the file.

     <add key="url" value=""/>
     <add key="userName" value=""/>
     <add key="password" value=""/>

Include SharepointPNP Library using Nuget manager.



 class Program
         static void Main()
                 AuthenticationManager authenticationManager = new AuthenticationManager();
                 string url = ConfigurationManager.AppSettings["url"];
                 string userName = ConfigurationManager.AppSettings["userName"];
                 string password = ConfigurationManager.AppSettings["password"];
                 using (ClientContext context = authenticationManager.GetSharePointOnlineAuthenticatedContextTenant(url, userName, password))
                     Console.WriteLine("Started at " + DateTime.Now);
                   List lst = context.Web.Lists.GetByTitle("Interview");
                     CamlQuery camlQuery = new CamlQuery
                         ViewXml = @"<View><Query><Where><IsNull><FieldRef Name='Status' /></IsNull></Where></View></Query>"
                     ListItemCollection listItems = lst.GetItems(camlQuery);
                     foreach (ListItem item in listItems)
                         item["Status"] = "Completed";
                         item["DBUpdateOn"] = DateTime.Now;
                 Console.WriteLine("Ended at " + DateTime.Now);
             catch (Exception exception)
                   Console.WriteLine("Error " + exception.Message);
                  throw exception;

· Handle the exception for logging and throws the same, so that web jobs know error has occurred.

· Always the log the major steps using console.writeline for future reference.

Create an app service in Azure to add the web jobs


The jobs can be deployed and scheduled through visual studio


Scheduling the jobs from visual studio.


The web jobs can be deployed manually as follow.

Compress the binaries files. It will be available under the bin\debug or bin\release folder of the visual studio project.


Upload the compress binaries to azure, After the successful upload the web jobs will displayed under the same.


The console.writeline logs will be displayed under the azure as below.


SharePoint Usage Reports
Usage reports, collaboration and audit for SharePoint.

Protect Your SharePoint