Recurrence

class gcsa.recurrence.Duration(w=None, d=None, h=None, m=None, s=None)

Represents properties that contain a duration of time.

Parameters:
  • w – weeks
  • d – days
  • h – hours
  • m – minutes
  • s – seconds
class gcsa.recurrence.Recurrence
static rule(freq='DAILY', interval=None, count=None, until=None, by_second=None, by_minute=None, by_hour=None, by_week_day=None, by_month_day=None, by_year_day=None, by_week=None, by_month=None, by_set_pos=None, week_start=<gcsa.recurrence._DayOfTheWeek object>)

This property defines a rule or repeating pattern for recurring events.

Parameters:
  • freq – Identifies the type of recurrence rule. Possible values are SECONDLY, HOURLY, MINUTELY, DAILY, WEEKLY, MONTHLY, YEARLY. Default: DAILY
  • interval – Positive integer representing how often the recurrence rule repeats
  • count – Number of occurrences at which to range-bound the recurrence
  • until – End date of recurrence
  • by_second – Second or list of seconds within a minute. Valid values are 0 to 60
  • by_minute – Minute or list of minutes within a hour. Valid values are 0 to 59
  • by_hour – Hour or list of hours of the day. Valid values are 0 to 23
  • by_week_day – Day or list of days of the week. Possible values: :py:class:~SUNDAY, :py:class:~MONDAY, :py:class:~TUESDAY, :py:class:~WEDNESDAY, :py:class:~THURSDAY ,:py:class:~FRIDAY, :py:class:~SATURDAY
  • by_month_day – Day or list of days of the month. Valid values are 1 to 31 or -31 to -1. For example, -10 represents the tenth to the last day of the month.
  • by_year_day – Day or list of days of the year. Valid values are 1 to 366 or -366 to -1. For example, -1 represents the last day of the year.
  • by_week – Ordinal or list of ordinals specifying weeks of the year. Valid values are 1 to 53 or -53 to -1.
  • by_month – Month or list of months of the year. Valid values are 1 to 12.
  • by_set_pos – Value or list of values which corresponds to the nth occurrence within the set of events specified by the rule. Valid values are 1 to 366 or -366 to -1. It can only be used in conjunction with another by_xxx parameter.
  • week_start – The day on which the workweek starts. Possible values: :py:class:~SUNDAY, :py:class:~MONDAY, :py:class:~TUESDAY, :py:class:~WEDNESDAY, :py:class:~THURSDAY ,:py:class:~FRIDAY, :py:class:~SATURDAY
Returns:

String representing specified recurrence rule in RRULE format.

Note

If none of the by_day, by_month_day, or by_year_day are specified, the day is gotten from start date.

static exclude_rule(freq='DAILY', interval=None, count=None, until=None, by_second=None, by_minute=None, by_hour=None, by_week_day=None, by_month_day=None, by_year_day=None, by_week=None, by_month=None, by_set_pos=None, week_start=<gcsa.recurrence._DayOfTheWeek object>)

This property defines an exclusion rule or repeating pattern for recurring events.

Parameters:
  • freq – Identifies the type of recurrence rule. Possible values are SECONDLY, HOURLY, MINUTELY, DAILY, WEEKLY, MONTHLY, YEARLY. Default: DAILY
  • interval – Positive integer representing how often the recurrence rule repeats
  • count – Number of occurrences at which to range-bound the recurrence
  • until – End date of recurrence
  • by_second – Second or list of seconds within a minute. Valid values are 0 to 60
  • by_minute – Minute or list of minutes within a hour. Valid values are 0 to 59
  • by_hour – Hour or list of hours of the day. Valid values are 0 to 23
  • by_week_day – Day or list of days of the week. Possible values: :py:class:~SUNDAY, :py:class:~MONDAY, :py:class:~TUESDAY, :py:class:~WEDNESDAY, :py:class:~THURSDAY ,:py:class:~FRIDAY, :py:class:~SATURDAY
  • by_month_day – Day or list of days of the month. Valid values are 1 to 31 or -31 to -1. For example, -10 represents the tenth to the last day of the month.
  • by_year_day – Day or list of days of the year. Valid values are 1 to 366 or -366 to -1. For example, -1 represents the last day of the year.
  • by_week – Ordinal or list of ordinals specifying weeks of the year. Valid values are 1 to 53 or -53 to -1.
  • by_month – Month or list of months of the year. Valid values are 1 to 12.
  • by_set_pos – Value or list of values which corresponds to the nth occurrence within the set of events specified by the rule. Valid values are 1 to 366 or -366 to -1. It can only be used in conjunction with another by_xxx parameter.
  • week_start – The day on which the workweek starts. Possible values: :py:class:~SUNDAY, :py:class:~MONDAY, :py:class:~TUESDAY, :py:class:~WEDNESDAY, :py:class:~THURSDAY ,:py:class:~FRIDAY, :py:class:~SATURDAY
Returns:

String representing specified recurrence rule in RRULE format.

Note

If none of the by_day, by_month_day, or by_year_day are specified, the day is gotten from start date.

static dates(ds)

Converts date(s) set to RDATE format.

Parameters:ds – date/datetime object or list of date/datetime objects
Returns:RDATE string of dates.
static times(dts, timezone='Etc/UTC')

Converts datetime(s) set to RDATE format.

Parameters:
  • dts – datetime object or list of datetime objects
  • timezone – Timezone formatted as an IANA Time Zone Database name, e.g. “Europe/Zurich”. By default, the computers local timezone is used if it is configured. UTC is used otherwise.
Returns:

RDATE string of datetimes with specified timezone.

static periods(ps, timezone='Etc/UTC')

Converts date period(s) to RDATE format.

Period is defined as tuple of starting date/datetime and ending date/datetime or duration as Duration object:
(date/datetime, date/datetime/Duration)
Parameters:
  • ps – Period or list of periods.
  • timezone – Timezone formatted as an IANA Time Zone Database name, e.g. “Europe/Zurich”. By default, the computers local timezone is used if it is configured. UTC is used otherwise.
Returns:

RDATE string of periods.

static exclude_dates(ds)

Converts date(s) set to EXDATE format.

Parameters:ds – date/datetime object or list of date/datetime objects
Returns:EXDATE string of dates.
static exclude_times(dts, timezone='Etc/UTC')

Converts datetime(s) set to EXDATE format.

Parameters:
  • dts – datetime object or list of datetime objects
  • timezone – Timezone formatted as an IANA Time Zone Database name, e.g. “Europe/Zurich”. By default, the computers local timezone is used if it is configured. UTC is used otherwise.
Returns:

EXDATE string of datetimes with specified timezone.

static exclude_periods(ps, timezone='Etc/UTC')

Converts date period(s) to EXDATE format.

Period is defined as tuple of starting date/datetime and ending date/datetime or duration as Duration object:
(date/datetime, date/datetime/Duration)
Parameters:
  • ps – Period or list of periods.
  • timezone – Timezone formatted as an IANA Time Zone Database name, e.g. “Europe/Zurich”. By default, the computers local timezone is used if it is configured. UTC is used otherwise.
Returns:

EXDATE string of periods.