Add scheduling calendar integration and WebUI
This commit is contained in:
@@ -96,6 +96,10 @@ class SchedulingCandidateSlotResponse(BaseModel):
|
||||
timezone: str
|
||||
location: str | None = None
|
||||
position: int
|
||||
freebusy_checked_at: datetime | None = None
|
||||
freebusy_status: str | None = None
|
||||
freebusy_conflicts: list[dict[str, Any]] = Field(default_factory=list)
|
||||
tentative_hold_event_id: str | None = None
|
||||
metadata: dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
@@ -163,3 +167,38 @@ class SchedulingDecisionRequest(BaseModel):
|
||||
class SchedulingSummaryResponse(BaseModel):
|
||||
request: SchedulingRequestResponse
|
||||
poll_summary: PollResultSummaryResponse
|
||||
|
||||
|
||||
class SchedulingCalendarActionResponse(BaseModel):
|
||||
request: SchedulingRequestResponse
|
||||
created_event_ids: list[str] = Field(default_factory=list)
|
||||
updated_slot_ids: list[str] = Field(default_factory=list)
|
||||
warnings: list[str] = Field(default_factory=list)
|
||||
|
||||
|
||||
class SchedulingNotificationResponse(BaseModel):
|
||||
id: str
|
||||
request_id: str
|
||||
participant_id: str | None = None
|
||||
event_kind: str
|
||||
channel: str
|
||||
recipient: str | None = None
|
||||
status: str
|
||||
payload: dict[str, Any] = Field(default_factory=dict)
|
||||
error: str | None = None
|
||||
sent_at: datetime | None = None
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
metadata: dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class SchedulingNotificationListResponse(BaseModel):
|
||||
notifications: list[SchedulingNotificationResponse] = Field(default_factory=list)
|
||||
|
||||
|
||||
class SchedulingNotificationCreateRequest(BaseModel):
|
||||
model_config = ConfigDict(extra="forbid")
|
||||
|
||||
event_kind: Literal["invitation", "reminder", "decision", "cancellation"]
|
||||
channel: str = Field(default="mail", max_length=40)
|
||||
metadata: dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
Reference in New Issue
Block a user