7
votes

Is it possible to share with somebody(add or delete user) ,specific google calendar using google api?

I have more than 50 calendars, and for each there is different person that update data, I would like to make "update window", eg. they can update events only in mondays.

2

2 Answers

4
votes

This is an old question but here is how to share calendar with a user if somebody wants to use it: This is is done by ACL Here is an example in php:

public function sharecalendarwithuser($calendar_id, $user_email, $role)
{
    $rule = new Google_Service_Calendar_AclRule();
    $scope = new Google_Service_Calendar_AclRuleScope();
    /*
    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.
    */
    $scope->setType("user");
    $scope->setValue($user_email);
    $rule->setScope($scope);
    /*
    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.
    */
    $rule->setRole($role);
    $createdRule = $service->acl->insert($calendar_id, $rule);
}

Hope this is helping :)

2
votes

You could that by going through the API Docs for ACL - access control list https://developers.google.com/calendar/v3/reference/acl