Skip to main content

Fetch outlook Calendar Events in SharePoint Webpart

Today I came across a requirement to get outlook events to SharePoint custom webpart. Thanks to Graph API to ease the work.

Here are the steps that we need to follow in order to get events.

1. Register a new app in Azure Active Directory. Here is the blog that i referred.

2. Now its time to get access token using generated client id and secret in previous step.

Execute below code to get access token.


$.ajax({
    type: "POST",
    crossDomain: true,
    url:
      "https://cors-anywhere.herokuapp.com/https://login.microsoftonline.com/<Tenant ID>/oauth2/v2.0/token",
    headers: {
      "content-type": "application/x-www-form-urlencoded"
    },
    data: {
      grant_type: "client_credentials",
      client_id: "", //ClientId@TenantId
      client_secret: "",//Client Secret
      scope: "https://graph.microsoft.com/.default"
    },
    success: function(data) {
      console.log(data.access_token);
      getOutlookCalendarEvents(data.access_token);
    },
    error: function(data, errorThrown, status) {}
  });

You can get code access token from console of the browser.

3. Once you have access token, lets get outlook events. Below is the code to get events from outlook using access token generated earlier. 


function getOutlookCalendarEvents(token){
               var today = new Date().toLocaleDateString();
               var loggedInUser = _spPageContextInfo.userEmail;
               var OutlookCalendarURL = "https://graph.microsoft.com/v1.0/users/"+loggedInUser+"/events?&$orderby=start/DateTime&$filter=start/DateTime ge '"+today+"'";
              
               $.ajax({
                   type: "GET",
                   crossDomain: true,
                   url:OutlookCalendarURL,
                   headers: {
                     "authorization": "Bearer " + token
                   },
                   success: function(data) {
                              console.log(data);
                              var OutlookCalendarResults = data.value;                           
                   },
                   error: function(data, errorThrown, status) {}
               });          
}

Above code gets events that are greater than today.
Here is the list of other API end points that could help in further options.

Hope this helps,
Cheers,
Keyur

Comments

Popular posts from this blog

Business Data Connectivity

I came to a requirement wherein I was supposed to get data from an 3 rd party portal using API’s and then bring them to SharePoint server. The first approach that I finalized was just to make BDC solution that will get data from 3 rd party portal and will deploy it to SharePoint. How to Create BDC solution in SharePoint? I found below link that is having really great description about hot to create and deploy the BDC solution to SharePoint. http://www.c-sharpcorner.com/uploadfile/hung123/creating-business-data-connectivity-service-using-visual-studio-2010/ After creating an POC I came to know that BDC model cannot be deployed on Multi tenant farm. So what can be done next? After some amount of googling I came to know that we can create BDC solution using WCF services also. So I created a WCF service solution that acted as a wrapper that used to fetch data from the portal. We can them publish that service to IIS or Server and use the servic...

Identity client runtime library (IDCRL) did not get a response from the login server.

Recently I was doing some testing with a background PowerShell and encountered a weird error. “Identity client runtime library (IDCRL) did not get a response from the login server”. The error that you might encounter while working with PowerShell. This error is very misleading when it comes to identifying what could go wrong. After doing quite a good amount of research below are the probable causes for the error. Invalid Credentials MFA (Multi-Factor Authentication) Manage security defaults. Solutions Invalid Credentials Check if your credentials are wrong. Especially if you are using variables. MFA (Multi-Factor Authentication) Check if MFA is enabled on the account which you are using. These only affect you badly if you are developing PowerShell for a background Job. Go to Microsoft 365 admin center Users -> Active users -> Select the user -> Manage multifactor authentication -> Select the user -> Disable multi-factor authentication. M...

Copying Footers Between SharePoint Sites Using PnP PowerShell

Recently, I have been extensively working with SharePoint and the Patterns and Practices (PnP) PowerShell module. PnP has significantly simplified various tasks by providing easy-to-use command sets and thorough documentation. One particular task that PnP has made straightforward is copying a footer from one SharePoint site to another. This process can be achieved with just a few commands. Why Use PnP PowerShell? PnP PowerShell is a set of cmdlets designed to work with SharePoint Online and SharePoint on-premises. It simplifies the management and automation of common tasks and provides commands for nearly every aspect of SharePoint administration. The PnP module is especially useful for tasks that would otherwise require complex scripting or manual intervention. Copying a Footer with PnP PowerShell To copy a footer from one SharePoint site to another, follow these steps. This process involves exporting the footer template from the source site in XML format and...