IP Library Patent Application 15359805
Patent Application
App. No. 15/359,805

NATURAL LANGUAGE CALENDAR

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
15/359,805
Abstract

The described calendar system receives a natural language calendar request and parses the calendar request to generate one or more request components. The calendar system determines a calendar function based on the one or more request components, such as adding a meeting, modifying a meeting, or searching a calendar for keywords. If the calendar function is a new meeting, the calendar system identifies target calendars, e.g. calendars associated with one or more meeting invitees. Using the target calendars, the calendar system determines a list of open time slots in each of the target calendars. The calendar system provides the list of open time slots to the requester who chooses a meeting time slot from the list of open time slots. In response to receiving the selection, the calendar system causes a new meeting to be added to each of the target calendars in the meeting time slot.

Claims (78)

1 . A computer implemented method comprising:

parsing a calendar request and generating one or more request components,

wherein the calendar request is based on a natural language input,

wherein the one or more request components include a contact request component identifying a meeting invitee, and

wherein the meeting invitee is identified based on a comparison between text from the calendar request and one or more contacts of a requester who initiated the calendar request;

identifying target calendars including at least (A) a calendar associated with the requester and (B) a calendar associated with the meeting invitee;

determining a list of open time slots, wherein each open time slot in the list of open time slots is selected based on that time slot being open in each of the target calendars;

sending, to a client device associated with the requester, the list of open time slots;

receiving a selection of a meeting time slot, selected from the list of open time slots; and

in response to receiving the selection, causing an invitation for a new meeting to be sent to the meeting invitee.

2 . The computer implemented method of claim 1 , wherein the parsing the calendar request and generating the one or more request components further comprises:

comparing content from the calendar request to one or more mappings that map terms or phrases to semantics; and

generating at least one semantic request component based on one or more matches between the text from the calendar request and the one or more mappings;

wherein the method further comprises determining, based on the at least one semantic request component, that the calendar request is a request to setup a new meeting; and

wherein the determining the list of open time slots and causing an invitation for a new meeting to be sent to the meeting invitee are both in response to the determining that the calendar request is a request to setup a new meeting.

3 . The computer implemented method of claim 1 , wherein the natural language input is text input or audio input.

4 . The computer implemented method of claim 1 , wherein the parsing the calendar request to generate one or more request components further comprises selecting content between quotation marks to generate a string request component; and wherein a title for the new meeting is determined based on the string request component.

5 . The computer implemented method of claim 1 , further comprising:

causing a calendar application to render a calendar interface, including a text input field, on a display of a client device, the calendar interface displaying a representation of the calendar associated with the requester,

wherein the received calendar request was entered as text to the text input field; and

wherein the sending the list of open time slots causes rendering of the list of open time slots on a display of the client device.

6 . The computer implemented method of claim 1 ,

wherein the comparison between text from the calendar request and one or more contacts of a requester comprises accessing one or more contact lists associated with the requester;

wherein the parsing the calendar request and generating the one or more request components further comprises generating the at least one contact request component based on one or more matches between the text from of the calendar request and the one or more contact entries in the one or more accessed contacts lists; and

wherein at least one of the generated contact request components includes information, taken from the accessed contact list, that was not part of the calendar request.

7 . The computer implemented method of claim 1 , wherein the parsing the calendar request and generating the one or more request components further comprises:

identifying content from the calendar request as indicating a duration; and

generating a duration request component, the duration request components including a computed duration value based on a corresponding portion of the calendar request,

wherein the determining the list of open time slots comprises determining open time slots that are as large as the duration value.

8 . The computer implemented method of claim 1 , wherein the parsing the calendar request and generating the one or more request components further comprises:

identifying content from the calendar request as indicating a date; and

generating a date request component, the date request components including a computed date value based on a corresponding portion of the calendar request,

wherein the determining the list of open time slots comprises determining open time slots that match the date value.

9 . The computer implemented method of claim 1 , wherein determining the list of open time slots comprises:

determining a category for the calendar request; and

limiting the list of open time slots to open time slots that fall within a timeframe or date range established for the category.

10 . The computer implemented method of claim 1 wherein determining the list of open time slots further comprises limiting the number of open time slots to a predetermined number of open time slots.

11 . A non-transitory computer-readable medium storing computer-executable code that, when executed by a computing system, cause the computing system to perform operations comprising:

receiving a calendar request;

parsing the calendar request and generating one or more request components;

identifying one or more target calendars including at least one calendar associated with a contact of a requester who initiated the request;

determining open time slots, wherein each particular open time slot of the open time slots is selected based on that particular time slot being open in each of the target calendars;

receiving a selection of a meeting time slot, selected from the open time slots; and

in response to receiving the selection, causing a new meeting to be added, in the meeting time slot, to a calendar of the requester.

12 . The non-transitory computer-readable medium of claim 11 , wherein the causing the new meeting to be added, in the meeting time slot, to the calendar of the requestor comprises:

sending a meeting command to a calendar server to have the new meeting created.

13 . The non-transitory computer-readable medium of claim 11 , wherein the selection of a meeting time slot is received from a client device, the selection received in response to the sending of the list of open time slots to the client device.

14 . The non-transitory computer-readable medium of claim 11 , wherein the calendar request is a natural language request.

15 . The non-transitory computer-readable medium of claim 11 , wherein the operations further comprise:

causing a calendar application to render a calendar interface, including a text input field, on a display of a client device, the calendar interface displaying a representation of the calendar associated with the requester,

wherein the received calendar request was entered as text to the text input field; and

wherein the sending the list of open time slots causes rendering of the list of open time slots on a display of the client device.

16 . The non-transitory computer-readable medium of claim 11 , wherein the parsing the calendar request and generating the one or more request components further comprises:

comparing content from the calendar request to one or more mappings that map terms or phrases to semantics; and

generating at least one semantic request component based on one or more matches between the text from the calendar request and the one or more mappings;

wherein the method further comprises determining, based on the at least one semantic request component, that the calendar request is a request to setup a new meeting; and

wherein the determining the list of open time slots and causing an invitation for a new meeting to be sent to the invitee are both in response to the determining that the calendar request is a request to setup a new meeting.

17 . The non-transitory computer-readable medium of claim 16 , wherein the parsing the calendar request and generating the one or more request components further comprises:

identifying content from the calendar request as indicating a duration; and

generating a duration request component, the duration request components including a computed duration value based on a corresponding portion of the calendar request,

wherein the determining the list of open time slots comprises determining open time slots that are as large as the duration value.

18 . The non-transitory computer-readable medium of claim 16 , wherein the parsing the calendar request and generating the one or more request components further comprises:

identifying content from the calendar request as indicating a date; and

generating a date request component, the date request components including a computed date value based on a corresponding portion of the calendar request,

wherein the determining the list of open time slots comprises determining open time slots that match the date value.

19 . The non-transitory computer-readable medium of claim 11 ,

wherein the identifying the one or more target calendars including the at least one calendar associated with a contact of a requester who initiated the request is based on a comparison between text from the calendar request and one or more contacts of the requester, wherein the comparison comprises accessing a contact list associated with the requester;

wherein the parsing the calendar request and generating the one or more request components further comprises generating the at least one contact request component based on one or more matches between the text from of the calendar request and the one or more contact entries in the one or more accessed contacts lists; and

wherein at least one of the generated contact request components includes information, taken from the accessed contact list, that was not part of the calendar request.

20 . An apparatus comprising:

a memory configured to store instructions; and

a processor configured to execute instructions to:

receive, from a requester, a calendar request that identifies a meeting invitee;

parse the calendar request and generate one or more request components, wherein at least one of the request components identifies a meeting invitee;

identify one or more target calendars including at least a calendar associated with the meeting invitee, wherein the calendar associated with the meeting invitee is identified based on a comparison of text of the calendar request with contacts of the requestor;

determine open time slots, wherein each particular open time slot of the open time slots is selected based on that particular time slot being open in each of the one or more target calendars;

send, to a client device associated with the requester, indications of the open time slots; and

receive, from the client device, a selection of a meeting time slot, selected from the open time slots.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: DROPBOX, INC.
Reel/Frame 069635/0332 →
RELEASE OF SECURITY INTEREST Recorded Dec 12, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: DROPBOX, INC.
Reel/Frame 069613/0744 →
PATENT SECURITY AGREEMENT Recorded Mar 10, 2021
From: DROPBOX, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 055670/0219 →
SECURITY INTEREST Recorded Apr 14, 2017
From: DROPBOX, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 042254/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 23, 2016
From: LIPS, REGINALD
To: DROPBOX, INC.
Reel/Frame 040410/0874 →