Access Control List

Access control rule is represented by the class AccessControlRule.

gcsa allows you to add a new access control rule, retrieve, update and delete existing rules.

To do so, create a GoogleCalendar instance (see Getting started to get your credentials):

from gcsa.google_calendar import GoogleCalendar

gc = GoogleCalendar()

List rules

for rule in gc.get_acl_rules():
    print(rule)

Get rule by id

rule = gc.get_acl_rule(rule_id='<acl_rule_id>')
print(rule)

Add access rule

To add a new ACL rule, create an AccessControlRule object with specified role (see more in ACLRole), scope type (see more in ACLScopeType), and scope value.

from gcsa.acl import AccessControlRule, ACLRole, ACLScopeType

rule = AccessControlRule(
    role=ACLRole.READER,
    scope_type=ACLScopeType.USER,
    scope_value='friend@gmail.com',
)

rule = gc.add_acl_rule(rule)
print(rule.id)

Update access rule

rule = gc.get_acl_rule('<acl_rule_id>')
rule.role = ACLRole.WRITER
rule = gc.update_acl_rule(rule)

Delete access rule

rule = gc.get_acl_rule('<acl_rule_id>')
gc.delete_acl_rule(rule)