Click here to see your recently viewed pages and most viewed pages.
Hide
Google Calendar API

Acl: update

Requires authorization

Updates an access control rule. Try it now or see an example.

Request

HTTP request

PUT https://www.googleapis.com/calendar/v3/calendars/calendarId/acl/ruleId

Parameters

Parameter name Value Description
Path parameters
calendarId string Calendar identifier.
ruleId string ACL rule identifier.

Authorization

This request requires authorization with the following scope (read more about authentication and authorization).

Scope
https://www.googleapis.com/auth/calendar

Request body

In the request body, supply an Acl resource with the following properties:

Property name Value Description Notes
Optional Properties
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.
writable

Response

If successful, this method returns an Acl resource in the response body.

Examples

Note: The code examples available for this method do not represent all supported programming languages (see the client libraries page for a list of supported languages).

Java

Uses the Java client library.

import com.google.api.services.calendar.Calendar;
import com.google.api.services.calendar.model.AclRule;

// ...

// Initialize Calendar service with valid OAuth credentials
Calendar service = new Calendar.Builder(httpTransport, jsonFactory, credentials)
    .setApplicationName("applicationName").build();

// Retrieve the access rule from the API
AclRule rule = service.acl().get('primary', "ruleId").execute();

// Make a change
rule.setRole("newRole");

// Update the access rule
AclRule updatedRule = service.acl().update('primary', rule.getId(), rule).execute();
System.out.println(updatedRule.getEtag());

Python

Uses the Python client library.

rule = service.acl().get(calendarId='primary', ruleId='ruleId').execute()
rule['role'] = 'newRole'

updated_rule = service.acl().update(calendarId='primary', ruleId=rule['id'], body=rule).execute()
print updated_rule['etag']

PHP

Uses the PHP client library.

$rule = $service->acl->get('primary', 'ruleId');
$rule->setRole('newRole');

$updatedRule = $service->acl->update('primary', $rule->getId(), $rule);
echo $updatedRule->getEtag();

Ruby

Uses the Ruby client library.

result = client.execute(:api_method => service.acl.get,
                        :parameters => {'calendarId' => 'primary', 'ruleId' => 'ruleId'})
rule = result.data
rule.role = 'newRole'
result = client.execute(:api_method => service.acl.update,
                          :parameters => {'calendarId' => 'primary', 'ruleId' => rule.id},
                          :body_object => rule,
                          :headers => {'Content-Type' => 'application/json'})
print result.data.etag

Try it!

Use the APIs Explorer below to call this method on live data and see the response.