API description¶
Calendar¶
- class ics.icalendar.Calendar(imports=None, events=None, todos=None, creator=None)[source]¶
Represents an unique rfc5545 iCalendar.
- events¶
a set of Event contained in the Calendar
- todos¶
a set of Todo contained in the Calendar
- timeline¶
a Timeline instance linked to this Calendar
- __init__(imports=None, events=None, todos=None, creator=None)[source]¶
Instantiates a new Calendar.
- Parameters:
imports (str) – data to be imported into the Calendar,
events (Set[Event]) – Events to be added to the calendar
todos (Set[Todo]) – Todos to be added to the calendar
creator (string) – uid of the creator program.
If
imports
is specified, every other argument will be ignored.
- __iter__()[source]¶
Returns: iterable: an iterable version of seralize(), line per line (with line-endings).
- Return type:
Iterable
[str
]
Example
Can be used to write calendar to a file:
>>> c = Calendar(); c.events.add(Event(name="My cool event")) >>> open('my.ics', 'w').writelines(c)
- classmethod parse_multiple(string)[source]¶
” Parses an input string that may contain mutiple calendars and retruns a list of
ics.event.Calendar
- __hash__ = None¶
- property creator: str | None¶
Get or set the calendar’s creator.
Will return a string.May be set to a string.Creator is the PRODID iCalendar property.It uniquely identifies the program that created the calendar.
Event¶
- class ics.event.Event(name=None, begin=None, end=None, duration=None, uid=None, description=None, created=None, last_modified=None, location=None, url=None, transparent=None, alarms=None, attendees=None, categories=None, status=None, organizer=None, geo=None, classification=None)[source]¶
A calendar event.
Can be full-day or between two instants. Can be defined by a beginning instant and a duration or end instant.
Unsupported event attributes can be found in event.extra, a
ics.parse.Container
. You may add some by appending aics.parse.ContentLine
to .extra- __and__(other, *args, **kwarg)¶
Create a new event which covers the time range of two intersecting events
All extra parameters are passed to the Event constructor.
- Parameters:
other – the other event
- Returns:
a new Event instance
- __init__(name=None, begin=None, end=None, duration=None, uid=None, description=None, created=None, last_modified=None, location=None, url=None, transparent=None, alarms=None, attendees=None, categories=None, status=None, organizer=None, geo=None, classification=None)[source]¶
Instantiates a new
ics.event.Event
.- Parameters:
name (
Optional
[str
]) – rfc5545 SUMMARY propertybegin (Arrow-compatible) –
end (Arrow-compatible) –
duration (
Optional
[timedelta
]) –uid (
Optional
[str
]) – must be uniquedescription (
Optional
[str
]) –created (Arrow-compatible) –
last_modified (Arrow-compatible) –
location (
Optional
[str
]) –url (
Optional
[str
]) –transparent (
Optional
[bool
]) –alarms (
Optional
[Iterable
[BaseAlarm
]]) –attendees (
Optional
[Iterable
[Attendee
]]) –categories (
Optional
[Iterable
[str
]]) –status (
Optional
[str
]) –organizer (
Optional
[Organizer
]) –classification (
Optional
[str
]) –
- Raises:
ValueError – if end and duration are specified at the same time
- join(other, *args, **kwarg)[source]¶
Create a new event which covers the time range of two intersecting events
All extra parameters are passed to the Event constructor.
- Parameters:
other – the other event
- Returns:
a new Event instance
- make_all_day()[source]¶
Transforms self to an all-day event.
The event will span all the days from the begin to the end day.
- Return type:
None
- property all_day¶
Return: bool: self is an all-day event
- property begin: Arrow¶
Get or set the beginning of the event.
Will return anArrow
object.May be set to anything thatArrow.get()
understands.If an end is defined (not a duration), .begin must not be set to a superior value.
- property duration: timedelta | None¶
Get or set the duration of the event.
Will return a timedelta object.May be set to anything that timedelta() understands.May be set with a dict ({“days”:2, “hours”:6}).If set to a non null value, removes any already existing end time.
- property end: Arrow¶
Get or set the end of the event.
Will return anArrow
object.May be set to anything thatArrow.get()
understands.If set to a non null value, removes any already existing duration.Setting to None will have unexpected behavior if begin is not None.Must not be set to an inferior value than self.begin.
- property geo: Geo | None¶
Get or set the geo position of the event.
Will return a namedtuple object.May be set to any Geo, tuple or dict with latitude and longitude keys.If set to a non null value, removes any already existing geo.
Alarms¶
- class ics.alarm.base.BaseAlarm(trigger=None, repeat=None, duration=None)[source]¶
A calendar event VALARM base class
- __eq__(other)[source]¶
Two alarms are considered equal if they have the same type and base values.
- Return type:
bool
- __init__(trigger=None, repeat=None, duration=None)[source]¶
Instantiates a new
ics.alarm.BaseAlarm
.Adheres to RFC5545 VALARM standard: http://icalendar.org/iCalendar-RFC-5545/3-6-6-alarm-component.html
- Parameters:
trigger (datetime.timedelta OR datetime.datetime) – Timespan to alert before parent action, or absolute time to alert
repeat (integer) – How many times to repeat the alarm
duration (datetime.timedelta) – Duration between repeats
- Raises:
ValueError – If trigger, repeat, or duration do not match the RFC spec.
- __hash__ = None¶
- abstract property action¶
VALARM action to be implemented by concrete classes
- property duration: timedelta | None¶
Duration between alarm repeats
Returns a timedelta objectTimespan must return positive total_seconds() value
- property repeat: int | None¶
Number of times to repeat alarm
Returns an integer for number of alarm repeatsValue must be >= 0
- property trigger: timedelta | datetime | None¶
The trigger condition for the alarm
Returns either a timedelta or datetime object
- class ics.alarm.AudioAlarm(trigger=None, repeat=None, duration=None)[source]¶
A calendar event VALARM with AUDIO option.
- __init__(trigger=None, repeat=None, duration=None)[source]¶
Instantiates a new
ics.alarm.BaseAlarm
.Adheres to RFC5545 VALARM standard: http://icalendar.org/iCalendar-RFC-5545/3-6-6-alarm-component.html
- Parameters:
trigger (datetime.timedelta OR datetime.datetime) – Timespan to alert before parent action, or absolute time to alert
repeat (integer) – How many times to repeat the alarm
duration (datetime.timedelta) – Duration between repeats
- Raises:
ValueError – If trigger, repeat, or duration do not match the RFC spec.
- property action¶
VALARM action to be implemented by concrete classes
- class ics.alarm.DisplayAlarm(trigger=None, repeat=None, duration=None, display_text=None)[source]¶
A calendar event VALARM with DISPLAY option.
- __init__(trigger=None, repeat=None, duration=None, display_text=None)[source]¶
Instantiates a new
ics.alarm.BaseAlarm
.Adheres to RFC5545 VALARM standard: http://icalendar.org/iCalendar-RFC-5545/3-6-6-alarm-component.html
- Parameters:
trigger (datetime.timedelta OR datetime.datetime) – Timespan to alert before parent action, or absolute time to alert
repeat (integer) – How many times to repeat the alarm
duration (datetime.timedelta) – Duration between repeats
- Raises:
ValueError – If trigger, repeat, or duration do not match the RFC spec.
- property action¶
VALARM action to be implemented by concrete classes
- class ics.alarm.EmailAlarm(trigger=None, repeat=None, duration=None, subject=None, body=None, recipients=None)[source]¶
A calendar event VALARM with Email option.
- __init__(trigger=None, repeat=None, duration=None, subject=None, body=None, recipients=None)[source]¶
Instantiates a new
ics.alarm.BaseAlarm
.Adheres to RFC5545 VALARM standard: http://icalendar.org/iCalendar-RFC-5545/3-6-6-alarm-component.html
- Parameters:
trigger (datetime.timedelta OR datetime.datetime) – Timespan to alert before parent action, or absolute time to alert
repeat (integer) – How many times to repeat the alarm
duration (datetime.timedelta) – Duration between repeats
- Raises:
ValueError – If trigger, repeat, or duration do not match the RFC spec.
- property action¶
VALARM action to be implemented by concrete classes
- class ics.alarm.none.NoneAlarm(trigger=None, repeat=None, duration=None)[source]¶
A calendar event VALARM with NONE option.
- property action¶
VALARM action to be implemented by concrete classes
- class ics.alarm.custom.CustomAlarm(trigger=None, repeat=None, duration=None, action=None)[source]¶
A calendar event VALARM with custom ACTION.
- __init__(trigger=None, repeat=None, duration=None, action=None)[source]¶
Instantiates a new
ics.alarm.BaseAlarm
.Adheres to RFC5545 VALARM standard: http://icalendar.org/iCalendar-RFC-5545/3-6-6-alarm-component.html
- Parameters:
trigger (datetime.timedelta OR datetime.datetime) – Timespan to alert before parent action, or absolute time to alert
repeat (integer) – How many times to repeat the alarm
duration (datetime.timedelta) – Duration between repeats
- Raises:
ValueError – If trigger, repeat, or duration do not match the RFC spec.
- property action¶
VALARM action to be implemented by concrete classes
Timeline¶
- class ics.timeline.Timeline(calendar)[source]¶
- __init__(calendar)[source]¶
Instanciates a new Timeline. (You should not have to instanciate a new timeline by yourself)
- Parameters:
calendar –
ics.icalendar.Calendar
- __iter__()[source]¶
Iterates on every event from the
ics.icalendar.Calendar
in chronological order- Return type:
Iterator
[Event
]
- Note :
chronological order is defined by the comparaison operators in
ics.event.Event
Events with no begin will not appear here. (To list all events in a Calendar use Calendar.events)
- at(instant)[source]¶
Iterates (in chronological order) over all events that are occuring during instant.
- Parameters:
instant (Arrow object) –
- Return type:
Iterator
[Event
]
- included(start, stop)[source]¶
Iterates (in chronological order) over every event that is included in the timespan between start and stop
- Parameters:
start (
Arrow
) – (Arrow object)stop (
Arrow
) – (Arrow object)
- Return type:
Iterator
[Event
]
- now()[source]¶
Iterates (in chronological order) over all events that occurs now
- Return type:
Iterator
[Event
]
- on(day, strict=False)[source]¶
Iterates (in chronological order) over all events that occurs on day
- Parameters:
day (Arrow object) –
strict (bool) – if True events will be returned only if they are strictly included in day.
- Return type:
Iterator
[Event
]
- overlapping(start, stop)[source]¶
Iterates (in chronological order) over every event that has an intersection with the timespan between start and stop
- Parameters:
start (
Arrow
) – (Arrow object)stop (
Arrow
) – (Arrow object)
- Return type:
Iterator
[Event
]
- start_after(instant)[source]¶
Iterates (in chronological order) on every event from the
ics.icalendar.Calendar
in chronological order. The first event of the iteration has a starting date greater (later) than instant- Parameters:
instant (
Arrow
) – (Arrow object) starting point of the iteration- Return type:
Iterator
[Event
]
- today(strict=False)[source]¶
Iterates (in chronological order) over all events that occurs today
- Parameters:
strict (bool) – if True events will be returned only if they are strictly included in day.
- Return type:
Iterator
[Event
]
- __weakref__¶
list of weak references to the object (if defined)