API Reference¶
icalendar.cal¶
Calendar is a dictionary like Python object that can render itself as VCAL files according to rfc2445.
These are the defined components.
- class icalendar.cal.Calendar(*args, **kwargs)[source]¶
This is the base object for an iCalendar file.
- class icalendar.cal.Component(*args, **kwargs)[source]¶
Component is the base object for calendar, Event and the other components defined in RFC 2445. normally you will not use this class directy, but rather one of the subclasses.
- add(name, value, parameters=None, encode=1)[source]¶
Add a property.
- Parameters
name (string) – Name of the property.
value (Python native type or icalendar property type.) – Value of the property. Either of a basic Python type of any of the icalendar’s own property types.
parameters (Dictionary) – Property parameter dictionary for the value. Only available, if encode is set to True.
encode (Boolean) – True, if the value should be encoded to one of icalendar’s own property types (Fallback is “vText”) or False, if not.
- Returns
None
- classmethod from_ical(st, multiple=False)[source]¶
Populates the component recursively from a string.
- property_items(recursive=True, sorted=True)[source]¶
Returns properties in this component and subcomponents as: [(name, value), …]
- set_inline(name, values, encode=1)[source]¶
Converts a list of values into comma seperated string and sets value to that.
- class icalendar.cal.ComponentFactory(*args, **kwargs)[source]¶
All components defined in rfc 2445 are registered in this factory class. To get a component you can use it like this.
icalendar.prop¶
This module contains the parser/generators (or coders/encoders if you prefer) for the classes/datatypes that are used in iCalendar:
4.2 Defined property parameters are:
ALTREP, CN, CUTYPE, DELEGATED-FROM, DELEGATED-TO, DIR, ENCODING, FMTTYPE, FBTYPE, LANGUAGE, MEMBER, PARTSTAT, RANGE, RELATED, RELTYPE, ROLE, RSVP, SENT-BY, TZID, VALUE
4.3 Defined value data types are:
BINARY, BOOLEAN, CAL-ADDRESS, DATE, DATE-TIME, DURATION, FLOAT, INTEGER, PERIOD, RECUR, TEXT, TIME, URI, UTC-OFFSET
iCalendar properties have values. The values are strongly typed. This module defines these types, calling val.to_ical() on them will render them as defined in rfc2445.
If you pass any of these classes a Python primitive, you will have an object that can render itself as iCalendar formatted date.
Property Value Data Types start with a ‘v’. they all have an to_ical() and from_ical() method. The to_ical() method generates a text string in the iCalendar format. The from_ical() method can parse this format and return a primitive Python datatype. So it should always be true that:
x == vDataType.from_ical(VDataType(x).to_ical())
These types are mainly used for parsing and file generation. But you can set them directly.
- class icalendar.prop.TypesFactory(*args, **kwargs)[source]¶
All Value types defined in rfc 2445 are registered in this factory class.
The value and parameter names don’t overlap. So one factory is enough for both kinds.
- class icalendar.prop.vCalAddress(value, encoding='utf-8')[source]¶
This just returns an unquoted string.
- class icalendar.prop.vDDDTypes(dt)[source]¶
A combined Datetime, Date or Duration parser/generator. Their format cannot be confused, and often values can be of either types. So this is practical.
- class icalendar.prop.vDatetime(dt)[source]¶
Render and generates icalendar datetime format.
vDatetime is timezone aware and uses the pytz library, an implementation of the Olson database in Python. When a vDatetime object is created from an ical string, you can pass a valid pytz timezone identifier. When a vDatetime object is created from a python datetime object, it uses the tzinfo component, if present. Otherwise an timezone-naive object is created. Be aware that there are certain limitations with timezone naive DATE-TIME components in the icalendar standard.
- class icalendar.prop.vDuration(td)[source]¶
Subclass of timedelta that renders itself in the iCalendar DURATION format.
- class icalendar.prop.vFrequency(value, encoding='utf-8')[source]¶
A simple class that catches illegal values.
- class icalendar.prop.vInline(value, encoding='utf-8')[source]¶
This is an especially dumb class that just holds raw unparsed text and has parameters. Conversion of inline values are handled by the Component class, so no further processing is needed.