Calendar Event Management

Overview #

This allows developers to create, update, and delete calendar events for providers in Canvas. Events can be one-time or recurring, with support for daily and weekly recurrence patterns.

from canvas_sdk.effects.calendar import Event, EventRecurrence, DaysOfWeek
from datetime import datetime

# Create a one-time event
Event(
    calendar_id="calendar-uuid",
    title="Patient Consultation",
    starts_at=datetime(2025, 1, 15, 9, 0),
    ends_at=datetime(2025, 1, 15, 10, 0)
).create()

# Create a recurring event
Event(
    calendar_id="calendar-uuid",
    title="Weekly Team Meeting",
    starts_at=datetime(2025, 1, 15, 14, 0),
    ends_at=datetime(2025, 1, 15, 15, 0),
    recurrence_frequency=EventRecurrence.Weekly,
    recurrence_interval=1,
    recurrence_days=[DaysOfWeek.Monday, DaysOfWeek.Wednesday],
    recurrence_ends_at=datetime(2025, 12, 31, 23, 59),
    allowed_note_types=["100", "101"]
).create()

# Update an existing event
Event(
    event_id="event-uuid",
    title="Updated Meeting Title",
    starts_at=datetime(2025, 1, 15, 15, 0),
    ends_at=datetime(2025, 1, 15, 16, 0)
).update()

# Delete an event
Event(event_id="event-uuid").delete()

Structure #

EventRecurrence #

An enumeration of recurrence frequency options:

ValueDescription
DailyEvent recurs daily
WeeklyEvent recurs weekly

DaysOfWeek #

An enumeration of days of the week for recurring events:

ValueDescription
MOMonday
TUTuesday
WEWednesday
THThursday
FRFriday
SASaturday
SUSunday

Event #

An Event effect consists of the following properties:

Attributes #

AttributeTypeDescription
calendar_idstr \| UUID \| NoneThe calendar UUID where the event will be created.
event_idstr \| UUID \| NoneThe event UUID to update.
titlestr \| NoneThe title of the event.
starts_atdatetime \| NoneThe start date and time of the event.
ends_atdatetime \| NoneThe end date and time of the event.
recurrence_frequencyEventRecurrence \| NoneThe frequency of recurrence - either EventRecurrence.Daily or EventRecurrence.Weekly.
recurrence_intervalint \| NoneThe interval between recurrences (e.g., 1 for every week, 2 for every other week).
recurrence_dayslist[DaysOfWeek] \| NoneList of days when the event should recur (used with weekly recurrence).
recurrence_ends_atdatetime \| NoneThe date and time when the recurrence pattern ends.
allowed_note_typeslist[str] \| NoneList of note types that are allowed for this event.