SlideShare a Scribd company logo
1 of 7
Download to read offline
International Journal on Natural Language Computing (IJNLC) Vol. 5, No.4, August 2016
DOI: 10.5121/ijnlc.2016.5404 49
INTELLIGENT CALENDAR SCHEDULER ON EMAILS
Sonali. K
Department of LTRC, IIIT, Hyderabad, Gaccibowli
ABSTRACT
In past years of research efforts many have tried to implement an automated system based on time
management. But besides calendaring, communication and collaboration event is negotiated. Based on
experience in developing and deploying an automated event scheduling system, this paper sets the
requirements for an intelligent calendar scheduler that retrieves emails from Gmail, and schedules all of
them by taking into account of the natural language and dissolving certain ambiguities. We outline all these
issues and schedule and proper calendar for the user and also change the according to the user’s
convenience or if timings clashes an alternating time is recommended.
KEYWORDS
Scheduler, python programming, Graphical user interface (GUI).
1. INTRODUCTION
Various electronic calendar applications are these days ubiquitous. Such as these common
commercial applications, like Google Calendar, and Microsoft Outlook. Among these
applications, some of them provide assistance with the related aspect of task management.
Indeed, these applications, doesn’t take into account the natural language conversions (e.g., “we
shall meet tomorrow”) the word “tomorrow” had to be converted to a date referring to the date at
which the client is referring for, these ambiguities cannot be dissolved by these systems and so
are many (e.g., “The meeting is scheduled at 10”) the notion “10” here has to be identified as time
and not as a number. Our approach was to make a better one by using NLP techniques. Firstly
extracting emails from users Gmail account and parse through the sentences and extract the
person, location, time, date. Then schedule the activities removing ambiguities of not clashing the
timings and more.
Research in event scheduling has mainly concentrated for coordinating and arranging meetings
between groups of people and left out such conversions from natural language to machine
understandable scheduler system which results in poor overall utilization and unnecessary user
effort in overall time management. Our proposal is based on our experience from working on
systems like schedulers. We outline a rich set of ambiguities dissolved. We also sketch a
hierarchical preference model that could be used to evaluate alternative schedules. Finally, some
engineering issues are discussed that concern the development of an intelligent calendar assistant
based on the proposed model. The goal is to emphasize the multiple aspects remove the
ambiguities formed from natural language and inherent complexities of the problem of organizing
a user’s time and, thus, provide the ideas for implementations and subsequent formulations. In
this paper the logic is implemented in python programming language and GUI is designed in java.
International Journal on Natural Language Computing (IJNLC) Vol. 5, No.4, August 2016
50
2. PROBLEM FORMULATION
Before delving into the details of an event’s description, we would like to discuss our view of
hard and soft constraints. Organizing a user’s calendar is a very ambitious task to be accepted by
the user, so we expect from the system to be as flexible as possible by presenting to the user
severalalternative schedules and let him decide the best. Flexibility is greatly favoured by soft
constraints instead of hard ones. So, it is expected that the user will use as far as possible soft
constraints (i.e., preferences) to describe events and tasks. However, there are cases where several
value assignments to the decision variables are strongly prohibited. Here are some examples:
• If the user wants to attend a lecture, in this event has a very specific time and location.
There is little value in scheduling this event in another time or location.
• The user is attempting to organize a meeting with another participant (a two-person
meeting). In that case, the constraint that both participants are necessary for the meeting is hard;
there is no point in having a meeting without one of the participants!
• A location with specific features is required for a meeting.
Physical constraints such as that the duration of an event cannot be a negative value or that the
end time is equal to the sum of the start time and the duration. In all the above examples there are
some decision variables, such as the start time or the location, that have very specific acceptable
values or ranges of values. There is no point in assigning to these variables out-of-the- domain
values; in such cases it is preferable not to schedule the event at all! However, even in such cases,
whether an event can be omitted or not is something that the user decides. If an event is necessary
(another type of hard constraint), the system should include it if possible. So, provided that a
problem has been formulated with hard and soft constraints, we always prefer a schedule where
all hard constraints are satisfied.
3. METHODOLOGY
Scheduler aims at helping the user to schedule her own individual events. Each event is
characterized by its duration, date, and location (among several other attributes). The system tries
to accommodate the tasks within the user’s calendar, taking into account a variety of constraints
and ambiguities. It aims at helping the user to schedule events, while taking into account user
Preferences also. The system does not support overlapping of events. This is a consequence of the
fact that the system can solve a different scheduling problem where all events need a single
resource that is the user. The system is processed into 4 different phases:
International Journal on Natural Language Computing (IJNLC) Vol. 5, No.4, August 2016
51
Figure 1: Front page of scheduler.
3.1. Main function:
Extract emails from imaplib module in python starting from the recent mails to any number of
mails to be scheduled.
def mails():
_parser = HTMLParser.HTMLParser()
def listLastInbox(top = 3):
mailbox = imaplib.IMAP4_SSL('imap.gmail.com')
mailbox.login('USERNAME', 'PASSWORD')
selected = mailbox.select('[Gmail]/All Mail')
assert selected[0] == 'OK'
messageCount = int(selected[1][0])
for i in range(messageCount, messageCount - top, -1):
reponse = mailbox.fetch(str(i), '(RFC822)')[1]
typ, data = mailbox.fetch(i, '(UID BODY[TEXT])')
if __name__ == '__main__':
for message in listLastInbox():
3.2. Phase One:
Check whether its a scheduling mail or not by identifying synonyms of meeting in it.
//create a list of synonyms of meeting
lists1=["meet", "meeting", "join", "connect", "catch up", "get-together", "engagement",
International Journal on Natural Language Computing (IJNLC) Vol. 5, No.4, August 2016
52
"convention", "conclave", "event", "come"]
for words in data[0][1]:
if words in lists1:
break
3.3. Phase Two:
Synonyms of abort are searched for not scheduling the activity if the user doesn't want to. The
algorithm is similar to phase one.
Figure 2: Edit page of scheduler
3.4. Phase Three:
Checks whether synonyms of confirmation is there to proceed for final schedule. If it’s a
scheduling mail and confirmed for scheduling the body of the mail is written into a file. Then
read_blocks function is called where Stanford's software of Named Entity Recognition is used.
Where it parses through each words and names whether it's a name, location (organisation), time,
date, and stores them in its respective files.
def read_blocks(subjects):
for line in file:
entities=st.tag(line.split())
for i in entities:
if (j=='noon'):
International Journal on Natural Language Computing (IJNLC) Vol. 5, No.4, August 2016
53
//calculate the time that’s 12pm
if (i[count]=='PERSON'||'ORGANIZATION'||'LOCATION'||'DATE’||'TIME'):
//place the words in appropriate lists by appending them
Then a date function is called for correctly identifying its date if the user has written in words. It
identifies words like Monday, next then a date function is called for correctly identifying its date
if the user has written in words. The system can also cancel the scheduling after certain mails.
The system refers to previous discussions/email threads and consolidate across the same email
thread to schedule.
def dates():
for data in file:
if (data=="next"):
//calculate the date according to day mentioned in sentence based on the word “next”
if (data is a day)
//calculate the by (time.strftime(data+"-%m-%Y"))
Figure 3: Save and send confirmation.
3.5. Binary constraints:
No two events are scheduled at same time is taken care. Example two events like A and B events
are considered then either event A or B is scheduled on different time if they are clashing based
on user preferences.
International Journal on Natural Language Computing (IJNLC) Vol. 5, No.4, August 2016
54
3.6. Partial Scheduling:
A partial schedule is created if no schedule can be found that accommodates all tasks, the best
incomplete schedule is adopted and presented to the user. Furthermore, the user is informed of all
the changes and which tasks or parts of tasks were unable to schedule.
4. DECISION VARIABLES AND HARD CONSTRAINTS
In the following we use the term 'event' to refer to an event or a task interchangeably. Towards a
unified calendaring assistant that exploits AI scheduling, we propose attributes to include:
Duration range: All the meetings are fixed by default for 30 minutes.Time identification: if a
digit is given it identifies whether the person is asking to schedule it in am or pm only between
the time period go 8am to 6 pm otherwise a prompt is given to schedule it within the constraint
Allotting time period: if already a time period is taken then the user is prompted to schedule it in
another time. It can we work on the program differentiating between the following examples:
Task 1: "Let’s meet up tomorrow?" "Sure, let us meet at 5.00 pm.", "Okay, see you then." or
"Sure, I'll be there.": The program is able to reference the previous discussions/email threads and
understand what 'then' refers to and consolidate across the same email thread to schedule. "Then"
is critical to the discussion as it is the final confirmation on the meeting.
Task 2: "Let us meet tomorrow" vs. "I'll send you the report/file tomorrow”: The program should
be able to detect if it's a schedulable email or not. A key would be if the email thread has
variations of the words "meet", "meeting" and also, synonyms like "join", "connect", "catch up",
"get together", "engagement", "convention”, and “conclave “,” event".Some challenges while
disambiguating:
Example 1: "Can we meet tomorrow (or Thursday) at 5.00 pm": The system should be able to
pull out the date based on either the trigger "tomorrow" or "Thursday" and calendar for June 2nd
(tomorrow/Thurs).
Example 2: "Let us meet next Monday/the day after tomorrow at 5.00 pm": The system should be
able to pull out the date based on either the trigger "next Monday" or "the day after tomorrow"
and calendar accordingly.
Example 3: "Let us meet on May 5th at noon": The system should be able to pull out the time
(12.00 pm) based on the trigger "noon" and calendar accordingly.
Example 4: "Let us meet at Christie's": The system should be able to take "Christie's" as a place
(even if it's a friend's place) and not as a person's name and use it for calendaring "the location".
One clue could be in the preposition "at" which will not be used with a person's name.
5. CONCLUSIONS AND FUTURE WORK
This paper argues that organizing a user’s time in an automated way is an opportunity and a
challenging problem. Based on our experience in the field, we present a rich set of attributes and
ambiguities that can be used to model this problem. We also proposed a set of attributes that
could be used to evaluate alternative schedules. In the implementation of an intelligent calendar
assistant, we identify several engineering problems:
International Journal on Natural Language Computing (IJNLC) Vol. 5, No.4, August 2016
55
• Problem solving: A fast, but incomplete, search algorithm could be used to produce the
alternative schedules.
• Over constrained problems. The scheduler should always present a schedule to the user,
even if it is not possible to satisfy all hard constraints and ambiguities. Suggestions to relax such
constraints should be provided.
• Incremental scheduling. Contrary to the previous requirement, the system should also
give the user the option to keep its current scheduling parts as fixed as possible.
• Adaptively. The system should provide the user with to define new constraints and
preferences, over the decision variables. This can be achieved through a constraint programming
language. Thus, our next step is to develop a consistent and rigorous model using better
scheduling algorithms for the problem formulation described in this paper and to evaluate the
alternative schedules using a subset of the suggested evaluation model.
• Also implementing all the limitations like scheduling, calendaring across time zones,
incorporating user location maps, etc. In addition, it should also detect the issue of am or pm if
only digit is written comes when we are working across different time zones, (for e.g., 2.00 pm
IST vs. 2.00 pm PST).This constitutes our future work.
REFERENCES
[1] Ioannis Refanidis 1, 2 And Neil Yorke-Smith “On Scheduling Events And Tasks By An Intelligent
Calendar Assistant” 1-10
[2] Google Calendar “Https://Apps.Google.Com”
[3] Microsoft Outlook Https://Www.Microsoft.Com/En-In/Outlook-Com/
[4] Python Programming “Http://Learnpythonthehardway.Org/”
[5] Retrieve Emails “Http://Code.Runnable.Com”
[6] Send Emails “Http://Www.Tutorialspoint.Com”
[7] Python Programming “Https://Www.Codecademy.Com/”
Author
Sonali k,Student of National Institute of technology, Karnataka, 3rd
year, IT
branch. Passionate in research in the field of NLP.

More Related Content

Similar to INTELLIGENT CALENDAR SCHEDULER ON EMAILS

DebuggingMOZ04
DebuggingMOZ04DebuggingMOZ04
DebuggingMOZ04Gustavo Pabon
 
How Does MS Project Works 6- Task Controlling Factors
How Does MS Project Works 6- Task Controlling FactorsHow Does MS Project Works 6- Task Controlling Factors
How Does MS Project Works 6- Task Controlling FactorsSHAZEBALIKHAN1
 
Academic scheduling problem made easy through optimization
Academic scheduling problem made easy through optimizationAcademic scheduling problem made easy through optimization
Academic scheduling problem made easy through optimizationAlexander Decker
 
DGBSA : A BATCH JOB SCHEDULINGALGORITHM WITH GA WITH REGARD TO THE THRESHOLD ...
DGBSA : A BATCH JOB SCHEDULINGALGORITHM WITH GA WITH REGARD TO THE THRESHOLD ...DGBSA : A BATCH JOB SCHEDULINGALGORITHM WITH GA WITH REGARD TO THE THRESHOLD ...
DGBSA : A BATCH JOB SCHEDULINGALGORITHM WITH GA WITH REGARD TO THE THRESHOLD ...IJCSEA Journal
 
TEMPORALLY EXTENDED ACTIONS FOR REINFORCEMENT LEARNING BASED SCHEDULERS
TEMPORALLY EXTENDED ACTIONS FOR REINFORCEMENT LEARNING BASED SCHEDULERSTEMPORALLY EXTENDED ACTIONS FOR REINFORCEMENT LEARNING BASED SCHEDULERS
TEMPORALLY EXTENDED ACTIONS FOR REINFORCEMENT LEARNING BASED SCHEDULERSijscai
 
Temporally Extended Actions For Reinforcement Learning Based Schedulers
Temporally Extended Actions For Reinforcement Learning Based Schedulers Temporally Extended Actions For Reinforcement Learning Based Schedulers
Temporally Extended Actions For Reinforcement Learning Based Schedulers IJSCAI Journal
 
Analysis of Agile and Multi-Agent Based Process Scheduling Model
Analysis of Agile and Multi-Agent Based Process Scheduling ModelAnalysis of Agile and Multi-Agent Based Process Scheduling Model
Analysis of Agile and Multi-Agent Based Process Scheduling Modelirjes
 
An Efficient And Scalable Meeting Minutes Generation And Presentation Technique
An Efficient And Scalable Meeting Minutes Generation And Presentation TechniqueAn Efficient And Scalable Meeting Minutes Generation And Presentation Technique
An Efficient And Scalable Meeting Minutes Generation And Presentation TechniqueDaniel Wachtel
 
Simulation of Process Scheduling Algorithms
Simulation of Process Scheduling AlgorithmsSimulation of Process Scheduling Algorithms
Simulation of Process Scheduling Algorithmsijtsrd
 
Cache mechanism to avoid dulpication of same thing in hadoop system to speed ...
Cache mechanism to avoid dulpication of same thing in hadoop system to speed ...Cache mechanism to avoid dulpication of same thing in hadoop system to speed ...
Cache mechanism to avoid dulpication of same thing in hadoop system to speed ...eSAT Journals
 
ESTIMATING HANDLING TIME OF SOFTWARE DEFECTS
ESTIMATING HANDLING TIME OF SOFTWARE DEFECTSESTIMATING HANDLING TIME OF SOFTWARE DEFECTS
ESTIMATING HANDLING TIME OF SOFTWARE DEFECTScsandit
 
An Introduction To The Resource Constrained Project Scheduling Problem Solvin...
An Introduction To The Resource Constrained Project Scheduling Problem Solvin...An Introduction To The Resource Constrained Project Scheduling Problem Solvin...
An Introduction To The Resource Constrained Project Scheduling Problem Solvin...Courtney Esco
 
2.6 use of ict in time management
2.6 use of ict in time management2.6 use of ict in time management
2.6 use of ict in time managementHaa'Meem Mohiyuddin
 
Dynamic Web Service Composition based on Network Modeling with Statistical An...
Dynamic Web Service Composition based on Network Modeling with Statistical An...Dynamic Web Service Composition based on Network Modeling with Statistical An...
Dynamic Web Service Composition based on Network Modeling with Statistical An...ijwscjournal
 
Dynamic Web Service Composition based on Network Modeling with Statistical An...
Dynamic Web Service Composition based on Network Modeling with Statistical An...Dynamic Web Service Composition based on Network Modeling with Statistical An...
Dynamic Web Service Composition based on Network Modeling with Statistical An...ijwscjournal
 
Time Table Reminder Andorid App SRS
Time Table Reminder Andorid App SRSTime Table Reminder Andorid App SRS
Time Table Reminder Andorid App SRSAnjali Agrawal
 
Vworkbench – The best time management software.
Vworkbench – The best time management software.Vworkbench – The best time management software.
Vworkbench – The best time management software.vworkbench
 
Concurrency Issues in Object-Oriented Modeling
Concurrency Issues in Object-Oriented ModelingConcurrency Issues in Object-Oriented Modeling
Concurrency Issues in Object-Oriented ModelingIRJET Journal
 

Similar to INTELLIGENT CALENDAR SCHEDULER ON EMAILS (20)

DebuggingMOZ04
DebuggingMOZ04DebuggingMOZ04
DebuggingMOZ04
 
How Does MS Project Works 6- Task Controlling Factors
How Does MS Project Works 6- Task Controlling FactorsHow Does MS Project Works 6- Task Controlling Factors
How Does MS Project Works 6- Task Controlling Factors
 
Academic scheduling problem made easy through optimization
Academic scheduling problem made easy through optimizationAcademic scheduling problem made easy through optimization
Academic scheduling problem made easy through optimization
 
DGBSA : A BATCH JOB SCHEDULINGALGORITHM WITH GA WITH REGARD TO THE THRESHOLD ...
DGBSA : A BATCH JOB SCHEDULINGALGORITHM WITH GA WITH REGARD TO THE THRESHOLD ...DGBSA : A BATCH JOB SCHEDULINGALGORITHM WITH GA WITH REGARD TO THE THRESHOLD ...
DGBSA : A BATCH JOB SCHEDULINGALGORITHM WITH GA WITH REGARD TO THE THRESHOLD ...
 
TEMPORALLY EXTENDED ACTIONS FOR REINFORCEMENT LEARNING BASED SCHEDULERS
TEMPORALLY EXTENDED ACTIONS FOR REINFORCEMENT LEARNING BASED SCHEDULERSTEMPORALLY EXTENDED ACTIONS FOR REINFORCEMENT LEARNING BASED SCHEDULERS
TEMPORALLY EXTENDED ACTIONS FOR REINFORCEMENT LEARNING BASED SCHEDULERS
 
Temporally Extended Actions For Reinforcement Learning Based Schedulers
Temporally Extended Actions For Reinforcement Learning Based Schedulers Temporally Extended Actions For Reinforcement Learning Based Schedulers
Temporally Extended Actions For Reinforcement Learning Based Schedulers
 
Analysis of Agile and Multi-Agent Based Process Scheduling Model
Analysis of Agile and Multi-Agent Based Process Scheduling ModelAnalysis of Agile and Multi-Agent Based Process Scheduling Model
Analysis of Agile and Multi-Agent Based Process Scheduling Model
 
An Efficient And Scalable Meeting Minutes Generation And Presentation Technique
An Efficient And Scalable Meeting Minutes Generation And Presentation TechniqueAn Efficient And Scalable Meeting Minutes Generation And Presentation Technique
An Efficient And Scalable Meeting Minutes Generation And Presentation Technique
 
Simulation of Process Scheduling Algorithms
Simulation of Process Scheduling AlgorithmsSimulation of Process Scheduling Algorithms
Simulation of Process Scheduling Algorithms
 
Cache mechanism to avoid dulpication of same thing in hadoop system to speed ...
Cache mechanism to avoid dulpication of same thing in hadoop system to speed ...Cache mechanism to avoid dulpication of same thing in hadoop system to speed ...
Cache mechanism to avoid dulpication of same thing in hadoop system to speed ...
 
Project Scheduling
Project SchedulingProject Scheduling
Project Scheduling
 
ESTIMATING HANDLING TIME OF SOFTWARE DEFECTS
ESTIMATING HANDLING TIME OF SOFTWARE DEFECTSESTIMATING HANDLING TIME OF SOFTWARE DEFECTS
ESTIMATING HANDLING TIME OF SOFTWARE DEFECTS
 
An Introduction To The Resource Constrained Project Scheduling Problem Solvin...
An Introduction To The Resource Constrained Project Scheduling Problem Solvin...An Introduction To The Resource Constrained Project Scheduling Problem Solvin...
An Introduction To The Resource Constrained Project Scheduling Problem Solvin...
 
2.6 use of ict in time management
2.6 use of ict in time management2.6 use of ict in time management
2.6 use of ict in time management
 
Dynamic Web Service Composition based on Network Modeling with Statistical An...
Dynamic Web Service Composition based on Network Modeling with Statistical An...Dynamic Web Service Composition based on Network Modeling with Statistical An...
Dynamic Web Service Composition based on Network Modeling with Statistical An...
 
Dynamic Web Service Composition based on Network Modeling with Statistical An...
Dynamic Web Service Composition based on Network Modeling with Statistical An...Dynamic Web Service Composition based on Network Modeling with Statistical An...
Dynamic Web Service Composition based on Network Modeling with Statistical An...
 
Time Table Reminder Andorid App SRS
Time Table Reminder Andorid App SRSTime Table Reminder Andorid App SRS
Time Table Reminder Andorid App SRS
 
Vworkbench – The best time management software.
Vworkbench – The best time management software.Vworkbench – The best time management software.
Vworkbench – The best time management software.
 
Concurrency Issues in Object-Oriented Modeling
Concurrency Issues in Object-Oriented ModelingConcurrency Issues in Object-Oriented Modeling
Concurrency Issues in Object-Oriented Modeling
 
genetic paper
genetic papergenetic paper
genetic paper
 

Recently uploaded

ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityVictorSzoltysek
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaWSO2
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightSafe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseWSO2
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)Samir Dash
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....rightmanforbloodline
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfdanishmna97
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAnitaRaj43
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard37
 

Recently uploaded (20)

ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps Productivity
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using Ballerina
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern Enterprise
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cf
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 

INTELLIGENT CALENDAR SCHEDULER ON EMAILS

  • 1. International Journal on Natural Language Computing (IJNLC) Vol. 5, No.4, August 2016 DOI: 10.5121/ijnlc.2016.5404 49 INTELLIGENT CALENDAR SCHEDULER ON EMAILS Sonali. K Department of LTRC, IIIT, Hyderabad, Gaccibowli ABSTRACT In past years of research efforts many have tried to implement an automated system based on time management. But besides calendaring, communication and collaboration event is negotiated. Based on experience in developing and deploying an automated event scheduling system, this paper sets the requirements for an intelligent calendar scheduler that retrieves emails from Gmail, and schedules all of them by taking into account of the natural language and dissolving certain ambiguities. We outline all these issues and schedule and proper calendar for the user and also change the according to the user’s convenience or if timings clashes an alternating time is recommended. KEYWORDS Scheduler, python programming, Graphical user interface (GUI). 1. INTRODUCTION Various electronic calendar applications are these days ubiquitous. Such as these common commercial applications, like Google Calendar, and Microsoft Outlook. Among these applications, some of them provide assistance with the related aspect of task management. Indeed, these applications, doesn’t take into account the natural language conversions (e.g., “we shall meet tomorrow”) the word “tomorrow” had to be converted to a date referring to the date at which the client is referring for, these ambiguities cannot be dissolved by these systems and so are many (e.g., “The meeting is scheduled at 10”) the notion “10” here has to be identified as time and not as a number. Our approach was to make a better one by using NLP techniques. Firstly extracting emails from users Gmail account and parse through the sentences and extract the person, location, time, date. Then schedule the activities removing ambiguities of not clashing the timings and more. Research in event scheduling has mainly concentrated for coordinating and arranging meetings between groups of people and left out such conversions from natural language to machine understandable scheduler system which results in poor overall utilization and unnecessary user effort in overall time management. Our proposal is based on our experience from working on systems like schedulers. We outline a rich set of ambiguities dissolved. We also sketch a hierarchical preference model that could be used to evaluate alternative schedules. Finally, some engineering issues are discussed that concern the development of an intelligent calendar assistant based on the proposed model. The goal is to emphasize the multiple aspects remove the ambiguities formed from natural language and inherent complexities of the problem of organizing a user’s time and, thus, provide the ideas for implementations and subsequent formulations. In this paper the logic is implemented in python programming language and GUI is designed in java.
  • 2. International Journal on Natural Language Computing (IJNLC) Vol. 5, No.4, August 2016 50 2. PROBLEM FORMULATION Before delving into the details of an event’s description, we would like to discuss our view of hard and soft constraints. Organizing a user’s calendar is a very ambitious task to be accepted by the user, so we expect from the system to be as flexible as possible by presenting to the user severalalternative schedules and let him decide the best. Flexibility is greatly favoured by soft constraints instead of hard ones. So, it is expected that the user will use as far as possible soft constraints (i.e., preferences) to describe events and tasks. However, there are cases where several value assignments to the decision variables are strongly prohibited. Here are some examples: • If the user wants to attend a lecture, in this event has a very specific time and location. There is little value in scheduling this event in another time or location. • The user is attempting to organize a meeting with another participant (a two-person meeting). In that case, the constraint that both participants are necessary for the meeting is hard; there is no point in having a meeting without one of the participants! • A location with specific features is required for a meeting. Physical constraints such as that the duration of an event cannot be a negative value or that the end time is equal to the sum of the start time and the duration. In all the above examples there are some decision variables, such as the start time or the location, that have very specific acceptable values or ranges of values. There is no point in assigning to these variables out-of-the- domain values; in such cases it is preferable not to schedule the event at all! However, even in such cases, whether an event can be omitted or not is something that the user decides. If an event is necessary (another type of hard constraint), the system should include it if possible. So, provided that a problem has been formulated with hard and soft constraints, we always prefer a schedule where all hard constraints are satisfied. 3. METHODOLOGY Scheduler aims at helping the user to schedule her own individual events. Each event is characterized by its duration, date, and location (among several other attributes). The system tries to accommodate the tasks within the user’s calendar, taking into account a variety of constraints and ambiguities. It aims at helping the user to schedule events, while taking into account user Preferences also. The system does not support overlapping of events. This is a consequence of the fact that the system can solve a different scheduling problem where all events need a single resource that is the user. The system is processed into 4 different phases:
  • 3. International Journal on Natural Language Computing (IJNLC) Vol. 5, No.4, August 2016 51 Figure 1: Front page of scheduler. 3.1. Main function: Extract emails from imaplib module in python starting from the recent mails to any number of mails to be scheduled. def mails(): _parser = HTMLParser.HTMLParser() def listLastInbox(top = 3): mailbox = imaplib.IMAP4_SSL('imap.gmail.com') mailbox.login('USERNAME', 'PASSWORD') selected = mailbox.select('[Gmail]/All Mail') assert selected[0] == 'OK' messageCount = int(selected[1][0]) for i in range(messageCount, messageCount - top, -1): reponse = mailbox.fetch(str(i), '(RFC822)')[1] typ, data = mailbox.fetch(i, '(UID BODY[TEXT])') if __name__ == '__main__': for message in listLastInbox(): 3.2. Phase One: Check whether its a scheduling mail or not by identifying synonyms of meeting in it. //create a list of synonyms of meeting lists1=["meet", "meeting", "join", "connect", "catch up", "get-together", "engagement",
  • 4. International Journal on Natural Language Computing (IJNLC) Vol. 5, No.4, August 2016 52 "convention", "conclave", "event", "come"] for words in data[0][1]: if words in lists1: break 3.3. Phase Two: Synonyms of abort are searched for not scheduling the activity if the user doesn't want to. The algorithm is similar to phase one. Figure 2: Edit page of scheduler 3.4. Phase Three: Checks whether synonyms of confirmation is there to proceed for final schedule. If it’s a scheduling mail and confirmed for scheduling the body of the mail is written into a file. Then read_blocks function is called where Stanford's software of Named Entity Recognition is used. Where it parses through each words and names whether it's a name, location (organisation), time, date, and stores them in its respective files. def read_blocks(subjects): for line in file: entities=st.tag(line.split()) for i in entities: if (j=='noon'):
  • 5. International Journal on Natural Language Computing (IJNLC) Vol. 5, No.4, August 2016 53 //calculate the time that’s 12pm if (i[count]=='PERSON'||'ORGANIZATION'||'LOCATION'||'DATE’||'TIME'): //place the words in appropriate lists by appending them Then a date function is called for correctly identifying its date if the user has written in words. It identifies words like Monday, next then a date function is called for correctly identifying its date if the user has written in words. The system can also cancel the scheduling after certain mails. The system refers to previous discussions/email threads and consolidate across the same email thread to schedule. def dates(): for data in file: if (data=="next"): //calculate the date according to day mentioned in sentence based on the word “next” if (data is a day) //calculate the by (time.strftime(data+"-%m-%Y")) Figure 3: Save and send confirmation. 3.5. Binary constraints: No two events are scheduled at same time is taken care. Example two events like A and B events are considered then either event A or B is scheduled on different time if they are clashing based on user preferences.
  • 6. International Journal on Natural Language Computing (IJNLC) Vol. 5, No.4, August 2016 54 3.6. Partial Scheduling: A partial schedule is created if no schedule can be found that accommodates all tasks, the best incomplete schedule is adopted and presented to the user. Furthermore, the user is informed of all the changes and which tasks or parts of tasks were unable to schedule. 4. DECISION VARIABLES AND HARD CONSTRAINTS In the following we use the term 'event' to refer to an event or a task interchangeably. Towards a unified calendaring assistant that exploits AI scheduling, we propose attributes to include: Duration range: All the meetings are fixed by default for 30 minutes.Time identification: if a digit is given it identifies whether the person is asking to schedule it in am or pm only between the time period go 8am to 6 pm otherwise a prompt is given to schedule it within the constraint Allotting time period: if already a time period is taken then the user is prompted to schedule it in another time. It can we work on the program differentiating between the following examples: Task 1: "Let’s meet up tomorrow?" "Sure, let us meet at 5.00 pm.", "Okay, see you then." or "Sure, I'll be there.": The program is able to reference the previous discussions/email threads and understand what 'then' refers to and consolidate across the same email thread to schedule. "Then" is critical to the discussion as it is the final confirmation on the meeting. Task 2: "Let us meet tomorrow" vs. "I'll send you the report/file tomorrow”: The program should be able to detect if it's a schedulable email or not. A key would be if the email thread has variations of the words "meet", "meeting" and also, synonyms like "join", "connect", "catch up", "get together", "engagement", "convention”, and “conclave “,” event".Some challenges while disambiguating: Example 1: "Can we meet tomorrow (or Thursday) at 5.00 pm": The system should be able to pull out the date based on either the trigger "tomorrow" or "Thursday" and calendar for June 2nd (tomorrow/Thurs). Example 2: "Let us meet next Monday/the day after tomorrow at 5.00 pm": The system should be able to pull out the date based on either the trigger "next Monday" or "the day after tomorrow" and calendar accordingly. Example 3: "Let us meet on May 5th at noon": The system should be able to pull out the time (12.00 pm) based on the trigger "noon" and calendar accordingly. Example 4: "Let us meet at Christie's": The system should be able to take "Christie's" as a place (even if it's a friend's place) and not as a person's name and use it for calendaring "the location". One clue could be in the preposition "at" which will not be used with a person's name. 5. CONCLUSIONS AND FUTURE WORK This paper argues that organizing a user’s time in an automated way is an opportunity and a challenging problem. Based on our experience in the field, we present a rich set of attributes and ambiguities that can be used to model this problem. We also proposed a set of attributes that could be used to evaluate alternative schedules. In the implementation of an intelligent calendar assistant, we identify several engineering problems:
  • 7. International Journal on Natural Language Computing (IJNLC) Vol. 5, No.4, August 2016 55 • Problem solving: A fast, but incomplete, search algorithm could be used to produce the alternative schedules. • Over constrained problems. The scheduler should always present a schedule to the user, even if it is not possible to satisfy all hard constraints and ambiguities. Suggestions to relax such constraints should be provided. • Incremental scheduling. Contrary to the previous requirement, the system should also give the user the option to keep its current scheduling parts as fixed as possible. • Adaptively. The system should provide the user with to define new constraints and preferences, over the decision variables. This can be achieved through a constraint programming language. Thus, our next step is to develop a consistent and rigorous model using better scheduling algorithms for the problem formulation described in this paper and to evaluate the alternative schedules using a subset of the suggested evaluation model. • Also implementing all the limitations like scheduling, calendaring across time zones, incorporating user location maps, etc. In addition, it should also detect the issue of am or pm if only digit is written comes when we are working across different time zones, (for e.g., 2.00 pm IST vs. 2.00 pm PST).This constitutes our future work. REFERENCES [1] Ioannis Refanidis 1, 2 And Neil Yorke-Smith “On Scheduling Events And Tasks By An Intelligent Calendar Assistant” 1-10 [2] Google Calendar “Https://Apps.Google.Com” [3] Microsoft Outlook Https://Www.Microsoft.Com/En-In/Outlook-Com/ [4] Python Programming “Http://Learnpythonthehardway.Org/” [5] Retrieve Emails “Http://Code.Runnable.Com” [6] Send Emails “Http://Www.Tutorialspoint.Com” [7] Python Programming “Https://Www.Codecademy.Com/” Author Sonali k,Student of National Institute of technology, Karnataka, 3rd year, IT branch. Passionate in research in the field of NLP.