MCPcopy Index your code
hub / github.com/O365/python-o365 / get_availability

Method get_availability

O365/calendar.py:2060–2098  ·  view source on GitHub ↗

Returns the free/busy availability for a set of users in a given time frame :param list schedules: a list of strings (email addresses) :param datetime start: the start time frame to look for available space :param datetime end: the end time frame to look for availabl

(self, schedules, start, end, interval=60)

Source from the content-addressed store, hash-verified

2058 return self.event_constructor(parent=self, subject=subject)
2059
2060 def get_availability(self, schedules, start, end, interval=60):
2061 """
2062 Returns the free/busy availability for a set of users in a given time frame
2063 :param list schedules: a list of strings (email addresses)
2064 :param datetime start: the start time frame to look for available space
2065 :param datetime end: the end time frame to look for available space
2066 :param int interval: the number of minutes to look for space
2067 """
2068 url = self.build_url(self._endpoints.get('get_availability'))
2069
2070 data = {
2071 'startTime': self._build_date_time_time_zone(start),
2072 'endTime': self._build_date_time_time_zone(end),
2073 'availabilityViewInterval': interval,
2074 'schedules': schedules
2075 }
2076
2077 response = self.con.post(url, data=data)
2078 if not response:
2079 return []
2080
2081 data = response.json().get('value', [])
2082
2083 # transform dates and availabilityView
2084 availability_view_codes = {
2085 '0': 'free',
2086 '1': 'tentative',
2087 '2': 'busy',
2088 '3': 'out of office',
2089 '4': 'working elsewhere',
2090 }
2091 for schedule in data:
2092 a_view = schedule.get('availabilityView', '')
2093 schedule['availabilityView'] = [availability_view_codes.get(code, 'unkknown') for code in a_view]
2094 for item in schedule.get('scheduleItems', []):
2095 item['start'] = self._parse_date_time_time_zone(item.get('start'))
2096 item['end'] = self._parse_date_time_time_zone(item.get('end'))
2097
2098 return data

Callers

nothing calls this directly

Calls 6

build_urlMethod · 0.80
jsonMethod · 0.80
getMethod · 0.45
postMethod · 0.45

Tested by

no test coverage detected