lock_calendar Method

Obtain a lock for a specified calendar resource.

Syntax

def lock_calendar(resource_uri: str) -> None: ...

Remarks

This method will request a new lock to be placed on ResourceURI in the user's name so that only the user can operate on it. The method is linked to a number of properties that it uses to generate the lock request:

lock_ownerThe principle that will own the lock.
lock_scopeThe scope of the lock. The class only currently supports locks of scope "exclusive" and "shared".
lock_timeoutThe amount of time that the lock is allowed to exist before ResourceURI is automatically unlocked by the server.
lock_tokensThe lock itself. If the user sets this before making the request, the timeout on the existing lock will be refreshed (reset to 0). Otherwise, a new set of lock tokens will be returned.
lock_typeThe type of lock. The class only currently supports of type "write".

After a successful call to the lock_calendar method the class will receive the new lock values, which it will parse and store in the lock properties.

This method is associated with the depth property. If depth is set to "0", the class will lock only ResourceURI and its properties. If depth is set to "infinity", the class will lock ResourceURI and its entire subtree.

If move_calendar_event or copy_calendar_event are used to place a resource or collection in a location under a resource locked with "infinity", the new resource or collection will be added to the lock. Any lock on a collection will prevent non-lock owners from adding resources to that collection.

Note that while the Yahoo CalDAV server does accept lock_calendar and un_lock_calendar requests, the server does not respect resource locks (either on events or on the entire calendar). The Google CalDAV sever does not support either of these requests, and will respond with an HTTP protocol error: 405 Method Not Allowed. Also, neither Yahoo nor Google CalDAV servers support copying or moving calendar resources.

Copyright (c) 2022 /n software inc. - All rights reserved.
IPWorks 2020 Python Edition - Version 20.0 [Build 8307]