✨(freebusy) add availability management (#35)
Adds organization-level default calendar sharing controls, "Find a Time" scheduling UI with a Free/Busy timeline showing attendee availability and conflicts, Working hours editor in Settings to manage and save availability, Autocomplete attendee search with debounced, partial name/email matching and timezone display. Fixes #26. Fixes #25. Fixes #24.
This commit is contained in:
@@ -58,11 +58,15 @@ class CalDAVHTTPClient:
|
||||
"""
|
||||
if not user.email:
|
||||
raise ValueError("User has no email address")
|
||||
return {
|
||||
headers = {
|
||||
"X-Api-Key": cls.get_api_key(),
|
||||
"X-Forwarded-User": user.email,
|
||||
"X-CalDAV-Organization": str(user.organization_id),
|
||||
}
|
||||
org = getattr(user, "organization", None)
|
||||
if org and hasattr(org, "effective_sharing_level"):
|
||||
headers["X-CalDAV-Sharing-Level"] = org.effective_sharing_level
|
||||
return headers
|
||||
|
||||
def build_url(self, path: str, query: str = "") -> str:
|
||||
"""Build a full CalDAV URL from a resource path.
|
||||
|
||||
Reference in New Issue
Block a user