---
name: "calendarserver_manage_principals"
section: "8"
platform: "linux"
package: "calendarserver"
version: "9.2+dfsg-1"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/calendarserver_manage_principals"
---

# calendarserver\_manage\_principals(8)

Calendar Server principal management utility

## NAME

**calendarserver\_manage\_principals** – Calendar Server principal management utility

## SYNOPSIS

**calendarserver\_manage\_principals** \[**--config** *file*\] \[**--verbose**\] \[**--read-property** *property*\] \[**--list-principal-types**\] \[**--list-principals** *type*\] \[**--search** *search-string*\] \[**--list-read-proxies**\] \[**--list-write-proxies**\] \[**--list-proxies**\] \[**--add-read-proxy** *principal*\] \[**--add-write-proxy** *principal*\] \[**--remove-proxy** *principal*\] \[**--set-auto-schedule-mode** *none\|accept-always\|decline-always\|accept-if-free\|decline-if-busy\|automatic*\] \[**--get-auto-schedule-mode**\] \[**--set-auto-accept-group** *group*\] \[**--get-auto-accept-group**\] \[**--add** *locations\|resources* *full-name* *\[record-name\]* *\[GUID\]*\] \[**--remove**\] *principal* \[principal ...\]

## DESCRIPTION

**calendarserver\_manage\_principals** is a tool for accessing and manipulating information regarding principals on a Calendar Server.  Principals represent any form of actor that can access the server, such as users, groups, locations and resources.

**calendarserver\_manage\_principals** should be run as a user with the same privileges as the Calendar Server itself, as it needs to read and write data that belongs to the server. **calendarserver\_manage\_principals** takes a list of principals as arguments and then performs the requested actions on each of the given principals.

A principal may be specified as the principal's GUID. Alternatively, it may be specified in the form *recordType:shortName*, where *recordType* is a directory record type (eg. *users*, *groups*, *locations*, *resources*) and *shortName* is the principal's short name.

Actions to perform are specified via the options below.  Multiple actions may be given, and will be performed in the order given on each principal specified.

## OPTIONS

- **-h,** **--help**

  Displays usage information

- **-v,** **--verbose**

  Displays debugging information

- **-f,** **--config** *FILE*

  Use the Calendar Server configuration specified in the given file. Defaults to /etc/caldavd/caldavd.plist.

## ACTIONS

- **--read-property** *property*

  Read the given WebDAV property on the principal resource. *property* must be a fully qualified XML element name in the form *{namespace}name*, for example: *{DAV:}displayname*.

- **--list-principal-types**

  List all of the known principals types.

- **--list-principals** *type*

  List all of the principals of the given type.

- **--search** *search-string*

  Search for principals whose name or email address contains the search string.

- **--list-read-proxies**

  List the read proxies.

- **--list-write-proxies**

  List the write proxies.

- **--list-proxies**

  List all proxies.

- **--add-read-proxy** *principal*

  Add the given *principal* as a read proxy.

- **--add-write-proxy** *principal*

  Add the given *principal* as a write proxy.

- **--remove-proxy** *principal*

  Remove the given *principal* as a proxy.

- **--set-auto-schedule** *true\|false*

  Enable or disable automatic scheduling.

- **--get-auto-schedule**

  Get the automatic scheduling state.

- **--set-auto-accept-group** *group*

  The principal will auto-accept any invites from any member of the group (as long as there are no conflicts).

- **--get-auto-accept-group**

  Get the currently assigned auto-accept group for the principal.

- **--add** *locations\|resources* *full-name* *\[record-name\]* *\[GUID\]*

  Add a new location or resource. Record name and GUID are optional.  If GUID is not specified, one will be generated.  If record name is not specified, the record name will be set to the GUID.

## EXAMPLES

Add Alice and Bob as read proxies for Joe and display the list of Joe's proxies:

```
calendarserver_manage_principals --add-read-proxy users:alice --add-read-proxy users:bob --list-proxies users:joe
```

Add a group of room admins as write proxy for a couple of rooms:

```
calendarserver_manage_principals --add-write-proxy groups:room-admins locations:bigroom locations:littleroom
```

Turn on auto-scheduling for a resource, and confirm the setting:

```
calendarserver_manage_principals --set-auto-schedule true --get-auto-schedule resources:projector
```

Search for all principals named Joe:

```
calendarserver_manage_principals --search joe
```

Add a location:

```
calendarserver_manage_principals --add locations 'Example Office' office1
```

Add a resource:

```
calendarserver_manage_principals --add resources 'Example Projector' proj1
```

List all resource:

```
calendarserver_manage_principals --list-principals resources
```

Remove a resource:

```
calendarserver_manage_principals --remove resources:proj1
```

## FILES

- /etc/caldavd/caldavd.plist

  The Calendar Server configuration file.

## SEE ALSO

[caldavd(8)](/caldavd/8.md)
