Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 50 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,50 @@

# SharePoint Provisioning Templates

Repository for SharePoint PnP Provisioning templates to automate site / tenant level provisioning logic. Templates are divided on different folders based on the structure and needed permissions.

- Site - These templates contain site level provisioning logic. They can be provisioned and used by any site collection administrator and no tenant scoped permissions are needed.

- Tenant - These templates contain tenant level provisioning. They could contain for example multiple site collections, site designs, taxonomy configurations etc. You will need to have tenant level permissions to apply these templates.

Sub folders in specific folders are actual templates. Each template has at least one screenshot file and readme file. The readme file should follow the readme template available in the root of this repository. Each template also has a mandatory json file, which has to follow the provided json file structure. This json file information is used to surface metadata on a web site from where the templates can be used.

# Contributing

This project welcomes contributions and suggestions on service texts, but not for the templates. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide
a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions
provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.

# My SharePoint Site

https://nology897.sharepoint.com/sites/ContosoWorksSite

# Applying Template Script

Import-Module PnP.PowerShell

$baseUrl = Read-Host "Enter base URL for SharePoint (e.g. https://tenant.sharepoint.com/sites/)"
$baseTitle = Read-Host "Enter Site Name"
$baseDescription = "Description for "
$siteNumber = [int] (Read-Host "Enter # of sites to be generated")
$siteOwner = Read-Host "Enter site owner user"
$adminSiteUrl = Read-Host "Enter Admin SharePoint URL"
$templatePath = Read-Host "Enter Path to template"
$credential = Get-Credential
Connect-PnPOnline -Url $adminSiteUrl -Credentials $credential

for ($i = 1; $i -le $siteNumber; $i++) {
$siteTitle = "$baseTitle$i"
$siteUrl = "$baseUrl$siteTitle"
$siteDescription = "$baseDescription$siteTitle"

try {
Write-Host "Creating site: $siteTitle at URL $siteUrl"
New-PnPSite -Type CommunicationSite -Title $siteTitle -Url $siteUrl -Lcid 1033 -Description $siteDescription -Owner $siteOwner
Write-Host "Site creation in progress for: $siteUrl"
}
catch {
Write-Host "Failed to create site: $siteUrl. Error: $\_"
continue
}

Start-Sleep -Seconds 120

Connect-PnPOnline -Url $siteUrl -Interactive

try {
Write-Host "Applying template to site: $siteUrl"
Invoke-PnPSiteTemplate -Path $templatePath
Write-Host "Template applied to site: $siteUrl"
}
catch {
Write-Host "Failed to apply template to site: $siteUrl. Error: $\_"
}

Start-Sleep -Seconds 10
}

Disconnect-PnPOnline
134 changes: 106 additions & 28 deletions tenant/contosoworks/source/template.xml
Original file line number Diff line number Diff line change
Expand Up @@ -447,74 +447,114 @@
<pnp:DataValue FieldName="Title">News Year's Day</pnp:DataValue>
<pnp:DataValue FieldName="Category">Corporate Holidays</pnp:DataValue>
<pnp:DataValue FieldName="Location">United States</pnp:DataValue>
<pnp:DataValue FieldName="EventDate">12/31/2018 4:00 PM</pnp:DataValue>
<pnp:DataValue FieldName="EndDate">7/1/2019 4:59 PM</pnp:DataValue>
<pnp:DataValue FieldName="EventDate">31/12/2024 4:00 PM</pnp:DataValue>
<pnp:DataValue FieldName="EndDate">7/1/2025 4:59 PM</pnp:DataValue>
<pnp:DataValue FieldName="fAllDayEvent">Yes</pnp:DataValue>
</pnp:DataRow>
<pnp:DataRow>
<pnp:DataValue FieldName="Title">Martin Luther King Day</pnp:DataValue>
<pnp:DataValue FieldName="Category">Corporate Holidays</pnp:DataValue>
<pnp:DataValue FieldName="Location">United States</pnp:DataValue>
<pnp:DataValue FieldName="EventDate">1/19/2020 4:00 PM</pnp:DataValue>
<pnp:DataValue FieldName="EndDate">1/20/2020 3:59 PM</pnp:DataValue>
<pnp:DataValue FieldName="EventDate">19/1/2024 4:00 PM</pnp:DataValue>
<pnp:DataValue FieldName="EndDate">20/1/2024 3:59 PM</pnp:DataValue>
<pnp:DataValue FieldName="fAllDayEvent">Yes</pnp:DataValue>
</pnp:DataRow>
<pnp:DataRow>
<pnp:DataValue FieldName="Title">New Year's Day</pnp:DataValue>
<pnp:DataValue FieldName="Category">Corporate Holidays</pnp:DataValue>
<pnp:DataValue FieldName="Location">United States</pnp:DataValue>
<pnp:DataValue FieldName="EventDate">12/31/2019 4:00 PM</pnp:DataValue>
<pnp:DataValue FieldName="EndDate">1/1/2020 3:59 PM</pnp:DataValue>
<pnp:DataValue FieldName="EventDate">31/12/2024 4:00 PM</pnp:DataValue>
<pnp:DataValue FieldName="EndDate">1/1/2025 3:59 PM</pnp:DataValue>
<pnp:DataValue FieldName="fAllDayEvent">Yes</pnp:DataValue>
</pnp:DataRow>
<pnp:DataRow>
<pnp:DataValue FieldName="Title">Memorial Day</pnp:DataValue>
<pnp:DataValue FieldName="Category">Corporate Holidays</pnp:DataValue>
<pnp:DataValue FieldName="Location">United States</pnp:DataValue>
<pnp:DataValue FieldName="EventDate">5/24/2020 5:00 PM</pnp:DataValue>
<pnp:DataValue FieldName="EndDate">5/25/2020 4:59 PM</pnp:DataValue>
<pnp:DataValue FieldName="EventDate">24/5/2024 5:00 PM</pnp:DataValue>
<pnp:DataValue FieldName="EndDate">25/5/2024 4:59 PM</pnp:DataValue>
<pnp:DataValue FieldName="fAllDayEvent">Yes</pnp:DataValue>
</pnp:DataRow>
<pnp:DataRow>
<pnp:DataValue FieldName="Title">Presidents day</pnp:DataValue>
<pnp:DataValue FieldName="Category">Corporate Holidays</pnp:DataValue>
<pnp:DataValue FieldName="Location">United States</pnp:DataValue>
<pnp:DataValue FieldName="EventDate">2/16/2020 4:00 PM</pnp:DataValue>
<pnp:DataValue FieldName="EndDate">2/17/2020 3:59 PM</pnp:DataValue>
<pnp:DataValue FieldName="EventDate">16/2/2024 4:00 PM</pnp:DataValue>
<pnp:DataValue FieldName="EndDate">17/2/2024 3:59 PM</pnp:DataValue>
<pnp:DataValue FieldName="fAllDayEvent">Yes</pnp:DataValue>
</pnp:DataRow>
<pnp:DataRow>
<pnp:DataValue FieldName="Title">Independence day</pnp:DataValue>
<pnp:DataValue FieldName="Category">Corporate Holidays</pnp:DataValue>
<pnp:DataValue FieldName="Location">United States</pnp:DataValue>
<pnp:DataValue FieldName="EventDate">7/2/2020 5:00 PM</pnp:DataValue>
<pnp:DataValue FieldName="EndDate">7/3/2020 4:59 PM</pnp:DataValue>
<pnp:DataValue FieldName="EventDate">2/7/2024 5:00 PM</pnp:DataValue>
<pnp:DataValue FieldName="EndDate">3/7/2024 4:59 PM</pnp:DataValue>
<pnp:DataValue FieldName="fAllDayEvent">Yes</pnp:DataValue>
</pnp:DataRow>
<pnp:DataRow>
<pnp:DataValue FieldName="Title">Labor Day</pnp:DataValue>
<pnp:DataValue FieldName="Category">Corporate Holidays</pnp:DataValue>
<pnp:DataValue FieldName="Location">United States</pnp:DataValue>
<pnp:DataValue FieldName="EventDate">9/6/2020 5:00 PM</pnp:DataValue>
<pnp:DataValue FieldName="EndDate">9/7/2020 4:59 PM</pnp:DataValue>
<pnp:DataValue FieldName="EventDate">6/9/2024 5:00 PM</pnp:DataValue>
<pnp:DataValue FieldName="EndDate">7/9/2024 4:59 PM</pnp:DataValue>
<pnp:DataValue FieldName="fAllDayEvent">Yes</pnp:DataValue>
</pnp:DataRow>
<pnp:DataRow>
<pnp:DataValue FieldName="Title">Thanksgiving Day and Day after Thanksgiving</pnp:DataValue>
<pnp:DataValue FieldName="Category">Corporate Holidays</pnp:DataValue>
<pnp:DataValue FieldName="Location">United States</pnp:DataValue>
<pnp:DataValue FieldName="EventDate">11/25/2020 4:00 PM</pnp:DataValue>
<pnp:DataValue FieldName="EndDate">11/27/2020 3:59 PM</pnp:DataValue>
<pnp:DataValue FieldName="EventDate">25/11/2024 4:00 PM</pnp:DataValue>
<pnp:DataValue FieldName="EndDate">27/11/2024 3:59 PM</pnp:DataValue>
<pnp:DataValue FieldName="fAllDayEvent">Yes</pnp:DataValue>
</pnp:DataRow>
<pnp:DataRow>
<pnp:DataValue FieldName="Title">Christmas Eve and Christmas Day</pnp:DataValue>
<pnp:DataValue FieldName="Category">Corporate Holidays</pnp:DataValue>
<pnp:DataValue FieldName="Location">United States</pnp:DataValue>
<pnp:DataValue FieldName="EventDate">12/23/2020 4:00 PM</pnp:DataValue>
<pnp:DataValue FieldName="EndDate">12/25/2020 3:59 PM</pnp:DataValue>
<pnp:DataValue FieldName="EventDate">23/12/2024 4:00 PM</pnp:DataValue>
<pnp:DataValue FieldName="EndDate">25/12/2024 3:59 PM</pnp:DataValue>
<pnp:DataValue FieldName="fAllDayEvent">Yes</pnp:DataValue>
</pnp:DataRow>
<pnp:DataRow>
<pnp:DataValue FieldName="Title">Australia Day</pnp:DataValue>
<pnp:DataValue FieldName="Category">Corporate Holidays</pnp:DataValue>
<pnp:DataValue FieldName="Location">Australia</pnp:DataValue>
<pnp:DataValue FieldName="EventDate">26/1/2025 12:00 AM</pnp:DataValue>
<pnp:DataValue FieldName="EndDate">26/1/2025 11:59 PM</pnp:DataValue>
<pnp:DataValue FieldName="fAllDayEvent">Yes</pnp:DataValue>
</pnp:DataRow>
<pnp:DataRow>
<pnp:DataValue FieldName="Title">Waitangi Day</pnp:DataValue>
<pnp:DataValue FieldName="Category">Corporate Holidays</pnp:DataValue>
<pnp:DataValue FieldName="Location">New Zealand</pnp:DataValue>
<pnp:DataValue FieldName="EventDate">6/2/2025 12:00 AM</pnp:DataValue>
<pnp:DataValue FieldName="EndDate">6/2/2025 11:59 PM</pnp:DataValue>
<pnp:DataValue FieldName="fAllDayEvent">Yes</pnp:DataValue>
</pnp:DataRow>
<pnp:DataRow>
<pnp:DataValue FieldName="Title">ANZAC Day</pnp:DataValue>
<pnp:DataValue FieldName="Category">Corporate Holidays</pnp:DataValue>
<pnp:DataValue FieldName="Location">Australia, New Zealand</pnp:DataValue>
<pnp:DataValue FieldName="EventDate">25/4/2025 12:00 AM</pnp:DataValue>
<pnp:DataValue FieldName="EndDate">25/4/2025 11:59 PM</pnp:DataValue>
<pnp:DataValue FieldName="fAllDayEvent">Yes</pnp:DataValue>
</pnp:DataRow>
<pnp:DataRow>
<pnp:DataValue FieldName="Title">Queen's Birthday (Australia)</pnp:DataValue>
<pnp:DataValue FieldName="Category">Corporate Holidays</pnp:DataValue>
<pnp:DataValue FieldName="Location">Australia</pnp:DataValue>
<pnp:DataValue FieldName="EventDate">9/6/2025 12:00 AM</pnp:DataValue>
<pnp:DataValue FieldName="EndDate">9/6/2025 11:59 PM</pnp:DataValue>
<pnp:DataValue FieldName="fAllDayEvent">Yes</pnp:DataValue>
</pnp:DataRow>
<pnp:DataRow>
<pnp:DataValue FieldName="Title">Labour Day (New Zealand)</pnp:DataValue>
<pnp:DataValue FieldName="Category">Corporate Holidays</pnp:DataValue>
<pnp:DataValue FieldName="Location">New Zealand</pnp:DataValue>
<pnp:DataValue FieldName="EventDate">27/10/2025 12:00 AM</pnp:DataValue>
<pnp:DataValue FieldName="EndDate">27/10/2025 11:59 PM</pnp:DataValue>
<pnp:DataValue FieldName="fAllDayEvent">Yes</pnp:DataValue>
</pnp:DataRow>
</pnp:DataRows>
<pnp:FieldDefaults>
<pnp:FieldDefault FieldName="Category" />
Expand Down Expand Up @@ -543,8 +583,8 @@
</View>
</pnp:Views>
<pnp:Fields>
<Field Name="rlsy" DisplayName="2019 Dates" Type="DateTime" ID="{d73f0576-ddd5-4c3e-b2ca-21ff2facc0ba}" SourceID="{{listid:Global Country Holidays}}" StaticName="rlsy" ColName="datetime1" RowOrdinal="0" Version="2" />
<Field Name="bxkv" DisplayName="2020 Dates" Type="DateTime" ID="{776564f7-303e-49e6-8189-dfff491d71b3}" SourceID="{{listid:Global Country Holidays}}" StaticName="bxkv" ColName="datetime2" RowOrdinal="0" Version="2" />
<Field Name="rlsy" DisplayName="2024 Dates" Type="DateTime" ID="{d73f0576-ddd5-4c3e-b2ca-21ff2facc0ba}" SourceID="{{listid:Global Country Holidays}}" StaticName="rlsy" ColName="datetime1" RowOrdinal="0" Version="2" />
<Field Name="bxkv" DisplayName="2024 Dates" Type="DateTime" ID="{776564f7-303e-49e6-8189-dfff491d71b3}" SourceID="{{listid:Global Country Holidays}}" StaticName="bxkv" ColName="datetime2" RowOrdinal="0" Version="2" />
<Field Type="Choice" DisplayName="Location" Required="TRUE" EnforceUniqueValues="FALSE" Indexed="FALSE" Format="Dropdown" FillInChoice="FALSE" ID="{cf2ef14e-61e6-4c62-8af1-5f6f9cc05016}" SourceID="{{listid:Global Country Holidays}}" StaticName="Location" Name="Location" ColName="nvarchar4" RowOrdinal="0">
<Default>United States</Default>
<CHOICES>
Expand All @@ -553,33 +593,71 @@
<CHOICE>United States</CHOICE>
<CHOICE>United Kingdom</CHOICE>
<CHOICE>Singapore</CHOICE>
<CHOICE>Australia</CHOICE>
<CHOICE>New Zealand</CHOICE>
</CHOICES>
</Field>
</pnp:Fields>
<pnp:DataRows KeyColumn="Title" UpdateBehavior="Overwrite">
<pnp:DataRow>
<pnp:DataValue FieldName="Location">United States</pnp:DataValue>
<pnp:DataValue FieldName="Title">New Year's Eve</pnp:DataValue>
<pnp:DataValue FieldName="rlsy">1/1/2019 12:00 AM</pnp:DataValue>
<pnp:DataValue FieldName="bxkv">1/1/2020 12:00 AM</pnp:DataValue>
<pnp:DataValue FieldName="rlsy">1/1/2024 12:00 AM</pnp:DataValue>
<pnp:DataValue FieldName="bxkv">1/1/2025 12:00 AM</pnp:DataValue>
</pnp:DataRow>
<pnp:DataRow>
<pnp:DataValue FieldName="Location">United States</pnp:DataValue>
<pnp:DataValue FieldName="Title">Martin Luther King Day</pnp:DataValue>
<pnp:DataValue FieldName="rlsy">1/21/2019 12:00 AM</pnp:DataValue>
<pnp:DataValue FieldName="bxkv">1/20/2020 12:00 AM</pnp:DataValue>
<pnp:DataValue FieldName="rlsy">21/1/2024 12:00 AM</pnp:DataValue>
<pnp:DataValue FieldName="bxkv">20/1/2025 12:00 AM</pnp:DataValue>
</pnp:DataRow>
<pnp:DataRow>
<pnp:DataValue FieldName="Location">United States</pnp:DataValue>
<pnp:DataValue FieldName="Title">President's Day</pnp:DataValue>
<pnp:DataValue FieldName="rlsy">2/18/2019 12:00 AM</pnp:DataValue>
<pnp:DataValue FieldName="bxkv">2/17/2020 12:00 AM</pnp:DataValue>
<pnp:DataValue FieldName="rlsy">18/2/2024 12:00 AM</pnp:DataValue>
<pnp:DataValue FieldName="bxkv">17/2/2025 12:00 AM</pnp:DataValue>
</pnp:DataRow>
<pnp:DataRow>
<pnp:DataValue FieldName="Location">United States</pnp:DataValue>
<pnp:DataValue FieldName="Title">Memorial Day</pnp:DataValue>
<pnp:DataValue FieldName="rlsy">5/27/2019 12:00 AM</pnp:DataValue>
<pnp:DataValue FieldName="bxkv">5/25/2020 12:00 AM</pnp:DataValue>
<pnp:DataValue FieldName="rlsy">27/5/2024 12:00 AM</pnp:DataValue>
<pnp:DataValue FieldName="bxkv">27/5/2025 12:00 AM</pnp:DataValue>
</pnp:DataRow>
<pnp:DataRow>
<pnp:DataValue FieldName="Location">Australia</pnp:DataValue>
<pnp:DataValue FieldName="Title">New Year's Day</pnp:DataValue>
<pnp:DataValue FieldName="rlsy">1/1/2024 12:00 AM</pnp:DataValue>
<pnp:DataValue FieldName="bxkv">1/1/2025 12:00 AM</pnp:DataValue>
</pnp:DataRow>
<pnp:DataRow>
<pnp:DataValue FieldName="Location">Australia</pnp:DataValue>
<pnp:DataValue FieldName="Title">Australia Day</pnp:DataValue>
<pnp:DataValue FieldName="rlsy">1/26/2024 12:00 AM</pnp:DataValue>
<pnp:DataValue FieldName="bxkv">1/26/2025 12:00 AM</pnp:DataValue>
</pnp:DataRow>
<pnp:DataRow>
<pnp:DataValue FieldName="Location">Australia</pnp:DataValue>
<pnp:DataValue FieldName="Title">ANZAC Day</pnp:DataValue>
<pnp:DataValue FieldName="rlsy">4/25/2024 12:00 AM</pnp:DataValue>
<pnp:DataValue FieldName="bxkv">4/25/2025 12:00 AM</pnp:DataValue>
</pnp:DataRow>
<pnp:DataRow>
<pnp:DataValue FieldName="Location">New Zealand</pnp:DataValue>
<pnp:DataValue FieldName="Title">New Year's Day</pnp:DataValue>
<pnp:DataValue FieldName="rlsy">1/1/2024 12:00 AM</pnp:DataValue>
<pnp:DataValue FieldName="bxkv">1/1/2025 12:00 AM</pnp:DataValue>
</pnp:DataRow>
<pnp:DataRow>
<pnp:DataValue FieldName="Location">New Zealand</pnp:DataValue>
<pnp:DataValue FieldName="Title">Waitangi Day</pnp:DataValue>
<pnp:DataValue FieldName="rlsy">2/6/2024 12:00 AM</pnp:DataValue>
<pnp:DataValue FieldName="bxkv">2/6/2025 12:00 AM</pnp:DataValue>
</pnp:DataRow>
<pnp:DataRow>
<pnp:DataValue FieldName="Location">New Zealand</pnp:DataValue>
<pnp:DataValue FieldName="Title">ANZAC Day</pnp:DataValue>
<pnp:DataValue FieldName="rlsy">4/25/2024 12:00 AM</pnp:DataValue>
<pnp:DataValue FieldName="bxkv">4/25/2025 12:00 AM</pnp:DataValue>
</pnp:DataRow>
</pnp:DataRows>
<pnp:Webhooks>
Expand Down