Upgrading icalendar 6 to 7
Review needed6.3.2 → 7.3.0Security1
SecurityHigh · CVSS 7.5icalendar has Algorithmic Complexity in EqualityGHSA-cv84-9p8j-fj68 · CVE-2026-55099 ↗
Review neededUpgrade verdict
A security fix.
In plain terms
- icalendar has Algorithmic Complexity in Equality
Must act 1 item needs code or config changes
Python requirement changed in 7.0.0: >=3.8 → >=3.10.
What you must change
Security1
icalendar has Algorithmic Complexity in Equality
High · CVSS 7.5API changes
Generated by DepDelta from published Python source. Not mixed with prose notes.
- added:
export AdrFields - added:
export Availability - added:
export Available - added:
export BUSYTYPE - added:
export BrokenCalendarProperty - added:
export CLASS - added:
export Conference - added:
export GloballyUniqueTZIDGuessed - added:
export ICalParsingError - added:
export Image - added:
export JCalParsingError - added:
export LazyCalendar - added:
export NFields - added:
export STATUS - added:
export TRANSP - added:
export VALUE - added:
export VPROPERTY - added:
export is_utc - added:
export vAdr - added:
export vBroken - added:
export vCategory - added:
export vN - added:
export vOrg - added:
export vUid - added:
export vUnknown - added:
export vXmlReference
- removed:
property AlarmTime.acknowledged -> Optional[datetime] - removed:
property AlarmTime.parent -> Optional[Parent] - changed:
constructor AlarmTime(alarm: Alarm, trigger: datetime, acknowledged_until: Optional[datetime]=…, snoozed_until: Optional[datetime]=…, parent: Optional[Parent]=…) → constructor AlarmTime(alarm: Alarm, trigger: datetime, acknowledged_until: datetime | None=…, snoozed_until: datetime | None=…, parent: Parent | None=…) -> None - changed:
constructor Alarms(component: Optional[Alarm | Event | Todo]=…) → constructor Alarms(component: Alarm | Event | Todo | None=…) -> None - changed:
method Alarms.acknowledge_until(dt: Optional[date]) -> None → method Alarms.acknowledge_until(dt: date | None) -> None - changed:
method Alarms.add_component(component: Alarm | Parent) → method Alarms.add_component(component: Alarm | Parent) -> None - changed:
method Alarms.set_end(dt: Optional[date]) → method Alarms.set_end(dt: date | None) - changed:
method Alarms.set_local_timezone(tzinfo: Optional[tzinfo | str]) → method Alarms.set_local_timezone(tzinfo: tzinfo | str | None) - changed:
method Alarms.set_start(dt: Optional[date]) → method Alarms.set_start(dt: date | None) - changed:
method Alarms.snooze_until(dt: Optional[date]) -> None → method Alarms.snooze_until(dt: date | None) -> None - added:
property AlarmTime.acknowledged -> datetime | None - added:
property AlarmTime.action -> str - added:
property AlarmTime.parent -> Parent | None
- changed:
function multi_language_text_property(main_prop: str, compatibility_prop: str, doc: str) -> property → function multi_language_text_property(main_prop: str, compatibility_prop: str | None, doc: str) -> property - changed:
function single_int_property(prop: str, default: int, doc: str) -> property → function single_int_property(prop: str, default: int, doc: str, *, min_value: int | None=…) -> property - added:
function create_single_property(prop: str, value_attr: str | None, value_type: tuple[type], type_def: type, doc: str, vProp: type=…, convert: Callable[[object], object] | None=…) - added:
function duration_property(component: str) -> property - added:
function get_duration_property(component: Component) -> timedelta - added:
function get_end_property(component: Component, end_property: str) -> date | datetime - added:
function get_start_end_duration_with_validation(component: Component, start_property: str, end_property: str, component_name: str) -> tuple[date | datetime | None, date | datetime | None, timedelta | None] - added:
function get_start_property(component: Component) -> date | datetime - added:
function multi_string_property(name: str, doc: str) - added:
function property_del_duration(self: Component) - added:
function property_get_duration(self: Component) -> timedelta | None - added:
function property_set_duration(self: Component, value: timedelta | None) - added:
function rfc_7953_duration_property(self) -> timedelta | None - added:
function rfc_7953_end_property(self) -> timedelta | None - added:
function set_duration_with_locking(component: Component, duration: timedelta | None, locked: Literal['start', 'end'], end_property: str) -> None - added:
function set_end_with_locking(component: Component, end: date | datetime, locked: Literal['start', 'duration'], end_property: str) -> None - added:
function set_start_with_locking(component: Component, start: date | datetime, locked: Literal['duration', 'end'] | None, end_property: str) -> None - added:
variable CONCEPTS_TYPE_SETTER: TypeAlias - added:
variable LINKS_TYPE_SETTER: TypeAlias - added:
variable RECURRENCE_ID - added:
variable RELATED_TO_TYPE_SETTER: TypeAlias - added:
variable REQUEST_STATUS_property - added:
variable attendees_property - added:
variable busy_type_property - added:
variable class_property - added:
variable comments_property - added:
variable concepts_property - added:
variable conferences_property - added:
variable contacts_property - added:
variable description_property - added:
variable descriptions_property - added:
variable images_property - added:
variable links_property - added:
variable location_property - added:
variable organizer_property - added:
variable priority_property - added:
variable property_doc_duration_template - added:
variable refids_property - added:
variable related_to_property - added:
variable repeat_property - added:
variable rfc_7953_dtend_property - added:
variable rfc_7953_dtstart_property - added:
variable source_property - added:
variable status_property - added:
variable summary_property - added:
variable transparency_property - added:
variable url_property
- removed:
class Alarm(Component) - removed:
class Alarm.Triggers(NamedTuple) - removed:
class Calendar(Component) - removed:
class Component(CaselessDict) - removed:
class ComponentFactory(CaselessDict) - removed:
class Event(Component) - removed:
class FreeBusy(Component) - removed:
class Journal(Component) - removed:
class Timezone(Component) - removed:
class TimezoneDaylight(Component) - removed:
class TimezoneStandard(Component) - removed:
class Todo(Component) - removed:
constructor Component(*args, **kwargs) - removed:
constructor ComponentFactory(*args, **kwargs) - removed:
export IncompleteComponent - removed:
field Alarm.ACKNOWLEDGED - removed:
field Alarm.DURATION - removed:
field Alarm.REPEAT - removed:
field Alarm.TRIGGER - removed:
field Alarm.Triggers.absolute: tuple[datetime] - removed:
field Alarm.Triggers.end: tuple[timedelta] - removed:
field Alarm.Triggers.start: tuple[timedelta] - removed:
field Alarm.inclusive - removed:
field Alarm.multiple - removed:
field Alarm.name - removed:
field Alarm.required - removed:
field Alarm.singletons - removed:
field Alarm.uid - removed:
field Calendar.calendar_name - removed:
field Calendar.canonical_order - removed:
field Calendar.categories - removed:
field Calendar.color - removed:
field Calendar.description - removed:
field Calendar.multiple - removed:
field Calendar.name - removed:
field Calendar.required - removed:
field Calendar.singletons - removed:
field Calendar.uid - removed:
field Component.DTSTAMP - removed:
field Component.LAST_MODIFIED - removed:
field Component.exclusive - removed:
field Component.ignore_exceptions - removed:
field Component.inclusive - removed:
field Component.multiple - removed:
field Component.name - removed:
field Component.required - removed:
field Component.singletons - removed:
field Event.DTEND - removed:
field Event.DTSTART - removed:
field Event.DURATION - removed:
field Event.X_MOZ_LASTACK - removed:
field Event.X_MOZ_SNOOZE_TIME - removed:
field Event.canonical_order - removed:
field Event.categories - removed:
field Event.color - removed:
field Event.exclusive - removed:
field Event.exdates - removed:
field Event.ignore_exceptions - removed:
field Event.multiple - removed:
field Event.name - removed:
field Event.rdates - removed:
field Event.required - removed:
field Event.rrules - removed:
field Event.sequence - removed:
field Event.singletons - removed:
field Event.uid - removed:
field FreeBusy.multiple - removed:
field FreeBusy.name - removed:
field FreeBusy.required - removed:
field FreeBusy.singletons - removed:
field FreeBusy.uid - removed:
field Journal.DTSTART - removed:
field Journal.categories - removed:
field Journal.color - removed:
field Journal.end - removed:
field Journal.exdates - removed:
field Journal.multiple - removed:
field Journal.name - removed:
field Journal.rdates - removed:
field Journal.required - removed:
field Journal.rrules - removed:
field Journal.sequence - removed:
field Journal.singletons - removed:
field Journal.uid - removed:
field Timezone.canonical_order - removed:
field Timezone.name - removed:
field Timezone.required - removed:
field Timezone.singletons - removed:
field Timezone.subcomponents: list[TimezoneStandard | TimezoneDaylight] - removed:
field TimezoneDaylight.DTSTART - removed:
field TimezoneDaylight.TZOFFSETFROM - removed:
field TimezoneDaylight.TZOFFSETTO - removed:
field TimezoneDaylight.exdates - removed:
field TimezoneDaylight.multiple - removed:
field TimezoneDaylight.name - removed:
field TimezoneDaylight.rdates - removed:
field TimezoneDaylight.required - removed:
field TimezoneDaylight.rrules - removed:
field TimezoneDaylight.singletons - removed:
field TimezoneStandard.DTSTART - removed:
field TimezoneStandard.TZOFFSETFROM - removed:
field TimezoneStandard.TZOFFSETTO - removed:
field TimezoneStandard.exdates - removed:
field TimezoneStandard.multiple - removed:
field TimezoneStandard.name - removed:
field TimezoneStandard.rdates - removed:
field TimezoneStandard.required - removed:
field TimezoneStandard.rrules - removed:
field TimezoneStandard.singletons - removed:
field Todo.DTSTART - removed:
field Todo.DUE - removed:
field Todo.DURATION - removed:
field Todo.X_MOZ_LASTACK - removed:
field Todo.X_MOZ_SNOOZE_TIME - removed:
field Todo.categories - removed:
field Todo.color - removed:
field Todo.exclusive - removed:
field Todo.exdates - removed:
field Todo.multiple - removed:
field Todo.name - removed:
field Todo.rdates - removed:
field Todo.required - removed:
field Todo.rrules - removed:
field Todo.sequence - removed:
field Todo.singletons - removed:
field Todo.uid - removed:
function get_example(component_directory: str, example_name: str) -> bytes - removed:
method Calendar.add_missing_timezones(first_date: date=…, last_date: date=…) - removed:
method Calendar.get_missing_tzids() -> set[str] - removed:
method Calendar.get_used_tzids() -> set[str] - removed:
method Component.add(name, value, parameters=…, encode=…) - removed:
method Component.add_component(component: Component) - removed:
method Component.content_line(name, value, sorted=…) - removed:
method Component.content_lines(sorted=…) - removed:
method Component.decoded(name, default=…) - removed:
method Component.get_inline(name, decode=…) - removed:
method Component.is_empty() - removed:
method Component.is_thunderbird() -> bool - removed:
method Component.property_items(recursive=…, sorted=…) -> list[tuple[str, object]] - removed:
method Component.set_inline(name, values, encode=…) - removed:
method Component.to_ical(sorted=…) - removed:
method Component.walk(name=…, select=…) -> list[Component] - removed:
method Timezone.get_transitions() -> Tuple[List[datetime], List[Tuple[timedelta, timedelta, str]]] - removed:
method Timezone.to_tz(tzp: TZP=…, lookup_tzid: bool=…) - removed:
property Alarm.TRIGGER_RELATED -> str - removed:
property Alarm.triggers - removed:
property Calendar.events -> list[Event] - removed:
property Calendar.freebusy -> list[FreeBusy] - removed:
property Calendar.timezones -> list[Timezone] - removed:
property Calendar.todos -> list[Todo] - removed:
property Event.alarms -> Alarms - removed:
property Event.duration -> timedelta - removed:
property Event.end -> date | datetime - removed:
property Event.start -> date | datetime - removed:
property Journal.duration -> timedelta - removed:
property Journal.start -> date - removed:
property Timezone.daylight -> list[TimezoneDaylight] - removed:
property Timezone.standard -> list[TimezoneStandard] - removed:
property Timezone.tz_name -> str - removed:
property Todo.alarms -> Alarms - removed:
property Todo.duration -> timedelta - removed:
property Todo.end -> date | datetime - removed:
property Todo.start -> date | datetime - removed:
static method Calendar.example(name: str=…) -> Calendar - removed:
static method Calendar.from_ical(st, multiple=…) - removed:
static method Component.from_ical(st, multiple=…) - removed:
static method Event.example(name: str=…) -> Event - removed:
static method Timezone.example(name: str=…) -> Calendar - removed:
static method Timezone.from_tzid(tzid: str, tzp: TZP=…, first_date: date=…, last_date: date=…) -> Timezone - removed:
static method Timezone.from_tzinfo(timezone: tzinfo, tzid: Optional[str]=…, first_date: date=…, last_date: date=…) -> Timezone - removed:
variable INLINE - removed:
variable component_factory - added:
export Alarm - added:
export Availability - added:
export Available - added:
export Calendar - added:
export Component - added:
export ComponentFactory - added:
export Event - added:
export FreeBusy - added:
export Journal - added:
export LazyCalendar - added:
export Timezone - added:
export TimezoneDaylight - added:
export TimezoneStandard - added:
export Todo
- added:
class Alarm(Component) - added:
class Alarm.Triggers(NamedTuple) - added:
field Alarm.ACKNOWLEDGED - added:
field Alarm.ACTION - added:
field Alarm.DURATION - added:
field Alarm.REPEAT - added:
field Alarm.TRIGGER - added:
field Alarm.Triggers.absolute: tuple[datetime] - added:
field Alarm.Triggers.end: tuple[timedelta] - added:
field Alarm.Triggers.start: tuple[timedelta] - added:
field Alarm.attendees - added:
field Alarm.description - added:
field Alarm.inclusive - added:
field Alarm.multiple - added:
field Alarm.name - added:
field Alarm.repeat - added:
field Alarm.required - added:
field Alarm.singletons - added:
field Alarm.summary - added:
field Alarm.uid - added:
property Alarm.TRIGGER_RELATED -> str - added:
property Alarm.triggers - added:
static method Alarm.example(name: str=…) -> Alarm - added:
static method Alarm.new(attendees: list[vCalAddress] | None=…, concepts: CONCEPTS_TYPE_SETTER=…, description: str | None=…, links: LINKS_TYPE_SETTER=…, refids: list[str] | str | None=…, related_to: RELATED_TO_TYPE_SETTER=…, summary: str | None=…, uid: str | uuid.UUID | None=…) -> Self - added:
static method Alarm.new_audio(trigger: timedelta | datetime, attach: str | bytes | None=…, duration: timedelta | None=…, repeat: int | None=…, uid: str | uuid.UUID | None=…, links: LINKS_TYPE_SETTER=…, related_to: RELATED_TO_TYPE_SETTER=…, refids: list[str] | str | None=…, concepts: CONCEPTS_TYPE_SETTER=…) -> Alarm - added:
static method Alarm.new_display(description: str, trigger: timedelta | datetime, duration: timedelta | None=…, repeat: int | None=…, uid: str | uuid.UUID | None=…, links: LINKS_TYPE_SETTER=…, related_to: RELATED_TO_TYPE_SETTER=…, refids: list[str] | str | None=…, concepts: CONCEPTS_TYPE_SETTER=…) -> Alarm - added:
static method Alarm.new_email(summary: str, description: str, trigger: timedelta | datetime, attendees: Sequence[vCalAddress] | vCalAddress, attachments: Sequence[str] | str | None=…, duration: timedelta | None=…, repeat: int | None=…, uid: str | uuid.UUID | None=…, links: LINKS_TYPE_SETTER=…, related_to: RELATED_TO_TYPE_SETTER=…, refids: list[str] | str | None=…, concepts: CONCEPTS_TYPE_SETTER=……
- added:
class Availability(Component) - added:
field Availability.DTEND - added:
field Availability.DTSTART - added:
field Availability.DURATION - added:
field Availability.busy_type - added:
field Availability.canonical_order - added:
field Availability.categories - added:
field Availability.classification - added:
field Availability.contacts - added:
field Availability.description - added:
field Availability.duration - added:
field Availability.end - added:
field Availability.exclusive - added:
field Availability.location - added:
field Availability.name - added:
field Availability.organizer - added:
field Availability.priority - added:
field Availability.required - added:
field Availability.sequence - added:
field Availability.singletons - added:
field Availability.start - added:
field Availability.summary - added:
field Availability.url - added:
property Availability.available -> list[Available] - added:
static method Availability.example(name: str=…) -> Availability - added:
static method Availability.new(busy_type: BUSYTYPE | None=…, categories: Sequence[str]=…, comments: list[str] | str | None=…, components: Sequence[Available] | None=…, concepts: CONCEPTS_TYPE_SETTER=…, contacts: list[str] | str | None=…, created: date | None=…, classification: CLASS | None=…, description: str | None=…, end: datetime | None=…, last_modified: date | None=…, links: LINKS_TYPE_SETTER…
- added:
class Available(Component) - added:
field Available.DTEND - added:
field Available.DTSTART - added:
field Available.DURATION - added:
field Available.categories - added:
field Available.contacts - added:
field Available.description - added:
field Available.duration - added:
field Available.end - added:
field Available.exdates - added:
field Available.location - added:
field Available.name - added:
field Available.rdates - added:
field Available.rrules - added:
field Available.sequence - added:
field Available.start - added:
field Available.summary - added:
field Available.uid - added:
static method Available.example(name: str=…) -> Available - added:
static method Available.new(categories: Sequence[str]=…, comments: list[str] | str | None=…, concepts: CONCEPTS_TYPE_SETTER=…, contacts: list[str] | str | None=…, created: date | None=…, description: str | None=…, end: datetime | None=…, last_modified: date | None=…, links: LINKS_TYPE_SETTER=…, location: str | None=…, recurrence_id: date | datetime | None=…, refids: list[str] | str | None=…, rela…
- added:
class Calendar(Component) - added:
field Calendar.calendar_name - added:
field Calendar.calscale - added:
field Calendar.canonical_order - added:
field Calendar.categories - added:
field Calendar.color - added:
field Calendar.description - added:
field Calendar.images - added:
field Calendar.method - added:
field Calendar.multiple - added:
field Calendar.name - added:
field Calendar.prodid - added:
field Calendar.required - added:
field Calendar.singletons - added:
field Calendar.source - added:
field Calendar.uid - added:
field Calendar.url - added:
field Calendar.version - added:
method Calendar.add_missing_timezones(first_date: date=…, last_date: date=…) - added:
method Calendar.get_missing_tzids() -> set[str] - added:
method Calendar.get_used_tzids() -> set[str] - added:
method Calendar.validate() - added:
property Calendar.availabilities -> list[Availability] - added:
property Calendar.events -> list[Event] - added:
property Calendar.freebusy -> list[FreeBusy] - added:
property Calendar.journals -> list[Journal] - added:
property Calendar.refresh_interval -> timedelta | None - added:
property Calendar.timezones -> list[Timezone] - added:
property Calendar.todos -> list[Todo] - added:
static method Calendar.example(name: str=…) -> Calendar - added:
static method Calendar.from_ical(st: str | bytes | Path, multiple: Literal[False]=…) -> Calendar | (st: str | bytes | Path, multiple: Literal[True]) -> list[Calendar] - added:
static method Calendar.new(calscale: str | None=…, categories: Sequence[str]=…, color: str | None=…, concepts: CONCEPTS_TYPE_SETTER=…, description: str | None=…, language: str | None=…, last_modified: date | datetime | None=…, links: LINKS_TYPE_SETTER=…, method: str | None=…, name: str | None=…, organization: str | None=…, prodid: str | None=…, refresh_interval: timedelta | None=…, refids: list[s…
- added:
class Component(CaselessDict) - added:
constructor Component(*args: Any, **kwargs: Any) -> None - added:
field Component.CREATED - added:
field Component.DTSTAMP - added:
field Component.LAST_MODIFIED - added:
field Component.comments - added:
field Component.concepts - added:
field Component.exclusive: ClassVar[tuple[()]] - added:
field Component.ignore_exceptions: ClassVar[bool] - added:
field Component.inclusive: ClassVar[tuple[str] | tuple[tuple[str, str]]] - added:
field Component.links - added:
field Component.multiple: ClassVar[tuple[()]] - added:
field Component.name: ClassVar[str | None] - added:
field Component.refids - added:
field Component.related_to - added:
field Component.required: ClassVar[tuple[()]] - added:
field Component.singletons: ClassVar[tuple[()]] - added:
field Component.stamp - added:
field Component.subcomponents: list[Component] - added:
field Component.types_factory: ClassVar[TypesFactory] - added:
field Component.uid - added:
method Component.add(name: str, value, parameters: dict[str, str] | Parameters=…, encode: bool=…) -> None - added:
method Component.add_component(component: Component) -> None - added:
method Component.content_line(name, value, sorted: bool=…) - added:
method Component.content_lines(sorted: bool=…) - added:
method Component.copy(recursive: bool=…) -> Self - added:
method Component.decoded(name: str, default: Any=…) -> Any - added:
method Component.get(key, default=…) -> Any - added:
method Component.get_inline(name, decode=…) - added:
method Component.is_empty() -> bool - added:
method Component.is_lazy() -> bool - added:
method Component.is_thunderbird() -> bool - added:
method Component.parse() -> Self - added:
method Component.property_items(recursive: bool=…, sorted: bool=…) -> list[tuple[str, object]] - added:
method Component.set_inline(name, values, encode=…) - added:
method Component.to_ical(sorted: bool=…) - added:
method Component.to_jcal() -> list - added:
method Component.to_json() -> str - added:
method Component.walk(name: str | None=…, select: callable[[Component], bool]=…) -> list[Component] - added:
method Component.with_uid(uid: str) -> list[Component] - added:
property Component.created -> datetime - added:
property Component.last_modified -> datetime - added:
static method Component.from_ical(st: str | bytes, multiple: Literal[False]=…) -> Component | (st: str | bytes, multiple: Literal[True]) -> list[Component] - added:
static method Component.from_jcal(jcal: str | list) -> Component - added:
static method Component.get_component_class(name: str) -> type[Component] - added:
static method Component.new(created: date | None=…, comments: list[str] | str | None=…, concepts: CONCEPTS_TYPE_SETTER=…, last_modified: date | None=…, links: LINKS_TYPE_SETTER=…, refids: list[str] | str | None=…, related_to: RELATED_TO_TYPE_SETTER=…, stamp: date | None=…, subcomponents: Iterable[Component] | None=…) -> Self - added:
static method Component.register(component_class: type[Component]) -> None
- added:
class ComponentFactory(CaselessDict) - added:
constructor ComponentFactory(*args: Any, **kwargs: Any) -> None - added:
method ComponentFactory.add_component_class(cls: type[Component]) -> None - added:
method ComponentFactory.get_component_class(name: str) -> type[Component]
- added:
class Event(Component) - added:
field Event.DTEND - added:
field Event.DTSTART - added:
field Event.DURATION - added:
field Event.REQUEST_STATUS - added:
field Event.X_MOZ_LASTACK - added:
field Event.X_MOZ_SNOOZE_TIME - added:
field Event.attendees - added:
field Event.canonical_order - added:
field Event.categories - added:
field Event.classification - added:
field Event.color - added:
field Event.conferences - added:
field Event.contacts - added:
field Event.description - added:
field Event.exclusive - added:
field Event.exdates - added:
field Event.ignore_exceptions - added:
field Event.images - added:
field Event.location - added:
field Event.multiple - added:
field Event.name - added:
field Event.organizer - added:
field Event.priority - added:
field Event.rdates - added:
field Event.required - added:
field Event.rrules - added:
field Event.sequence - added:
field Event.singletons - added:
field Event.status - added:
field Event.summary - added:
field Event.transparency - added:
field Event.uid - added:
field Event.url - added:
method Event.set_duration(duration: timedelta | None, locked: Literal['start', 'end']=…) - added:
method Event.set_end(end: date | datetime, locked: Literal['start', 'duration']=…) - added:
method Event.set_start(start: date | datetime, locked: Literal['duration', 'end'] | None=…) - added:
property Event.alarms -> Alarms - added:
property Event.duration -> timedelta - added:
property Event.end -> date | datetime - added:
property Event.start -> date | datetime - added:
static method Event.example(name: str=…) -> Event - added:
static method Event.new(attendees: list[vCalAddress] | None=…, categories: Sequence[str]=…, classification: CLASS | None=…, color: str | None=…, comments: list[str] | str | None=…, concepts: CONCEPTS_TYPE_SETTER=…, conferences: list[Conference] | None=…, contacts: list[str] | str | None=…, created: date | None=…, description: str | None=…, end: date | datetime | None=…, last_modified: date | None…
- added:
class FreeBusy(Component) - added:
field FreeBusy.DTEND - added:
field FreeBusy.DTSTART - added:
field FreeBusy.REQUEST_STATUS - added:
field FreeBusy.contacts - added:
field FreeBusy.end - added:
field FreeBusy.multiple - added:
field FreeBusy.name - added:
field FreeBusy.organizer - added:
field FreeBusy.required - added:
field FreeBusy.singletons - added:
field FreeBusy.start - added:
field FreeBusy.uid - added:
field FreeBusy.url - added:
property FreeBusy.duration -> timedelta | None - added:
static method FreeBusy.example(name: str=…) -> FreeBusy - added:
static method FreeBusy.new(comments: list[str] | str | None=…, concepts: CONCEPTS_TYPE_SETTER=…, contacts: list[str] | str | None=…, end: date | datetime | None=…, links: LINKS_TYPE_SETTER=…, organizer: vCalAddress | str | None=…, refids: list[str] | str | None=…, related_to: RELATED_TO_TYPE_SETTER=…, request_status: list[str] | str | None=…, stamp: date | None=…, start: date | datetime | None=…,…
- added:
class Journal(Component) - added:
field Journal.DTSTART - added:
field Journal.REQUEST_STATUS - added:
field Journal.attendees - added:
field Journal.categories - added:
field Journal.classification - added:
field Journal.color - added:
field Journal.contacts - added:
field Journal.descriptions - added:
field Journal.end - added:
field Journal.exdates - added:
field Journal.images - added:
field Journal.multiple - added:
field Journal.name - added:
field Journal.organizer - added:
field Journal.rdates - added:
field Journal.required - added:
field Journal.rrules - added:
field Journal.sequence - added:
field Journal.singletons - added:
field Journal.status - added:
field Journal.summary - added:
field Journal.uid - added:
field Journal.url - added:
property Journal.description -> str - added:
property Journal.duration -> timedelta - added:
property Journal.start -> date - added:
static method Journal.example(name: str=…) -> Journal - added:
static method Journal.new(attendees: list[vCalAddress] | None=…, categories: Sequence[str]=…, classification: CLASS | None=…, color: str | None=…, comments: list[str] | str | None=…, concepts: CONCEPTS_TYPE_SETTER=…, contacts: list[str] | str | None=…, created: date | None=…, description: str | Sequence[str] | None=…, last_modified: date | None=…, links: LINKS_TYPE_SETTER=…, organizer: vCalAddres…
- added:
class LazyCalendar(Calendar) - added:
constructor LazyCalendar(*args: Any, **kwargs: Any) -> None - added:
method LazyCalendar.add_component(component: Component) -> None - added:
method LazyCalendar.is_lazy() -> bool - added:
method LazyCalendar.with_uid(uid: str) -> list[Component] - added:
property LazyCalendar.subcomponents -> list[Component]
- added:
class Timezone(Component) - added:
class TimezoneDaylight(Component) - added:
class TimezoneStandard(Component) - added:
field Timezone.DEFAULT_FIRST_DATE - added:
field Timezone.DEFAULT_LAST_DATE - added:
field Timezone.canonical_order - added:
field Timezone.name - added:
field Timezone.required - added:
field Timezone.singletons - added:
field Timezone.subcomponents: list[TimezoneStandard | TimezoneDaylight] - added:
field TimezoneDaylight.DTSTART - added:
field TimezoneDaylight.TZOFFSETFROM - added:
field TimezoneDaylight.TZOFFSETTO - added:
field TimezoneDaylight.exdates - added:
field TimezoneDaylight.multiple - added:
field TimezoneDaylight.name - added:
field TimezoneDaylight.rdates - added:
field TimezoneDaylight.required - added:
field TimezoneDaylight.rrules - added:
field TimezoneDaylight.singletons - added:
field TimezoneStandard.DTSTART - added:
field TimezoneStandard.TZOFFSETFROM - added:
field TimezoneStandard.TZOFFSETTO - added:
field TimezoneStandard.exdates - added:
field TimezoneStandard.multiple - added:
field TimezoneStandard.name - added:
field TimezoneStandard.rdates - added:
field TimezoneStandard.required - added:
field TimezoneStandard.rrules - added:
field TimezoneStandard.singletons - added:
method Timezone.get_transitions() -> tuple[list[datetime], list[tuple[timedelta, timedelta, str]]] - added:
method Timezone.to_tz(tzp: TZP=…, lookup_tzid: bool=…) - added:
property Timezone.daylight -> list[TimezoneDaylight] - added:
property Timezone.standard -> list[TimezoneStandard] - added:
property Timezone.tz_name -> str - added:
static method Timezone.example(name: str=…) -> Calendar - added:
static method Timezone.from_tzid(tzid: str, tzp: TZP=…, first_date: date=…, last_date: date=…) -> Timezone - added:
static method Timezone.from_tzinfo(timezone: tzinfo, tzid: str | None=…, first_date: date=…, last_date: date=…) -> Timezone
- added:
class Todo(Component) - added:
field Todo.DTSTART - added:
field Todo.DUE - added:
field Todo.DURATION - added:
field Todo.REQUEST_STATUS - added:
field Todo.X_MOZ_LASTACK - added:
field Todo.X_MOZ_SNOOZE_TIME - added:
field Todo.attendees - added:
field Todo.categories - added:
field Todo.classification - added:
field Todo.color - added:
field Todo.conferences - added:
field Todo.contacts - added:
field Todo.description - added:
field Todo.exclusive - added:
field Todo.exdates - added:
field Todo.images - added:
field Todo.location - added:
field Todo.multiple - added:
field Todo.name - added:
field Todo.organizer - added:
field Todo.priority - added:
field Todo.rdates - added:
field Todo.required - added:
field Todo.rrules - added:
field Todo.sequence - added:
field Todo.singletons - added:
field Todo.status - added:
field Todo.summary - added:
field Todo.uid - added:
field Todo.url - added:
method Todo.set_duration(duration: timedelta | None, locked: Literal['start', 'end']=…) - added:
method Todo.set_end(end: date | datetime, locked: Literal['start', 'duration']=…) - added:
method Todo.set_start(start: date | datetime, locked: Literal['duration', 'end'] | None=…) - added:
property Todo.alarms -> Alarms - added:
property Todo.duration -> timedelta - added:
property Todo.end -> date | datetime - added:
property Todo.start -> date | datetime - added:
static method Todo.example(name: str=…) -> Todo - added:
static method Todo.new(attendees: list[vCalAddress] | None=…, categories: Sequence[str]=…, classification: CLASS | None=…, color: str | None=…, comments: list[str] | str | None=…, concepts: CONCEPTS_TYPE_SETTER=…, contacts: list[str] | str | None=…, conferences: list[Conference] | None=…, created: date | None=…, description: str | None=…, end: date | datetime | None=…, last_modified: date | None=…
- changed:
constructor CaselessDict(*args, **kwargs) → constructor CaselessDict(*args: Any, **kwargs: Any) -> None - changed:
function canonsort_items(dict1, canonical_order=…) → function canonsort_items(dict1: Mapping[KT, VT], canonical_order: Iterable[KT] | None=…) -> list[tuple[KT, VT]] - changed:
function canonsort_keys(keys, canonical_order=…) → function canonsort_keys(keys: Iterable[KT], canonical_order: Iterable[KT] | None=…) -> list[KT] - changed:
method CaselessDict.copy() → method CaselessDict.copy() -> Self - changed:
method CaselessDict.get(key, default=…) → method CaselessDict.get(key: Any, default: Any=…) -> Any - changed:
method CaselessDict.has_key(key) → method CaselessDict.has_key(key: Any) -> bool - changed:
method CaselessDict.pop(key, default=…) → method CaselessDict.pop(key: Any, default: Any=…) -> Any - changed:
method CaselessDict.popitem() → method CaselessDict.popitem() -> tuple[Any, Any] - changed:
method CaselessDict.setdefault(key, value=…) → method CaselessDict.setdefault(key: Any, value: Any=…) -> Any - changed:
method CaselessDict.sorted_items() → method CaselessDict.sorted_items() -> list[tuple[Any, Any]] - changed:
method CaselessDict.sorted_keys() → method CaselessDict.sorted_keys() -> list[str] - changed:
method CaselessDict.update(*args, **kwargs) → method CaselessDict.update(*args: Any, **kwargs: Any) -> None
- changed:
function view(event) → function view(event: Event) -> str
- added:
export Self - added:
export TypeGuard - added:
export TypeIs - added:
function deprecate_for_version_8(func) - added:
variable Self - added:
variable TypeGuard - added:
variable TypeIs
- added:
variable MAX_ALARM_REPEAT: int
- added:
class BUSYTYPE(StrEnum) - added:
class CLASS(StrEnum) - added:
class STATUS(StrEnum) - added:
class TRANSP(StrEnum) - added:
class VALUE(StrEnum) - added:
field BUSYTYPE.BUSY - added:
field BUSYTYPE.BUSY_TENTATIVE - added:
field BUSYTYPE.BUSY_UNAVAILABLE - added:
field CLASS.CONFIDENTIAL - added:
field CLASS.PRIVATE - added:
field CLASS.PUBLIC - added:
field RELTYPE.CONCEPT - added:
field RELTYPE.DEPENDS_ON - added:
field RELTYPE.FINISHTOFINISH - added:
field RELTYPE.FINISHTOSTART - added:
field RELTYPE.FIRST - added:
field RELTYPE.NEXT - added:
field RELTYPE.REFID - added:
field RELTYPE.STARTTOFINISH - added:
field RELTYPE.STARTTOSTART - added:
field STATUS.CANCELLED - added:
field STATUS.COMPLETED - added:
field STATUS.CONFIRMED - added:
field STATUS.DRAFT - added:
field STATUS.FINAL - added:
field STATUS.IN_PROCESS - added:
field STATUS.NEEDS_ACTION - added:
field STATUS.TENTATIVE - added:
field TRANSP.OPAQUE - added:
field TRANSP.TRANSPARENT - added:
field VALUE.BINARY - added:
field VALUE.BOOLEAN - added:
field VALUE.CAL_ADDRESS - added:
field VALUE.DATE - added:
field VALUE.DATE_TIME - added:
field VALUE.DURATION - added:
field VALUE.FLOAT - added:
field VALUE.INTEGER - added:
field VALUE.PERIOD - added:
field VALUE.RECUR - added:
field VALUE.TEXT - added:
field VALUE.TIME - added:
field VALUE.URI - added:
field VALUE.UTC_OFFSET
- removed:
class WillBeRemovedInVersion7(FeatureWillBeRemovedInFutureVersion) - added:
class BrokenCalendarProperty(InvalidCalendar) - added:
class ICalParsingError(InvalidCalendar) - added:
class JCalParsingError(InvalidCalendar) - added:
constructor ICalParsingError(message: str, line: str | None=…, line_number: int | None=…, value: object=…) -> None - added:
constructor JCalParsingError(message: str, parser: str | type=…, path: list[str | int] | None | str | int=…, value: object=…) -> None - added:
static method JCalParsingError.reraise_with_path_added(*path_components: int | str) -> Generator[None, None, None] - added:
static method JCalParsingError.validate_jcal_token(name: str, kind: str, parser: str | type=…, path: list[str | int] | None | str | int=…) -> None - added:
static method JCalParsingError.validate_list_type(jcal: object, expected_type: type[str | int | float | bool], parser: str | type=…, path: list[str | int] | None | str | int=…) -> None - added:
static method JCalParsingError.validate_property(jcal_property: list[object], parser: str | type, path: list[str | int] | None | str | int=…) -> None - added:
static method JCalParsingError.validate_value_type(jcal: object, expected_type: type[str | int | float | bool] | tuple[type[str | int | float | bool], ...], parser: str | type=…, path: list[str | int] | None | str | int=…) -> None
- changed:
function string_parameter(name: str, doc: str, default: Callable=…, convert: Optional[Callable[[str], T]]=…, convert_to: Optional[Callable[[T], str]]=…) -> property → function string_parameter(name: str, doc: str, default: Callable=…, convert: Callable[[str], T] | None=…, convert_to: Callable[[T], str] | None=…) -> property - added:
variable FMTTYPE - added:
variable GAP - added:
variable LABEL - added:
variable LINKREL - added:
variable VALUE
- removed:
class Contentline(str) - removed:
class Contentlines(list) - removed:
class Parameters(CaselessDict) - removed:
field Parameters.always_quoted - removed:
field Parameters.quote_also - removed:
function dquote(val, always_quote=…) - removed:
function escape_char(text) - removed:
function escape_string(val) - removed:
function foldline(line, limit=…, fold_sep=…) - removed:
function param_value(value, always_quote=…) - removed:
function q_join(lst, sep=…, always_quote=…) - removed:
function q_split(st, sep=…, maxsplit=…) - removed:
function rfc_6868_escape(param_value: str) -> str - removed:
function rfc_6868_unescape(param_value: str) -> str - removed:
function unescape_char(text) - removed:
function unescape_list_or_string(val) - removed:
function unescape_string(val) - removed:
function validate_param_value(value, quoted=…) - removed:
function validate_token(name) - removed:
method Contentline.parts() - removed:
method Contentline.to_ical() - removed:
method Contentlines.to_ical() - removed:
method Parameters.params() - removed:
method Parameters.to_ical(sorted=…) - removed:
static method Contentline.from_ical(ical, strict=…) - removed:
static method Contentline.from_parts(name: ICAL_TYPE, params: Parameters, values, sorted=…) - removed:
static method Contentlines.from_ical(st) - removed:
static method Parameters.from_ical(st, strict=…) - removed:
variable FOLD - removed:
variable NAME - removed:
variable NEWLINE - removed:
variable QUNSAFE_CHAR - removed:
variable QUOTABLE - removed:
variable UNSAFE_CHAR - removed:
variable uFOLD - added:
export Contentline - added:
export Contentlines - added:
export Parameters - added:
export _escape_char - added:
export _escape_string - added:
export _foldline - added:
export _unescape_char - added:
export _unescape_string - added:
export dquote - added:
export escape_char - added:
export escape_string - added:
export foldline - added:
export param_value - added:
export q_join - added:
export q_split - added:
export rfc_6868_escape - added:
export rfc_6868_unescape - added:
export split_on_unescaped_comma - added:
export split_on_unescaped_semicolon - added:
export unescape_backslash - added:
export unescape_char - added:
export unescape_list_or_string - added:
export unescape_string - added:
export validate_param_value - added:
export validate_token
- added:
class Contentline(str) - added:
class Contentlines(list[Contentline]) - added:
method Contentline.parts() -> tuple[str, Parameters, str] - added:
method Contentline.raw_parts() -> tuple[str, Parameters, str] - added:
method Contentline.to_ical() - added:
method Contentline.value_separator_index() -> int - added:
method Contentlines.to_ical() - added:
static method Contentline.from_ical(ical, strict=…) - added:
static method Contentline.from_parts(name: ICAL_TYPE, params: Parameters, values, sorted: bool=…) - added:
static method Contentlines.from_ical(st)
- added:
export CalendarIcalParser - added:
export ComponentIcalParser
- added:
class CalendarIcalParser(ComponentIcalParser) - added:
method CalendarIcalParser.prepare_components() -> None
- added:
class ComponentIcalParser - added:
constructor ComponentIcalParser(data: bytes | str | list[Contentline], component_factory: ComponentFactory, types_factory: TypesFactory) -> None - added:
field ComponentIcalParser.datetime_names: ClassVar[tuple[str, ...]] - added:
method ComponentIcalParser.contains_component(name: str) -> bool - added:
method ComponentIcalParser.contains_uid(uid: str) -> bool - added:
method ComponentIcalParser.get_factory_for_property(name: str, params: Parameters) -> VPROPERTY - added:
method ComponentIcalParser.handle_begin_component(vals: str) -> None - added:
method ComponentIcalParser.handle_categories(params: Parameters, vals: str, line: Contentline) -> bool - added:
method ComponentIcalParser.handle_end_component(vals: str) -> None - added:
method ComponentIcalParser.handle_line_parse_error(exception: Exception) - added:
method ComponentIcalParser.handle_property(name: str, params: Parameters, vals: str, line: Contentline) -> None - added:
method ComponentIcalParser.handle_property_parse_error(exception: Exception, name: str, params: Parameters, val: str, line: Contentline) - added:
method ComponentIcalParser.initialize_parsing() - added:
method ComponentIcalParser.parse() -> list[Component] - added:
method ComponentIcalParser.parse_and_add_property(name: str, params: Parameters, val: str, tzid: str | None, line: Contentline) - added:
method ComponentIcalParser.parse_content_lines() -> None - added:
method ComponentIcalParser.prepare_components() -> None - added:
property ComponentIcalParser.component -> Component | None
- added:
class LazyCalendarIcalParser(ComponentIcalParser) - added:
class LazySubcomponent - added:
constructor LazySubcomponent(name: str, parser: ComponentIcalParser) -> None - added:
field LazyCalendarIcalParser.parse_instantly: ClassVar[tuple[str, ...]] - added:
method LazyCalendarIcalParser.get_subcomponent_parser(content_lines: list[Contentline]) -> ComponentIcalParser - added:
method LazyCalendarIcalParser.handle_begin_component(vals) - added:
method LazyCalendarIcalParser.handle_lazy_begin_component(component_name: str) -> None - added:
method LazyCalendarIcalParser.prepare_components() - added:
method LazySubcomponent.is_lazy() -> bool - added:
method LazySubcomponent.is_parsed() -> bool - added:
method LazySubcomponent.parse() -> Component - added:
method LazySubcomponent.walk(name: str) -> list[Component] - added:
method LazySubcomponent.with_uid(uid: str) -> list[Component] - added:
property LazySubcomponent.name -> str
- added:
class Parameters(CaselessDict) - added:
constructor Parameters(*args: Any, **kwargs: Any) -> None - added:
field Parameters.always_quoted - added:
field Parameters.quote_also - added:
function dquote(val: str, always_quote: bool=…) -> str - added:
function param_value(value: Sequence[str] | str | HasToIcal, always_quote: bool=…) -> str - added:
function q_join(lst: Sequence[str], sep: str=…, always_quote: bool=…) -> str - added:
function q_split(st: str, sep: str=…, maxsplit: int=…) -> list[str] - added:
function rfc_6868_escape(param_value: str) -> str - added:
function rfc_6868_unescape(param_value: str) -> str - added:
function validate_param_value(value: str, quoted: bool=…) -> None - added:
method Parameters.is_utc() -> bool - added:
method Parameters.params() - added:
method Parameters.to_ical(sorted: bool=…) - added:
method Parameters.to_jcal(exclude_utc=…) -> dict[str, str] - added:
method Parameters.tzid() -> str | None - added:
method Parameters.update_tzid_from(dt: datetime | time | Any) -> None - added:
method Parameters.value() -> VALUE | str | None - added:
static method Parameters.from_ical(st, strict=…) - added:
static method Parameters.from_jcal(jcal: dict[str:str | list[str]]) - added:
static method Parameters.from_jcal_property(jcal_property: list)
- added:
function split_on_unescaped_comma(text: str) -> list[str] - added:
function split_on_unescaped_semicolon(text: str) -> list[str] - added:
function unescape_backslash(val: str) - added:
function unescape_list_or_string(val: str | list[str]) -> str | list[str]
- added:
function _escape_char(text: str | bytes) -> str - added:
function _escape_string(val: str) -> str - added:
function _foldline(line: str, limit: int=…, fold_sep: str=…) -> str - added:
function _unescape_char(text: str | bytes) -> str | bytes | None - added:
function _unescape_string(val: str) -> str - added:
function validate_token(name: str) -> None - added:
variable escape_char - added:
variable escape_string - added:
variable foldline - added:
variable unescape_char - added:
variable unescape_string
- changed:
function data_encode(data: Union[ICAL_TYPE, dict, list], encoding=…) -> Union[bytes, List[bytes], dict] → function data_encode(data: ICAL_TYPE | dict | list, encoding: str=…) -> bytes | list[bytes] | dict - changed:
function from_unicode(value: ICAL_TYPE, encoding=…) -> bytes → function from_unicode(value: ICAL_TYPE, encoding: str=…) -> bytes - changed:
function to_unicode(value: ICAL_TYPE, encoding=…) -> str → function to_unicode(value: ICAL_TYPE, encoding: str=…) -> str
- removed:
class TimeBase - removed:
class TypesFactory(CaselessDict) - removed:
class vBinary - removed:
class vBoolean(int) - removed:
class vCalAddress(str) - removed:
class vCategory - removed:
class vDDDLists - removed:
class vDDDTypes(TimeBase) - removed:
class vDate(TimeBase) - removed:
class vDatetime(TimeBase) - removed:
class vDuration(TimeBase) - removed:
class vFloat(float) - removed:
class vFrequency(str) - removed:
class vGeo - removed:
class vInline(str) - removed:
class vInt(int) - removed:
class vMonth(int) - removed:
class vPeriod(TimeBase) - removed:
class vRecur(CaselessDict) - removed:
class vSkip(vText, Enum) - removed:
class vText(str) - removed:
class vTime(TimeBase) - removed:
class vUTCOffset - removed:
class vUri(str) - removed:
class vWeekday(str) - removed:
constructor TypesFactory(*args, **kwargs) - removed:
constructor vBinary(obj) - removed:
constructor vCategory(c_list: list[str] | str, params=…) - removed:
constructor vDDDLists(dt_list) - removed:
constructor vDDDTypes(dt) - removed:
constructor vDate(dt) - removed:
constructor vDatetime(dt, params=…) - removed:
constructor vDuration(td, params=…) - removed:
constructor vGeo(geo: tuple[float | str | int, float | str | int], params=…) - removed:
constructor vPeriod(per: tuple[datetime, Union[datetime, timedelta]]) - removed:
constructor vRecur(*args, params=…, **kwargs) - removed:
constructor vTime(*args) - removed:
constructor vUTCOffset(td, params=…) - removed:
export tzid_from_dt - removed:
export tzid_from_tzinfo - removed:
field TimeBase.ignore_for_equality - removed:
field TimeBase.params: Parameters - removed:
field TypesFactory.types_map - removed:
field vBinary.params: Parameters - removed:
field vBoolean.BOOL_MAP - removed:
field vBoolean.params: Parameters - removed:
field vCalAddress.name - removed:
field vCalAddress.params: Parameters - removed:
field vCategory.params: Parameters - removed:
field vDDDLists.dts: list - removed:
field vDDDLists.params: Parameters - removed:
field vDDDTypes.params: Parameters - removed:
field vDate.params: Parameters - removed:
field vDatetime.params: Parameters - removed:
field vDuration.params: Parameters - removed:
field vFloat.params: Parameters - removed:
field vFrequency.frequencies - removed:
field vFrequency.params: Parameters - removed:
field vGeo.params: Parameters - removed:
field vInline.params: Parameters - removed:
field vInt.params: Parameters - removed:
field vMonth.leap - removed:
field vMonth.params: Parameters - removed:
field vPeriod.params: Parameters - removed:
field vRecur.canonical_order - removed:
field vRecur.frequencies - removed:
field vRecur.params: Parameters - removed:
field vRecur.types - removed:
field vSkip.BACKWARD - removed:
field vSkip.FORWARD - removed:
field vSkip.OMIT - removed:
field vText.params: Parameters - removed:
field vUTCOffset.ignore_exceptions - removed:
field vUTCOffset.params: Parameters - removed:
field vUri.params: Parameters - removed:
field vWeekday.params: Parameters - removed:
field vWeekday.week_days - removed:
method TypesFactory.for_property(name) - removed:
method TypesFactory.from_ical(name, value) - removed:
method TypesFactory.to_ical(name, value) - removed:
method vBinary.to_ical() - removed:
method vBoolean.to_ical() - removed:
method vCalAddress.to_ical() - removed:
method vCategory.to_ical() - removed:
method vDDDLists.to_ical() - removed:
method vDDDTypes.to_ical() - removed:
method vDate.to_ical() - removed:
method vDatetime.to_ical() - removed:
method vDuration.to_ical() - removed:
method vFloat.to_ical() - removed:
method vFrequency.to_ical() - removed:
method vGeo.to_ical() - removed:
method vInline.to_ical() - removed:
method vInt.to_ical() -> bytes - removed:
method vMonth.leap() - removed:
method vMonth.to_ical() -> bytes - removed:
method vPeriod.overlaps(other) - removed:
method vPeriod.to_ical() - removed:
method vRecur.to_ical() - removed:
method vText.to_ical() -> bytes - removed:
method vTime.to_ical() - removed:
method vUTCOffset.to_ical() - removed:
method vUri.to_ical() - removed:
method vWeekday.to_ical() - removed:
property vCalAddress.email -> str - removed:
property vDuration.dt -> timedelta - removed:
property vPeriod.dt - removed:
static method vBinary.from_ical(ical) - removed:
static method vBoolean.from_ical(ical) - removed:
static method vCalAddress.from_ical(ical) - removed:
static method vCategory.from_ical(ical) - removed:
static method vDDDLists.from_ical(ical, timezone=…) - removed:
static method vDDDTypes.from_ical(ical, timezone=…) - removed:
static method vDate.from_ical(ical) - removed:
static method vDatetime.from_ical(ical, timezone=…) - removed:
static method vDuration.from_ical(ical) - removed:
static method vFloat.from_ical(ical) - removed:
static method vFrequency.from_ical(ical) - removed:
static method vGeo.from_ical(ical) - removed:
static method vInline.from_ical(ical) - removed:
static method vInt.from_ical(ical: ICAL_TYPE) - removed:
static method vMonth.from_ical(ical: str) - removed:
static method vPeriod.from_ical(ical, timezone=…) - removed:
static method vRecur.from_ical(ical: str) - removed:
static method vRecur.parse_type(key, values) - removed:
static method vText.from_ical(ical: ICAL_TYPE) - removed:
static method vTime.from_ical(ical) - removed:
static method vUTCOffset.from_ical(ical) - removed:
static method vUri.from_ical(ical) - removed:
static method vWeekday.from_ical(ical) - removed:
variable DURATION_REGEX - removed:
variable WEEKDAY_RULE - added:
export AdrFields - added:
export DT_TYPE - added:
export NFields - added:
export TimeBase - added:
export TypesFactory - added:
export vAdr - added:
export vBinary - added:
export vBoolean - added:
export vBroken - added:
export vCalAddress - added:
export vCategory - added:
export vDDDLists - added:
export vDDDTypes - added:
export vDate - added:
export vDatetime - added:
export vDuration - added:
export vFloat - added:
export vFrequency - added:
export vGeo - added:
export vInline - added:
export vInt - added:
export vMonth - added:
export vN - added:
export vOrg - added:
export vPeriod - added:
export vRecur - added:
export vSkip - added:
export vText - added:
export vTime - added:
export vUTCOffset - added:
export vUid - added:
export vUnknown - added:
export vUri - added:
export vWeekday - added:
export vXmlReference - added:
variable VPROPERTY: TypeAlias
- added:
class AdrFields(NamedTuple) - added:
class vAdr - added:
constructor vAdr(fields: tuple[str, ...] | list[str] | str | AdrFields, /, params: dict[str, Any] | None=…) -> None - added:
field AdrFields.country: str - added:
field AdrFields.extended: str - added:
field AdrFields.locality: str - added:
field AdrFields.po_box: str - added:
field AdrFields.postal_code: str - added:
field AdrFields.region: str - added:
field AdrFields.street: str - added:
field vAdr.default_value: ClassVar[str] - added:
field vAdr.fields: AdrFields - added:
field vAdr.params: Parameters - added:
method vAdr.to_ical() -> bytes - added:
method vAdr.to_jcal(name: str) -> list - added:
property vAdr.ical_value -> AdrFields - added:
static method vAdr.examples() -> list[Self] - added:
static method vAdr.from_ical(ical: str | bytes) -> AdrFields - added:
static method vAdr.from_jcal(jcal_property: list) -> Self
- added:
class vBinary - added:
constructor vBinary(obj: str | bytes, params: dict[str, str] | None=…) -> None - added:
field vBinary.bytes: bytes - added:
field vBinary.default_value: ClassVar[str] - added:
field vBinary.params: Parameters - added:
method vBinary.to_ical() -> bytes - added:
method vBinary.to_jcal(name: str) -> list - added:
property vBinary.base64data -> str - added:
property vBinary.ical_value -> bytes - added:
property vBinary.obj -> str - added:
static method vBinary.examples() -> list[Self] - added:
static method vBinary.from_ical(ical: str | bytes) -> bytes - added:
static method vBinary.from_jcal(jcal_property: list) -> Self
- added:
class vBoolean(int) - added:
field vBoolean.BOOL_MAP - added:
field vBoolean.default_value: ClassVar[str] - added:
field vBoolean.params: Parameters - added:
method vBoolean.to_ical() -> bytes - added:
method vBoolean.to_jcal(name: str) -> list - added:
property vBoolean.ical_value -> bool - added:
static method vBoolean.examples() -> list[Self] - added:
static method vBoolean.from_ical(ical: str) -> bool - added:
static method vBoolean.from_jcal(jcal_property: list) -> Self
- added:
class vBroken(vText) - added:
field vBroken.default_value: ClassVar[str] - added:
static method vBroken.examples() -> list[Self] - added:
static method vBroken.from_parse_error(raw_value: str, params: Parameters, property_name: str, expected_type: str, error: Exception) -> Self
- added:
class vCalAddress(str) - added:
field vCalAddress.default_value: ClassVar[str] - added:
field vCalAddress.name - added:
field vCalAddress.params: Parameters - added:
method vCalAddress.to_ical() -> bytes - added:
method vCalAddress.to_jcal(name: str) -> list - added:
property vCalAddress.email -> str - added:
property vCalAddress.ical_value -> str - added:
static method vCalAddress.examples() -> list[Self] - added:
static method vCalAddress.from_ical(ical: str | bytes) -> Self - added:
static method vCalAddress.from_jcal(jcal_property: list) -> Self - added:
static method vCalAddress.new(email: str, /, cn: str | None=…, cutype: str | None=…, delegated_from: str | None=…, delegated_to: str | None=…, directory: str | None=…, language: str | None=…, partstat: str | None=…, role: str | None=…, rsvp: bool | None=…, sent_by: str | None=…) -> Self
- added:
class vCategory - added:
constructor vCategory(c_list: list[str] | str, /, params: dict[str, Any] | None=…) -> None - added:
field vCategory.default_value: ClassVar[str] - added:
field vCategory.params: Parameters - added:
method vCategory.to_ical() -> bytes - added:
method vCategory.to_jcal(name: str) -> list - added:
property vCategory.ical_value -> list[str] - added:
static method vCategory.examples() -> list[Self] - added:
static method vCategory.from_ical(ical: list[str] | str) -> list[str] - added:
static method vCategory.from_jcal(jcal_property: list) -> Self
- added:
class Conference - added:
field Conference.feature: list[str] | str | None - added:
field Conference.label: str | None - added:
field Conference.language: str | None - added:
field Conference.uri: str - added:
method Conference.to_uri() -> vUri - added:
static method Conference.from_uri(uri: vUri | str) -> Conference
- added:
export DT_TYPE - added:
export TimeBase - added:
export vDDDLists - added:
export vDDDTypes - added:
export vDate - added:
export vDatetime - added:
export vDuration - added:
export vPeriod - added:
export vTime - added:
export vUTCOffset
- added:
class TimeBase - added:
field TimeBase.default_value: ClassVar[str] - added:
field TimeBase.ignore_for_equality - added:
field TimeBase.params: Parameters
- added:
class vDate(TimeBase) - added:
constructor vDate(dt: date, params: dict[str, Any] | None=…) -> None - added:
field vDate.default_value: ClassVar[str] - added:
field vDate.params: Parameters - added:
method vDate.to_ical() - added:
method vDate.to_jcal(name: str) -> list - added:
static method vDate.examples() -> list[Self] - added:
static method vDate.from_ical(ical) - added:
static method vDate.from_jcal(jcal_property: list) -> Self - added:
static method vDate.parse_jcal_value(jcal: str) -> date
- added:
class vDatetime(TimeBase) - added:
constructor vDatetime(dt: datetime, /, params: dict[str, Any] | None=…) -> None - added:
field vDatetime.default_value: ClassVar[str] - added:
field vDatetime.params: Parameters - added:
method vDatetime.is_utc() -> bool - added:
method vDatetime.to_ical() - added:
method vDatetime.to_jcal(name: str) -> list - added:
static method vDatetime.examples() -> list[Self] - added:
static method vDatetime.from_ical(ical, timezone=…) - added:
static method vDatetime.from_jcal(jcal_property: list) -> Self - added:
static method vDatetime.parse_jcal_value(jcal: str) -> datetime
- added:
class vDuration(TimeBase) - added:
constructor vDuration(td: timedelta | str, /, params: dict[str, Any] | None=…) -> None - added:
field vDuration.default_value: ClassVar[str] - added:
field vDuration.params: Parameters - added:
method vDuration.to_ical() - added:
method vDuration.to_jcal(name: str) -> list - added:
property vDuration.dt -> timedelta - added:
static method vDuration.examples() -> list[Self] - added:
static method vDuration.from_ical(ical) - added:
static method vDuration.from_jcal(jcal_property: list) -> Self - added:
static method vDuration.parse_jcal_value(jcal: str) -> timedelta
- added:
class vDDDLists - added:
constructor vDDDLists(dt_list, params: dict[str, Any] | None=…) -> None - added:
field vDDDLists.default_value: ClassVar[str] - added:
field vDDDLists.dts: list[vDDDTypes] - added:
field vDDDLists.params: Parameters - added:
method vDDDLists.to_ical() - added:
method vDDDLists.to_jcal(name: str) -> list - added:
static method vDDDLists.examples() -> list[Self] - added:
static method vDDDLists.from_ical(ical, timezone=…) - added:
static method vDDDLists.from_jcal(jcal_property: list) -> Self
- added:
class vPeriod(TimeBase) - added:
constructor vPeriod(per: tuple[date | datetime, date | datetime | timedelta], params: dict[str, Any] | None=…) -> None - added:
field vPeriod.by_duration: bool - added:
field vPeriod.default_value: ClassVar[str] - added:
field vPeriod.duration: timedelta - added:
field vPeriod.end: datetime - added:
field vPeriod.params: Parameters - added:
field vPeriod.start: datetime - added:
method vPeriod.overlaps(other) - added:
method vPeriod.to_ical() - added:
method vPeriod.to_jcal(name: str) -> list - added:
property vPeriod.dt - added:
property vPeriod.ical_value -> tuple[datetime, timedelta | datetime] - added:
static method vPeriod.examples() -> list[Self] - added:
static method vPeriod.from_ical(ical, timezone=…) - added:
static method vPeriod.from_jcal(jcal_property: list) -> Self - added:
static method vPeriod.parse_jcal_value(jcal: str | list) -> tuple[datetime, datetime] | tuple[datetime, timedelta]
- added:
class vTime(TimeBase) - added:
constructor vTime(*args: Any, params: dict[str, Any] | None=…) -> None - added:
field vTime.default_value: ClassVar[str] - added:
field vTime.params: Parameters - added:
method vTime.is_utc() -> bool - added:
method vTime.to_ical() - added:
method vTime.to_jcal(name: str) -> list - added:
static method vTime.examples() -> list[Self] - added:
static method vTime.from_ical(ical: str, timezone: str | None | tzinfo=…) -> time - added:
static method vTime.from_jcal(jcal_property: list) -> Self - added:
static method vTime.parse_jcal_value(jcal: str) -> time
- added:
class vDDDTypes(TimeBase) - added:
constructor vDDDTypes(dt: DT_TYPE, params: dict[str, Any] | None=…) -> None - added:
field vDDDTypes.default_value: ClassVar[str] - added:
field vDDDTypes.dt: DT_TYPE - added:
field vDDDTypes.params: Parameters - added:
method vDDDTypes.to_ical() -> bytes - added:
method vDDDTypes.to_jcal(name: str) -> list - added:
method vDDDTypes.to_property_type() -> vDatetime | vDate | vDuration | vTime | vPeriod - added:
property vDDDTypes.dts -> list - added:
property vDDDTypes.td -> timedelta - added:
static method vDDDTypes.examples() -> list[vDDDTypes] - added:
static method vDDDTypes.from_ical(ical, timezone=…) - added:
static method vDDDTypes.from_jcal(jcal_property: list) -> Self - added:
static method vDDDTypes.parse_jcal_value(jcal: str | list) -> timedelta - added:
variable DT_TYPE: TypeAlias
- added:
class vUTCOffset - added:
constructor vUTCOffset(td: timedelta, /, params: dict[str, Any] | None=…) -> None - added:
field vUTCOffset.default_value: ClassVar[str] - added:
field vUTCOffset.ignore_exceptions - added:
field vUTCOffset.params: Parameters - added:
method vUTCOffset.format(divider: str=…) -> str - added:
method vUTCOffset.to_ical() -> str - added:
method vUTCOffset.to_jcal(name: str) -> list - added:
static method vUTCOffset.examples() -> list[Self] - added:
static method vUTCOffset.from_ical(ical) - added:
static method vUTCOffset.from_jcal(jcal_property: list) -> Self
- added:
class TypesFactory(CaselessDict) - added:
constructor TypesFactory(*args: Any, **kwargs: Any) -> None - added:
field TypesFactory.types_map - added:
method TypesFactory.default_value_type(name: str) -> str - added:
method TypesFactory.for_property(name, value_param: str | None=…) -> type - added:
method TypesFactory.from_ical(name, value) - added:
method TypesFactory.instance() -> TypesFactory - added:
method TypesFactory.to_ical(name, value)
- added:
class vFloat(float) - added:
field vFloat.default_value: ClassVar[str] - added:
field vFloat.params: Parameters - added:
method vFloat.to_ical() -> bytes - added:
method vFloat.to_jcal(name: str) -> list - added:
property vFloat.ical_value -> float - added:
static method vFloat.examples() -> list[Self] - added:
static method vFloat.from_ical(ical: str | float) -> Self - added:
static method vFloat.from_jcal(jcal_property: list) -> Self
- added:
class vGeo - added:
constructor vGeo(geo: tuple[float | str | int, float | str | int], /, params: dict[str, Any] | None=…) -> None - added:
field vGeo.default_value: ClassVar[str] - added:
field vGeo.params: Parameters - added:
method vGeo.to_ical() -> str - added:
method vGeo.to_jcal(name: str) -> list - added:
property vGeo.ical_value -> tuple[float, float] - added:
static method vGeo.examples() -> list[Self] - added:
static method vGeo.from_ical(ical: str) -> tuple[float, float] - added:
static method vGeo.from_jcal(jcal_property: list) -> Self
- added:
class Image - added:
constructor Image(uri: str | None=…, b64data: str | None=…, fmttype: str | None=…, altrep: str | None=…, display: str | None=…) -> None - added:
property Image.data -> bytes | None - added:
static method Image.from_property_value(value: vUri | vBinary | vText) -> Image
- added:
class vInline(str) - added:
field vInline.params: Parameters - added:
method vInline.to_ical() -> bytes - added:
static method vInline.from_ical(ical: ICAL_TYPE) -> Self
- added:
class vInt(int) - added:
field vInt.default_value: ClassVar[str] - added:
field vInt.max: ClassVar[int] - added:
field vInt.min: ClassVar[int] - added:
field vInt.params: Parameters - added:
method vInt.to_ical() -> bytes - added:
method vInt.to_jcal(name: str) -> list - added:
property vInt.ical_value -> int - added:
static method vInt.examples() -> list[Self] - added:
static method vInt.from_ical(ical: ICAL_TYPE) - added:
static method vInt.from_jcal(jcal_property: list) -> Self - added:
static method vInt.parse_jcal_value(value: Any) -> int
- added:
class NFields(NamedTuple) - added:
class vN - added:
constructor vN(fields: tuple[str, ...] | list[str] | str | NFields, /, params: dict[str, Any] | None=…) -> None - added:
field NFields.additional: str - added:
field NFields.family: str - added:
field NFields.given: str - added:
field NFields.prefix: str - added:
field NFields.suffix: str - added:
field vN.default_value: ClassVar[str] - added:
field vN.fields: NFields - added:
field vN.params: Parameters - added:
method vN.to_ical() -> bytes - added:
method vN.to_jcal(name: str) -> list - added:
property vN.ical_value -> NFields - added:
static method vN.examples() -> list[Self] - added:
static method vN.from_ical(ical: str | bytes) -> NFields - added:
static method vN.from_jcal(jcal_property: list) -> Self
- added:
class vOrg - added:
constructor vOrg(fields: tuple[str, ...] | list[str] | str, /, params: dict[str, Any] | None=…) -> None - added:
field vOrg.default_value: ClassVar[str] - added:
field vOrg.fields: tuple[str, ...] - added:
field vOrg.params: Parameters - added:
method vOrg.to_ical() -> bytes - added:
method vOrg.to_jcal(name: str) -> list - added:
property vOrg.ical_value -> tuple[str, ...] - added:
property vOrg.name -> str - added:
property vOrg.units -> tuple[str, ...] - added:
static method vOrg.examples() -> list[Self] - added:
static method vOrg.from_ical(ical: str | bytes) -> tuple[str, ...] - added:
static method vOrg.from_jcal(jcal_property: list) -> Self
- added:
export vFrequency - added:
export vMonth - added:
export vRecur - added:
export vSkip - added:
export vWeekday
- added:
class vFrequency(str) - added:
field vFrequency.frequencies - added:
field vFrequency.params: Parameters - added:
method vFrequency.to_ical() - added:
property vFrequency.ical_value -> str - added:
static method vFrequency.from_ical(ical) - added:
static method vFrequency.parse_jcal_value(value: Any) -> Self
- added:
class vMonth(int) - added:
field vMonth.params: Parameters - added:
method vMonth.to_ical() -> bytes - added:
property vMonth.leap -> bool - added:
static method vMonth.from_ical(ical: str) - added:
static method vMonth.parse_jcal_value(value: Any) -> Self
- added:
class vRecur(CaselessDict) - added:
constructor vRecur(*args: Any, params: dict[str, Any] | None=…, **kwargs: Any) -> None - added:
field vRecur.canonical_order - added:
field vRecur.default_value: ClassVar[str] - added:
field vRecur.frequencies - added:
field vRecur.jcal_not_a_list - added:
field vRecur.params: Parameters - added:
field vRecur.types - added:
method vRecur.to_ical() - added:
method vRecur.to_jcal(name: str) -> list - added:
static method vRecur.examples() -> list[Self] - added:
static method vRecur.from_ical(ical: str) - added:
static method vRecur.from_jcal(jcal_property: list) -> Self - added:
static method vRecur.parse_type(key, values)
- added:
class vSkip(vText, Enum) - added:
field vSkip.BACKWARD - added:
field vSkip.FORWARD - added:
field vSkip.OMIT - added:
static method vSkip.parse_jcal_value(value: Any) -> Self
- added:
class vWeekday(str) - added:
field vWeekday.params: Parameters - added:
field vWeekday.week_days - added:
method vWeekday.to_ical() - added:
property vWeekday.ical_value -> str - added:
static method vWeekday.from_ical(ical) - added:
static method vWeekday.parse_jcal_value(value: Any) -> Self
- added:
class vText(str) - added:
field vText.default_value: ClassVar[str] - added:
field vText.params: Parameters - added:
method vText.to_ical() -> bytes - added:
method vText.to_jcal(name: str) -> list - added:
property vText.ical_value -> str - added:
static method vText.examples() -> list[Self] - added:
static method vText.from_ical(ical: ICAL_TYPE) -> Self - added:
static method vText.from_jcal(jcal_property: list) -> Self - added:
static method vText.parse_jcal_value(jcal_value: Any) -> Self
- added:
class vUid(vText) - added:
field vUid.default_value: ClassVar[str] - added:
property vUid.ical_value -> str - added:
property vUid.uid -> str - added:
static method vUid.examples() -> list[Self] - added:
static method vUid.new() -> Self
- added:
class vUnknown(str) - added:
field vUnknown.default_value: ClassVar[str] - added:
field vUnknown.params: Parameters - added:
method vUnknown.to_ical() -> bytes - added:
method vUnknown.to_jcal(name: str) -> list - added:
property vUnknown.ical_value -> str - added:
static method vUnknown.examples() -> list[Self] - added:
static method vUnknown.from_ical(ical: ICAL_TYPE) -> Self - added:
static method vUnknown.from_jcal(jcal_property: list) -> Self - added:
static method vUnknown.get_value_from_content_line(line: Contentline) -> str - added:
static method vUnknown.parse_jcal_value(jcal_value: Any) -> Self
- added:
class vUri(str) - added:
field vUri.default_value: ClassVar[str] - added:
field vUri.params: Parameters - added:
method vUri.to_ical() -> bytes - added:
method vUri.to_jcal(name: str) -> list - added:
property vUri.ical_value -> str - added:
property vUri.uri -> str - added:
static method vUri.examples() -> list[Self] - added:
static method vUri.from_ical(ical: str | bytes) -> Self - added:
static method vUri.from_jcal(jcal_property: list) -> Self
- added:
class vXmlReference(vUri) - added:
field vXmlReference.default_value: ClassVar[str] - added:
property vXmlReference.x_pointer -> str | None - added:
property vXmlReference.xml_reference -> str - added:
static method vXmlReference.examples() -> list[Self]
- added:
export is_utc
- changed:
method TZProvider.knows_timezone_id(id: str) -> bool → method TZProvider.knows_timezone_id(tzid: str) -> bool - changed:
method TZProvider.timezone(name: str) -> Optional[tzinfo] → method TZProvider.timezone(name: str) -> tzinfo | None
- changed:
method PYTZ.create_timezone(tz: cal.Timezone) -> tzinfo → method PYTZ.create_timezone(tz: Timezone.Timezone) -> tzinfo - changed:
method PYTZ.knows_timezone_id(id: str) -> bool → method PYTZ.knows_timezone_id(tzid: str) -> bool - changed:
method PYTZ.timezone(name: str) -> Optional[tzinfo] → method PYTZ.timezone(name: str) -> tzinfo | None
- changed:
function tzid_from_dt(dt: datetime) -> Optional[str] → function tzid_from_dt(dt: datetime) -> str | None - changed:
function tzid_from_tzinfo(tzinfo: Optional[tzinfo]) -> Optional[str] → function tzid_from_tzinfo(tzinfo: tzinfo | None) -> str | None - changed:
function tzids_from_tzinfo(tzinfo: Optional[tzinfo]) -> tuple[str] → function tzids_from_tzinfo(tzinfo: tzinfo | None) -> tuple[str] - added:
function is_utc(t: datetime | time | date | tzinfo) -> bool
- changed:
constructor TZP(provider: Union[str, TZProvider]=…) → constructor TZP(provider: str | TZProvider=…) -> None - changed:
method TZP.cache_timezone_component(timezone_component: cal.Timezone) -> None → method TZP.cache_timezone_component(timezone_component: Timezone.Timezone) -> None - changed:
method TZP.create_timezone(timezone_component: cal.Timezone) -> datetime.tzinfo → method TZP.create_timezone(timezone_component: Timezone.Timezone) -> datetime.tzinfo - changed:
method TZP.localize(dt: datetime.date, tz: Union[datetime.tzinfo, str, None]) -> datetime.datetime → method TZP.localize(dt: datetime.datetime, tz: datetime.tzinfo | str | None) -> datetime.datetime | (dt: datetime.time, tz: datetime.tzinfo | str | None) -> datetime.time - changed:
method TZP.timezone(tz_id: str) -> Optional[datetime.tzinfo] → method TZP.timezone(tz_id: str) -> datetime.tzinfo | None - changed:
method TZP.use(provider: Union[str, TZProvider]) → method TZP.use(provider: str | TZProvider) - changed:
method TZP.use_default() → method TZP.use_default() -> None
- added:
variable version - added:
variable version_date
- removed:
field ZONEINFO.utc - changed:
method ZONEINFO.create_timezone(tz: cal.Timezone) -> tzinfo → method ZONEINFO.create_timezone(tz: Timezone.Timezone) -> tzinfo - changed:
method ZONEINFO.knows_timezone_id(id: str) -> bool → method ZONEINFO.knows_timezone_id(tzid: str) -> bool - changed:
method ZONEINFO.timezone(name: str) -> Optional[tzinfo] → method ZONEINFO.timezone(name: str) -> tzinfo | None - added:
property ZONEINFO.utc -> zoneinfo.ZoneInfo
- removed:
class UIDGenerator - removed:
field UIDGenerator.chars - removed:
static method UIDGenerator.rnd_string(length=…) -> str - removed:
static method UIDGenerator.uid(host_name=…, unique=…) - changed:
function is_date(dt: date) -> bool → function is_date(dt: date | datetime) -> bool - changed:
function is_datetime(dt: date) -> bool → function is_datetime(dt: date | datetime) -> TypeIs[datetime] - changed:
function is_pytz(tz: tzinfo) → function is_pytz(tz: tzinfo) -> bool - changed:
function is_pytz_dt(dt: date) → function is_pytz_dt(dt: date | datetime) -> TypeGuard[datetime] - changed:
function normalize_pytz(dt: date) → function normalize_pytz(dt: date | datetime) -> date | datetime - changed:
function to_datetime(dt: date) -> datetime → function to_datetime(dt: date | datetime) -> datetime