Add-PnPListItem

Tip

We encourage you to make improvements to this documentation. Please navigate to https://github.com/pnp/powershell/blob/dev/documentation/Add-PnPListItem.md to change this file.

Adds an item to the list and sets the creation time to the current date and time. The author is set to the current authenticated user executing the cmdlet. In order to set the author to a different user, please refer to Set-PnPListItem.

Syntax

Add-PnPListItem
   [-List] <ListPipeBind>
   [-ContentType <ContentTypePipeBind>]
   [-Values <Hashtable>]
   [-Folder <String>]
   [-Label <String>]
   [-Connection <PnPConnection>]
   [<CommonParameters>]
Add-PnPListItem
   [-List] <ListPipeBind>
   -Batch <PnPBatch>
   [-ContentType <ContentTypePipeBind>]
   [-Values <Hashtable>]
   [-Folder <String>]
   [-Connection <PnPConnection>]
   [<CommonParameters>]

Examples

EXAMPLE 1

Add-PnPListItem -List "Demo List" -Values @{"Title" = "Test Title"; "Category"="Test Category"}

Adds a new list item to the "Demo List", and sets both the Title and Category fields with the specified values. Notice, use the internal names of fields.

EXAMPLE 2

Add-PnPListItem -List "Demo List" -ContentType "Company" -Values @{"Title" = "Test Title"; "Category"="Test Category"}

Adds a new list item to the "Demo List", sets the content type to "Company" and sets both the Title and Category fields with the specified values. Notice, use the internal names of fields.

EXAMPLE 3

Add-PnPListItem -List "Demo List" -Values @{"MultiUserField"="user1@domain.com","user2@domain.com"}

Adds a new list item to the "Demo List" and sets the user field called MultiUserField to 2 users. Separate multiple users with a comma.

EXAMPLE 4

Add-PnPListItem -List "Demo List" -Values @{"Title"="Sales Report"} -Folder "projects/europe"

Adds a new list item to the "Demo List". It will add the list item to the europe folder which is located in the projects folder. Folders will be created if needed.

EXAMPLE 5

Add-PnPListItem -List "Demo List" -Values @{"Title"="Sales Report"} -Label "Public"

Adds a new list item to the "Demo List". Sets the retention label to "Public" if it exists on the site.

EXAMPLE 6

$batch = New-PnPBatch
for($i=0;$i -lt 10;$i++)
{
    Add-PnPListItem -List "Demo List" -Values @{"Title"="Report $i"} -Batch $batch
}
Invoke-PnPBatch -Batch $batch

This creates 10 list items by using a batched approach.

Parameters

-Batch

Optional batch object used to add items in a batched manner. See examples on how to use this.

Type:PnPBatch
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Connection

Optional connection to be used by the cmdlet. Retrieve the value for this parameter by either specifying -ReturnConnection on Connect-PnPOnline or by executing Get-PnPConnection.

Type:PnPConnection
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-ContentType

Specify either the name, ID or an actual content type.

Type:ContentTypePipeBind
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Folder

The list relative URL of a folder. E.g. "MyFolder" for a folder located in the root of the list, or "MyFolder/SubFolder" for a folder located in the MyFolder folder which is located in the root of the list.

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Label

The name of the retention label.

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-List

The ID, Title or Url of the list.

Type:ListPipeBind
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-Values

Use the internal names of the fields when specifying field names.

Single line of text: -Values @{"Title" = "Title New"}

Multiple lines of text: -Values @{"MultiText" = "New text\n\nMore text"}

Rich text: -Values @{"MultiText" = "<strong>New</strong> text"}

Choice: -Values @{"Choice" = "Choice 1"} Choice: -Values @{"Choice" = "Choice 1;#Choice 2"}

Number: -Values @{"Number" = "10"}

Currency: -Values @{"Currency" = "10"}

Note

For numeric and currency fields, when using -Batch, provide the value using the comma and dots matching the regional setting of the site you're adding the listitem to. When not using batch, you must always provide the value in the American notation, so dot for decimals and comma for thousands separators.

Date and Time: -Values @{"DateAndTime" = "03/13/2015 14:16"}

Lookup (id of lookup value): -Values @{"Lookup" = "2"}

Multi value lookup (id of lookup values as array 1): -Values @{"MultiLookupField" = "1","2"}

Multi value lookup (id of lookup values as array 2): -Values @{"MultiLookupField" = 1,2}

Multi value lookup (id of lookup values as string): -Values @{"MultiLookupField" = "1,2"}

Yes/No: -Values @{"YesNo" = $false}

Person/Group (id of user/group in Site User Info List or email of the user, separate multiple values with a comma): -Values @{"Person" = "user1@domain.com","21"}

Managed Metadata (single value with path to term): -Values @{"MetadataField" = "CORPORATE|DEPARTMENTS|FINANCE"}

Managed Metadata (single value with id of term): -Values @{"MetadataField" = "fe40a95b-2144-4fa2-b82a-0b3d0299d818"} with Id of term

Managed Metadata (multiple values with paths to terms): -Values @{"MetadataField" = "CORPORATE|DEPARTMENTS|FINANCE","CORPORATE|DEPARTMENTS|HR"}

Managed Metadata (multiple values with ids of terms): -Values @{"MetadataField" = "fe40a95b-2144-4fa2-b82a-0b3d0299d818","52d88107-c2a8-4bf0-adfa-04bc2305b593"}

Hyperlink or Picture: -Values @{"Hyperlink" = "https://github.com/OfficeDev/, OfficePnp"}

Type:Hashtable
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False