Recently, we received a client’s requirement for Project Management on a SharePoint site. One requirement was to create a Gantt chart view in modern SharePoint lists using JSON code. So, I thought I would share my knowledge about the Gantt chart views in SharePoint in this article.
In this blog post, I will thoroughly explain how to create a Gantt chart view in SharePoint Online Modern list using JSON code and why Gantt charts are used in SharePoint.
Additionally, we will discuss how to format the Gantt chart view in a modern SharePoint list using JSON like the image below:

SharePoint Gantt Chart View
Gantt charts are progress bar charts that represent the project’s schedule, whereas Gantt charts are used for project planning and management, which display the progress of tasks, deadlines, and milestones.
It gives an overview of when a task should start and finish concerning the other functions.
In the SharePoint classic experience, there is a functionality to create the Gantt view while creating views for a list. Unfortunately, Gantt view functionality is not present in the Modern SharePoint list. To some extent, we can format the list to Gantt chart view in Modern SharePoint using JSON code.

Gantt Chart View in SharePoint Online Modern List Using JSON
To create a SharePoint Gantt chart view, first, let’s get started with the SharePoint list [Project Schedule List] and its columns with various data types, as you can see from the table below:
| Column Name | Data types |
| Title | Single line of text [Default] |
| Start Date | Date and time |
| Due Date | Date and time |
| Project Start Date | Date and time |
| Project End Date | Date and time |
| Percent Complete | Number [Min 0- Max 100] allow symbol % |
| Task Type | Choice [Task, Milestone] |
Here, I have added a Percent Complete column to indicate the progress of a task. Make sure to enable Require that this column contain information on all the columns that represent the Gantt chart.
The represented image below displays the SharePoint list with the columns that I mentioned:

Steps to format the list view:
1. To add a new view to your SharePoint list, Click on +Add view -> Provide View name -> Tap Create button.


2. Apply the view formatting to the newly created view [Gantt view].
- Click on the drop-down of the Gantt view -> Select Format current view to open the Format view-pane.

- In the Format view pane, Click on the Advanced mode link.

3. Copy the provided JSON code and paste it into the Format view page, where we can change the view display by adding json code.
Important:
If you have different column names, replace the code with column internal name of yours.
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/row-formatting.schema.json",
"hideSelection": true,
"hideColumnHeader": true,
"rowFormatter": {
"elmType": "div",
"style": {
"height": "=if(@rowIndex == 0, '88px', '52px')",
"display": "block",
"width": "100%",
"position": "sticky"
},
"attributes": {
"class": "ms-bgColor-neutralLighter--hover"
},
"children": [
{
"elmType": "div",
"attributes": {
"class": "ms-bgColor-themePrimary"
},
"style": {
"width": "100%",
"display": "=if(@rowIndex == 0, 'flex', 'none')",
"height": "36px",
"padding": "0",
"font-weight": "bold",
"border-radius": "6px 6px 0 0"
},
"children": [
{
"elmType": "div",
"txtContent": "Milestone Chart",
"style": {
"width": "400px",
"text-align": "left",
"padding-left": "2.6em",
"box-sizing": "border-box"
},
"attributes": {
"class": "ms-fontSize-16 ms-fontColor-white"
}
},
{
"elmType": "div",
"style": {
"flex-grow": "1",
"height": "100%",
"position": "relative",
"display": "flex",
"align-items": "center"
},
"children": [
{
"elmType": "div",
"txtContent": "=toLocaleDateString([$ProjectStartDate])",
"style": {
"position": "absolute",
"padding": "0px 14px 0px 14px",
"height": "100%",
"margin-left": "40px",
"border-radius": "6px 6px 0 0",
"display": "flex",
"align-items": "center"
},
"attributes": {
"title": "='Project Start: ' + toLocaleDateString([$ProjectStartDate])",
"class": "ms-bgColor-themeDarker ms-fontSize-14 ms-fontColor-white"
}
},
{
"elmType": "div",
"txtContent": "=toLocaleDateString([$ProjectEndDate])",
"style": {
"position": "absolute",
"right": "0",
"padding": "0px 10px 0px 14px",
"height": "100%",
"border-radius": "6px 6px 0 0",
"display": "flex",
"align-items": "Center"
},
"attributes": {
"title": "='Project Finish: ' + toLocaleDateString([$ProjectEndDate])",
"class": "ms-bgColor-themeDarker ms-fontSize-14 ms-fontColor-white"
}
},
{
"elmType": "span",
"txtContent": "=toLocaleDateString( @now)",
"style": {
"position": "relative",
"width": "90px",
"z-index": "100",
"display": "=if([$ProjectEndDate] < @now , 'none', 'block')",
"left": "=floor( (Number(@now)-Number([$ProjectStartDate])) / (Number([$ProjectEndDate])-Number([$ProjectStartDate])) * 100 ) + '%'",
"background-color": "#e1dfdd",
"text-align": "center",
"padding": "0 3px",
"margin": "0 0 0 3px"
}
},
{
"elmType": "span",
"attributes": {
"class": "ms-fontColor-gray40"
},
"style": {
"position": "relative",
"display": "=if( [$ProjectEndDate] < @now , 'none', 'block')",
"top": "-1.3em",
"z-index": "1",
"border-left": "5px solid",
"height": "800px",
"width": "0.1em",
"left": "= (Number(@now)-Number([$ProjectStartDate])) / (Number([$ProjectEndDate])-Number([$ProjectStartDate])) * 100 + '%' "
}
}
]
}
]
},
{
"elmType": "div",
"style": {
"width": "100%",
"display": "flex"
},
"children": [
{
"elmType": "div",
"style": {
"width": "420px",
"display": "flex",
"flex-wrap": "wrap"
},
"attributes": {
"class": ""
},
"children": [
{
"elmType": "span",
"style": {
"width": "30px",
"padding": "6px 0",
"text-align": "center",
"margin-left": "10px",
"margin-right": "10px",
"cursor": "pointer"
},
"attributes": {
"iconName": "=if([$PercentComplete] >= 1, 'CompletedSolid', if([$PercentComplete] > 0 , 'CortanaLogoReadyOuter', 'CircleRing'))",
"title": "='PercentComplete: ' + Number([$PercentComplete] * 100) + '%'",
"class": "= 'ms-fontSize-14 ms-fontColor-' + if([$PercentComplete] >= 1, 'green', 'neutralSecondaryAlt')"
},
"customRowAction": {
"action": "setValue",
"actionInput": {
"Progress": "=if([$PercentComplete] == 0, if([$TaskType] == 'Task' || [$TaskType] == '', 25 , 100) , if([$PercentComplete] == 0.25 , 50, if([$PercentComplete] == 0.50, 75, if([$PercentComplete] == 0.75, 100, 0))))"
}
}
},
{
"elmType": "button",
"txtContent": "[$Title]",
"customRowAction": {
"action": "editProps"
},
"style": {
"width": "375px",
"height": "1.6em",
"padding": "0.3em 0 0 0",
"border": "none",
"background-color": "transparent",
"cursor": "pointer",
"text-decoration": "none",
"text-align": "left",
"outline": "none",
"display": "inline-block",
"overflow": "hidden",
"text-overflow": "ellipsis",
"white-space": "nowrap"
},
"attributes": {
"title": "[$Title]",
"class": "= 'ms-fontSize-12 ms-fontWeight-bold ' + if([$DueDate] < @now && [$PercentComplete] < 100, 'ms-fontColor-red', 'ms-fontColor-gray140 ms-fontColor-black--hover')"
}
},
{
"elmType": "span",
"style": {
"width": "24px",
"padding": "1px 0 0 0",
"text-align": "center",
"margin-left": "-18px",
"color": "=if([$DueDate] < @now && [$PercentComplete] < 100, '#e72828', '#0078db')"
},
"attributes": {
"iconName": "=if( ( ([$TaskType] == 'Task' || [$TaskType] == '') && [$DueDate]< @now && [$PercentComplete] < 1 ) || ([$TaskType] == 'Milestone' && [$StartDate]< @now && [$PercentComplete] < 1 ) , 'EventDateMissed12', '')",
"title": "This task is running late!",
"class": "='ms-fontSize-14 ms-fontColor-' + if([$DueDate]< @now && [$PercentComplete] < 1, 'sharedRed20', 'themePrimary')"
}
},
{
"elmType": "div",
"txtContent": "=toLocaleDateString([$StartDate])",
"style": {
"width": "96px",
"padding": "0.1em 0",
"text-align": " center",
"margin-left": "40px",
"margin-right": "24px",
"heigth": "1.4em",
"border-radius": "12px"
},
"attributes": {
"class": "ms-fontSize-12 ms-bgColor-neutralLight"
}
},
{
"elmType": "div",
"txtContent": "=toLocaleDateString([$DueDate])",
"style": {
"width": "96px",
"padding": "0.1em 0",
"text-align": " center",
"border-radius": "12px"
},
"attributes": {
"class": "ms-fontSize-12 ms-bgColor-neutralLight"
}
}
]
},
{
"elmType": "div",
"style": {
"flex-grow": "1",
"position": "relative",
"height": "3.3em",
"padding": "0.3em 0 0 0"
},
"attributes": {
"class": ""
},
"children": [
{
"elmType": "div",
"txtContent": "",
"style": {
"position": "absolute",
"box-sizing": "border-box",
"display": "=if([$TaskType] == 'Task' || [$TaskType] == '' , 'flex', 'none')",
"border-radius": "6px",
"z-index": "10",
"top": "1.1em",
"height": "1.8em",
"overflow": "hidden",
"text-overflow": "ellipsis",
"border": "1.5px solid",
"border-color": "=if([$PercentComplete] >= 0.75, '#4CAF50', if([$PercentComplete] >= 0.5, '#FFC107', if([$PercentComplete] >= 0.25, '#ff8400', '#F44336')))",
"background-color": "#cfe6f7",
"left": "= (Number([$StartDate])-Number([$ProjectStartDate])) / (Number([$ProjectEndDate])-Number([$ProjectStartDate])) * 100 + '%'",
"width": "= if( [$DueDate] > [$ProjectEndDate], (Number([$ProjectEndDate])-Number([$StartDate])+ 86400000) / (Number([$ProjectEndDate])-Number([$ProjectStartDate])+ 86400000) * 100 , (Number([$DueDate])-Number([$StartDate])+ 86400000) / (Number([$ProjectEndDate])-Number([$ProjectStartDate])+ 86400000) * 100 ) + '%'"
},
"attributes": {
"class": "",
"title": ""
}
},
{
"elmType": "div",
"style": {
"position": "absolute",
"box-sizing": "border-box",
"display": "=if(( [$TaskType] == 'Task' || [$TaskType] == '' ) && [$PercentComplete] > 0, 'flex', 'none')",
"border-radius": "=if( [$PercentComplete] < 1, '6px 0 0 6px', '6px')",
"z-index": "20",
"top": "1.1em",
"height": "1.8em",
"overflow": "hidden",
"text-overflow": "ellipsis",
"border": "1px solid",
"border-color": "=if([$DueDate] < @now && [$PercentComplete] < 1, '#ff0000', '#0078db')",
"background-color": "=if([$PercentComplete] >= 0.75, '#4CAF50', if([$PercentComplete] >= 0.5, '#FFC107', if([$PercentComplete] >= 0.25, '#ff8400', '#F44336')))",
"left": "= (Number([$StartDate])-Number([$ProjectStartDate])) / (Number([$ProjectEndDate])-Number([$ProjectStartDate])) * 100 + '%'",
"width": "= if( [$DueDate] > [$ProjectEndDate], ((Number([$ProjectEndDate])-Number([$StartDate])+ 86400000) / (Number([$ProjectEndDate])-Number([$ProjectStartDate])+ 86400000) * 100) * [$PercentComplete] + '%' , ((Number([$DueDate])-Number([$StartDate])+ 86400000) / (Number([$ProjectEndDate])-Number([$ProjectStartDate])+ 86400000) * 100 * [$PercentComplete]) + '%'"
},
"attributes": {
"class": "sp-field-bold",
"title": "=[$Title] + ' - ' + toLocaleDateString([$StartDate]) + ' - ' + toLocaleDateString([$DueDate])"
}
},
{
"elmType": "div",
"txtContent": "",
"style": {
"position": "absolute",
"box-sizing": "border-box",
"border-radius": "6px",
"z-index": "50",
"top": "1.1em",
"height": "1.8em",
"overflow": "hidden",
"text-overflow": "ellipsis",
"border": "=if([$DueDate]< @now && [$PercentComplete] < 1 && ([$TaskType] == 'Task' || [$TaskType] == '' ), '1.8px solid #f8b7bd', 'none')",
"background-color": "",
"left": "= (Number([$StartDate])-Number([$ProjectStartDate])) / (Number([$ProjectEndDate])-Number([$ProjectStartDate])) * 100 + '%'",
"width": "=if([$TaskType] == 'Milestone', '28px' , if( [$DueDate] > [$ProjectEndDate], (Number([$ProjectEndDate])-Number([$StartDate])+ 86400000) / (Number([$ProjectEndDate])-Number([$ProjectStartDate])+ 86400000) * 100 , (Number([$DueDate])-Number([$StartDate])+ 86400000) / (Number([$ProjectEndDate])-Number([$ProjectStartDate])+ 86400000) * 100 ) + '%'",
"margin-left": "=if([$TaskType] == 'Milestone', '-14px' , 0"
},
"attributes": {
"class": "",
"title": ""
},
"customCardProps": {
"openOnEvent": "hover",
"directionalHint": "bottomCenter",
"isBeakVisible": true,
"beakStyle": {
"backgroundColor": "white"
},
"formatter": {
"elmType": "div",
"style": {
"max-height": "256px",
"width": "282px",
"display": "flex",
"flex-wrap": "wrap",
"align-items": "flex-start"
},
"attributes": {
"class": "ms-ContextualMenu-list is-open list-436"
},
"children": [
{
"elmType": "div",
"txtContent": "[$Title]",
"style": {
"width": "250px",
"height": "40px",
"padding": "4px 4px 0 4px",
"overflow": "hidden",
"text-overflow": "ellipsis"
},
"attributes": {
"class": "ms-fontSize-14 ms-bgColor-themeLight ms-fontWeight-semibold ms-fontColor-gray160"
}
},
{
"elmType": "div",
"style": {
"width": "12px",
"flex-grow": "1",
"height": "34px",
"padding": "10px 0 0 0 ",
"text-align": "center",
"cursor": "pointer"
},
"attributes": {
"iconName": "Edit",
"class": "ms-fontSize-14 ms-bgColor-themeLight ms-fontColor-gray160"
},
"customRowAction": {
"action": "editProps"
}
},
{
"elmType": "div",
"style": {
"width": "100%",
"display": "flex",
"flex-wrap": "wrap",
"align-items": "flex-start",
"margin": "2px 0"
},
"children": [
{
"elmType": "div",
"style": {
"width": "24px",
"padding": "6px 0",
"text-align": " center",
"heigth": "1.4em"
},
"attributes": {
"iconName": "Timeline"
}
},
{
"elmType": "div",
"txtContent": "0%",
"style": {
"padding": "2px 6px",
"text-align": " center",
"border-radius": "14px",
"margin": "2px 2px 0 0 ",
"cursor": "pointer",
"heigth": "1.4em"
},
"attributes": {
"class": "='ms-fontSize-14 ms-bgColor-themeLight--hover ms-fontColor-themeDarker--hover ms-bgColor-' + if([$PercentComplete] == 0, 'themeTertiary', 'neutralLight')"
},
"customRowAction": {
"action": "setValue",
"actionInput": {
"PPercentComplete": "0"
}
}
},
{
"elmType": "div",
"txtContent": "25%",
"style": {
"padding": "2px 6px",
"text-align": " center",
"border-radius": "14px",
"margin": "2px 2px 0 0 ",
"cursor": "pointer",
"heigth": "1.4em"
},
"attributes": {
"class": "='ms-fontSize-14 ms-bgColor-themeLight--hover ms-fontColor-themeDarker--hover ms-bgColor-' + if([$PercentComplete] == 0.25, 'themeTertiary', 'neutralLight')"
},
"customRowAction": {
"action": "setValue",
"actionInput": {
"PercentComplete": "25"
}
}
},
{
"elmType": "div",
"txtContent": "50%",
"style": {
"padding": "2px 6px",
"text-align": " center",
"border-radius": "14px",
"margin": "2px 2px 0 0 ",
"cursor": "pointer",
"heigth": "1.4em"
},
"attributes": {
"class": "='ms-fontSize-14 ms-bgColor-themeLight--hover ms-fontColor-themeDarker--hover ms-bgColor-' + if([$PercentComplete] == 0.5, 'themeTertiary', 'neutralLight')"
},
"customRowAction": {
"action": "setValue",
"actionInput": {
"percentComplete": "50"
}
}
},
{
"elmType": "div",
"txtContent": "75%",
"style": {
"padding": "2px 6px",
"text-align": " center",
"border-radius": "14px",
"margin": "2px 2px 0 0 ",
"cursor": "pointer",
"heigth": "1.4em"
},
"attributes": {
"class": "='ms-fontSize-14 ms-bgColor-themeLight--hover ms-fontColor-themeDarker--hover ms-bgColor-' + if([$PercentComplete] == 0.75, 'themeTertiary', 'neutralLight')"
},
"customRowAction": {
"action": "setValue",
"actionInput": {
"PercentComplete": "75"
}
}
},
{
"elmType": "div",
"txtContent": "100%",
"style": {
"padding": "2px 6px",
"text-align": " center",
"border-radius": "14px",
"margin": "2px 2px 0 0 ",
"cursor": "pointer",
"heigth": "1.4em"
},
"attributes": {
"class": "='ms-fontSize-14 ms-bgColor-themeLight--hover ms-fontColor-themeDarker--hover ms-bgColor-' + if([$PercentComplete] == 1, 'themeTertiary', 'neutralLight')"
},
"customRowAction": {
"action": "setValue",
"actionInput": {
"percentComplete": "100"
}
}
}
]
},
{
"elmType": "div",
"style": {
"width": "24px",
"display": "=if( ( ([$TaskType] == 'Task' || [$TaskType] == '') && [$DueDate]< @now && [$PercentComplete] < 1 ) || ([$TaskType] == 'Milestone' && [$StartDate]< @now && [$PercentComplete] < 1 ) , 'block', 'none')",
"padding": "6px 0 7px 0",
"text-align": " center",
"heigth": "1.4em",
"margin": "2px 0"
},
"attributes": {
"iconName": "EventDateMissed12",
"class": "sp-field-severity--blocked30 ms-fontSize-14 ms-fontColor-sharedRed20"
}
},
{
"elmType": "div",
"txtContent": "This task is running late!",
"style": {
"width": "254px",
"display": "=if( ( ([$TaskType] == 'Task' || [$TaskType] == '') && [$DueDate]< @now && [$PercentComplete] < 1 ) || ([$TaskType] == 'Milestone' && [$StartDate]< @now && [$PercentComplete] < 1 ) , 'block', 'none')",
"padding": "4px 0 4px 4px",
"text-align": " Left",
"heigth": "1.4em",
"margin": "2px 0"
},
"attributes": {
"class": "sp-field-severity--blocked30 ms-fontSize-14 ms-fontColor-sharedRed20"
}
},
{
"elmType": "div",
"style": {
"width": "24px",
"padding": "6px 0",
"text-align": " center",
"heigth": "1.4em"
},
"attributes": {
"iconName": "Diamond"
}
},
{
"elmType": "div",
"txtContent": "=toLocaleDateString([$StartDate])",
"style": {
"width": "127px",
"padding": "2px 0",
"text-align": " center",
"border-radius": "14px",
"margin": "2px 2px 0 0 ",
"height": "1.4em"
},
"attributes": {
"class": "ms-fontSize-14 ms-bgColor-neutralLight"
}
},
{
"elmType": "div",
"txtContent": "=toLocaleDateString([$DueDate])",
"style": {
"width": "127px",
"padding": "2px 0",
"text-align": " center",
"border-radius": "14px",
"margin": "2px 2px 0 0 ",
"height": "1.4em"
},
"attributes": {
"class": "ms-fontSize-14 ms-bgColor-neutralLight"
}
},
{
"elmType": "div",
"style": {
"width": "24px",
"padding": "6px 0",
"text-align": " center",
"heigth": "1.4em"
},
"attributes": {
"iconName": "Contact",
"title": "='Assigned to : ' + [$AssignedTo.title]"
}
},
{
"elmType": "div",
"txtContent": "[$AssignedTo.title]",
"style": {
"width": "254px",
"padding": "4px 0 4px 4px"
},
"defaultHoverField": "[$AssignedTo]"
},
{
"elmType": "div",
"txtContent": "[$TaskDescription]",
"style": {
"font-style": "italic",
"width": "254px",
"padding": "4px 0 4px 4px"
}
}
]
}
}
},
{
"elmType": "div",
"txtContent": "",
"style": {
"position": "relative",
"box-sizing": "border-box",
"display": "=if([$TaskType] == 'Milestone', 'flex', 'none')",
"z-index": "10",
"top": "0.3em",
"height": "3em",
"left": "= (Number([$StartDate])-Number([$ProjectStartDate])) / (Number([$ProjectEndDate])-Number([$ProjectStartDate])) * 100 + '%'",
"margin-left": "30px",
"width": "28px",
"color": "=if([$DueDate] < @now && [$PercentComplete] < 1, '#e72828', '#0078db')"
},
"attributes": {
"iconName": "=if([$StartDate]< @now && [$PercentComplete] < 1, 'Diamond', 'Diamond'",
"title": "=[$Title] + ' - ' + toLocaleDateString([$StartDate]) ",
"class": "='ms-fontSize-24 ' + if([$StartDate]< @now && [$PercentComplete] < 1, 'ms-fontColor-sharedRed20', 'ms-fontColor-themePrimary') "
}
},
{
"elmType": "div",
"txtContent": "=getDate([$StartDate]) + '-' + if(getMonth([$StartDate])==0,'Jan',if(getMonth([$StartDate])==1,'Feb',if(getMonth([$StartDate])==2,'Mar',if(getMonth([$StartDate])==3,'Apr',if(getMonth([$StartDate])==4,'May',if(getMonth([$StartDate])==5,'Jun',if(getMonth([$StartDate])==6,'Jul',if(getMonth([$StartDate])==7,'Aug',if(getMonth([$StartDate])==8,'Sep',if(getMonth([$StartDate])==9,'Oct',if(getMonth([$StartDate])==10,'Nov',if(getMonth([$StartDate])==11,'Dec',''))))))))))))",
"style": {
"position": "absolute",
"box-sizing": "border-box",
"display": "=if([$TaskType] == 'Milestone' , 'flex', 'none')",
"z-index": "3",
"top": "10px",
"height": "24px",
"margin-left": "-8px",
"left": "= (Number([$StartDate])-Number([$ProjectStartDate])) / (Number([$ProjectEndDate])-Number([$ProjectStartDate])) * 100 + '%'",
"width": "60px",
"text-align": "right"
},
"attributes": {
"class": "sp-field-bold ms-fontSize-14"
}
},
{
"elmType": "div",
"txtContent": "=(Number[$PercentComplete]) * 100 + '%'",
"style": {
"position": "absolute",
"box-sizing": "border-box",
"display": "=if([$TaskType] == 'Task' || [$TaskType] == '' , 'flex', 'none')",
"z-index": "3",
"top": "12px",
"height": "24px",
"margin-left": "=if((Number([$DueDate])-Number([$ProjectStartDate])) / (Number([$ProjectEndDate])-Number([$ProjectStartDate])) <= 0.9 , '10px' , '-40px')",
"left": "=if((Number([$DueDate])-Number([$ProjectStartDate])) / (Number([$ProjectEndDate])-Number([$ProjectStartDate])) <= 0.9 , (Number([$DueDate])-Number([$ProjectStartDate])) / (Number([$ProjectEndDate])-Number([$ProjectStartDate])) * 100 + '%' , (Number([$StartDate])-Number([$ProjectStartDate])) / (Number([$ProjectEndDate])-Number([$ProjectStartDate])) * 100 + '%' ) ",
"width": "40px",
"color": "=if([$DueDate] < @now && [$PercentComplete] < 1, '#ff0000', '#000000')"
},
"attributes": {
"class": "sp-field-bold ms-fontSize-14"
}
}
]
}
]
}
]
}
}
4. Then, click on the Save button and close the pane. Within a second, you can see the Gantt chart view of the modern SharePoint list [Project schedule list].

This is how to apply a Gantt chart view in SharePoint Online by formatting the view with a json code.
Conclusion
I hope you understand how to create a Gantt chart view in a modern SharePoint list Using JSON with formatting. Also, I have discussed what a Gantt chart is and why it is used in Project Management with a simple example.
Check out the articles below:
- SharePoint Calculated Column to Extract Email from Person Field [using JSON]
- Rename a SharePoint Online List
- SharePoint list calendar view formatting
- Create SharePoint lists from JSON using Power Automate
- Easiest Way to Validate Phone Number Column in SharePoint
- Create a Custom ID Column in SharePoint List using JSON

After working for more than 18 years in Microsoft technologies like SharePoint, Microsoft 365, and Power Platform (Power Apps, Power Automate, and Power BI), I thought will share my SharePoint expertise knowledge with the world. Our audiences are from the United States, Canada, the United Kingdom, Australia, New Zealand, etc. For my expertise knowledge and SharePoint tutorials, Microsoft has been awarded a Microsoft SharePoint MVP (12 times). I have also worked in companies like HP, TCS, KPIT, etc.