def get_busy_slots_for_date(email_id, fetch_date, debug=False): "Get the busy slots for a given date" service = gcal.base_gcal() busy_slots = [] pto_flag = False event_organizer_list = [] if service: all_events = gcal.get_events_for_date(service, email_id, fetch_date) if all_events: for event in all_events: event_organizer = event['organizer']['email'] event_organizer_list.append(event_organizer) if 'summary' in event.keys(): event_name = event['summary'].split(':')[-1].strip() event_name = event_name.split()[0] if 'PTO'.lower() == event_name.lower(): pto_flag = True break else: pto_flag = True if pto_flag: busy_slots = gcal.make_day_busy(fetch_date) else: busy_slots = gcal.get_busy_slots_for_date(service, email_id, fetch_date, timeZone=gcal.TIMEZONE, debug=debug) return busy_slots, pto_flag
def create_event_for_fetched_date_and_time(email,date,selected_slot): "Create an event for fetched date and time" service = gcal.base_gcal() create_event_start_time,create_event_end_time = combine_date_and_time(date,selected_slot) create_event = gcal.create_event_for_fetched_date_and_time(service,email,create_event_start_time,create_event_end_time, SUMMARY,LOCATION,DESCRIPTION,ATTENDEE) created_event_info = append_the_create_event_info(create_event) return created_event_info
def get_events_for_date(email_id, fetch_date, maxResults=240, debug=False): "Get all the events for a fetched date" service = gcal.base_gcal() events = gcal.get_events_for_date(service, email_id, fetch_date, debug=debug) return events
def create_event_for_fetched_date_and_time(date,emails,selected_slot): "Create an event for fetched date and time" service = gcal.base_gcal() if ',' in emails: attendee_email_id = emails.split(',') attendee_email_id = random.choice(attendee_email_id) else: attendee_email_id = emails create_event_start_time,create_event_end_time = combine_date_and_time(date,selected_slot) create_event = gcal.create_event_for_fetched_date_and_time(service,create_event_start_time,create_event_end_time, SUMMARY,LOCATION,DESCRIPTION,attendee_email_id) created_event_info = append_the_create_event_info(create_event) return created_event_info
def get_busy_slots_for_date(email_id,fetch_date,debug=False): "Get the busy slots for a given date" service = gcal.base_gcal() all_events = gcal.get_events_for_date(service,email_id,fetch_date) pto_flag = False for event in all_events: if 'summary' in event.keys(): if 'PTO' in event['summary']: pto_flag = True break if pto_flag: busy_slots = gcal.make_day_busy(fetch_date) else: busy_slots = gcal.get_busy_slots_for_date(service,email_id,fetch_date,timeZone=gcal.TIMEZONE,debug=debug) return busy_slots
def get_busy_slots_for_date(email_id,fetch_date,debug=False): "Get the busy slots for a given date" service = gcal.base_gcal() all_events = gcal.get_events_for_date(service,email_id,fetch_date) pto_flag = False for event in all_events: if 'summary' in event.keys(): event_name = event['summary'].split(':')[-1].strip() event_name = event_name.split()[0] if 'PTO'.lower() == event_name.lower(): pto_flag = True break if pto_flag: busy_slots = gcal.make_day_busy(fetch_date) else: busy_slots = gcal.get_busy_slots_for_date(service,email_id,fetch_date,timeZone=gcal.TIMEZONE,debug=debug) return busy_slots
def get_busy_slots_for_fetched_email_id(email_id, fetch_date, debug=False): "Get the busy slots for a given date" service = gcal.base_gcal() busy_slots = [] event_organizer_list = [] if service: all_events = gcal.get_events_for_date(service, email_id, fetch_date) if all_events: for event in all_events: event_organizer = event['organizer']['email'] event_organizer_list.append(event_organizer) busy_slots = gcal.get_busy_slots_for_date(service, email_id, fetch_date, timeZone=gcal.TIMEZONE, debug=debug) return busy_slots
def create_event_for_fetched_date_and_time(date, interviewer_emails, candidate_email, selected_slot, round_name, round_description): "Create an event for fetched date and time" service = gcal.base_gcal() interviewer_candidate_email = [] if ',' in interviewer_emails: attendee_email_id = interviewer_emails.split(',') picked_email_id = pick_interviewer(attendee_email_id, date) else: picked_email_id = interviewer_emails interviewer_candidate_email.append(picked_email_id) interviewer_candidate_email.append(candidate_email) #Fetch interviewers name from the email fetch_interviewer_name = Interviewers.query.filter( Interviewers.interviewer_email == picked_email_id).values( Interviewers.interviewer_name) for interviewer_name in fetch_interviewer_name: chosen_interviewer_name = interviewer_name.interviewer_name #Fetch candidate info fetch_candidate_name = Candidates.query.filter( Candidates.candidate_email == candidate_email).values( Candidates.candidate_name, Candidates.job_applied) for candidate_details in fetch_candidate_name: candidate_name = candidate_details.candidate_name candidate_job = candidate_details.job_applied res = ''.join(random.choices(string.ascii_uppercase + string.digits, k=7)) jitsi_link = "https://meet.jit.si/interviewScheduler/%s" % res LOCATION = jitsi_link SUMMARY = candidate_name + '/' + chosen_interviewer_name + '-' + candidate_job description = "Round name : " + round_name + '\n\n' + 'Round description : ' + round_description + " Use the Jitsi link to join the meeting " + jitsi_link create_event_start_time, create_event_end_time = combine_date_and_time( date, selected_slot) create_event = gcal.create_event_for_fetched_date_and_time( service, create_event_start_time, create_event_end_time, SUMMARY, LOCATION, description, interviewer_candidate_email) created_event_info = append_the_create_event_info(create_event, picked_email_id, jitsi_link) return created_event_info