---
title: "POST /calendars/{calendarId}/acl"
method: POST
path: "/calendars/{calendarId}/acl"
tags: ["acl"]
---

# POST /calendars/{calendarId}/acl

`POST /calendars/{calendarId}/acl`

Creates an access control rule.

## Path parameters

- `calendarId` string, required

## Query parameters

- `sendNotifications` boolean

## Request body

- AclRule — Defines access control rules for a calendar
  - `role` string — The role assigned to the scope. Possible values are: - "none" - Provides no access. - "freeBusyReader" - Provides read access to free/busy information. - "reader" - Provides read access to the calendar. Private events will appear to users with reader access, but event details will be hidden. - "writer" - Provides read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible. - "owner" - Provides ownership of the calendar. This role has all of the permissions of the writer role with the additional ability to see and manipulate ACLs
  - `kind` string — Type of the resource ("calendar#aclRule")
  - `scope` AclRuleScope — The extent to which calendar access is granted by this ACL rule
    - `type` string — The type of the scope. Possible values are: - "default" - The public scope. This is the default value. - "user" - Limits the scope to a single user. - "group" - Limits the scope to a group. - "domain" - Limits the scope to a domain. Note: The permissions granted to the "default", or public, scope apply to any user, authenticated or not
    - `value` string — The email address of a user or group, or the name of a domain, depending on the scope type. Omitted for type "default"
  - `etag` string — ETag of the resource
  - `id` string — Identifier of the Access Control List (ACL) rule. See Sharing calendars

## Response `200`

A `gcalendar:AclRule` if successful, otherwise an error

- AclRule — Defines access control rules for a calendar
  - `role` string — The role assigned to the scope. Possible values are: - "none" - Provides no access. - "freeBusyReader" - Provides read access to free/busy information. - "reader" - Provides read access to the calendar. Private events will appear to users with reader access, but event details will be hidden. - "writer" - Provides read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible. - "owner" - Provides ownership of the calendar. This role has all of the permissions of the writer role with the additional ability to see and manipulate ACLs
  - `kind` string — Type of the resource ("calendar#aclRule")
  - `scope` AclRuleScope — The extent to which calendar access is granted by this ACL rule
    - `type` string — The type of the scope. Possible values are: - "default" - The public scope. This is the default value. - "user" - Limits the scope to a single user. - "group" - Limits the scope to a group. - "domain" - Limits the scope to a domain. Note: The permissions granted to the "default", or public, scope apply to any user, authenticated or not
    - `value` string — The email address of a user or group, or the name of a domain, depending on the scope type. Omitted for type "default"
  - `etag` string — ETag of the resource
  - `id` string — Identifier of the Access Control List (ACL) rule. See Sharing calendars

---

[API](https://skmtc.net/ballerina-platform/apis/calendar-api.md) · [All operations](https://skmtc.net/ballerina-platform/apis/calendar-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ballerina-platform/calendar-api/revisions/1f87c6519494/schema)
