in connectors/sources/microsoft_teams.py [0:0]
def get_calendar_detail(self, calendar):
body = ""
organizer = calendar.get("organizer", {}).get("emailAddress").get("name")
calendar_recurrence = calendar.get("recurrence")
if calendar_recurrence:
recurrence_range = calendar_recurrence.get("range")
pattern = calendar_recurrence.get("pattern")
occurrence = f"{pattern['interval']}" if pattern.get("interval") else ""
pattern_type = pattern.get("type", "")
# In case type of meeting is daily so body will be: Recurrence: Occurs every 1 day starting {startdate}
# until {enddate}
if pattern_type == "daily":
days = f"{occurrence} day"
# If type of meeting is yearly so body will be: Recurrence: Occurs every year on day 5 of march starting
# {date} until {enddate}
elif pattern_type in ["absoluteYearly", "relativeYearly"]:
day_pattern = (
f"on day {pattern['dayOfMonth']}"
if pattern.get("dayOfMonth")
else f"on {pattern['index']} {','.join(pattern['daysOfWeek'])}"
)
days = f"year {day_pattern} of {month_name[pattern['month']]}"
# If type of meeting is monthly so body will be: Recurrence: Occurs every month on day 5 of march
# starting {date} until {enddate}
elif pattern_type in ["absoluteMonthly", "relativeMonthly"]:
days_pattern = (
f"on day {pattern['dayOfMonth']}"
if pattern.get("dayOfMonth")
else f"on {pattern['index']} {','.join(pattern['daysOfWeek'])}"
)
days = f"{occurrence} month {days_pattern}"
# Else goes in weekly situation where body will be: Recurrence: Occurs Every 3 week on monday,tuesday,
# wednesday starting {date} until {enddate}
else:
week = ",".join(pattern.get("daysOfWeek"))
days = f"{occurrence} week on {week}"
date = (
f"{recurrence_range.get('startDate')}"
if recurrence_range.get("type", "") == "noEnd"
else f"{recurrence_range.get('startDate')} until {recurrence_range.get('endDate')}"
)
recurrence = f"Occurs Every {days} starting {date}"
body = f"Recurrence: {recurrence} Organizer: {organizer}"
else:
start_time = datetime.strptime(
calendar["start"]["dateTime"][:-4], USER_MEETING_DATETIME_FORMAT
).strftime("%d %b, %Y at %H:%M")
end_time = datetime.strptime(
calendar["end"]["dateTime"][:-4], USER_MEETING_DATETIME_FORMAT
).strftime("%d %b, %Y at %H:%M")
body = f"Schedule: {start_time} to {end_time} Organizer: {organizer}"
return body