[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

WO2024151812A1 - Location tracking for event attendance - Google Patents

Location tracking for event attendance Download PDF

Info

Publication number
WO2024151812A1
WO2024151812A1 PCT/US2024/011159 US2024011159W WO2024151812A1 WO 2024151812 A1 WO2024151812 A1 WO 2024151812A1 US 2024011159 W US2024011159 W US 2024011159W WO 2024151812 A1 WO2024151812 A1 WO 2024151812A1
Authority
WO
WIPO (PCT)
Prior art keywords
event
invitees
invitee
assistant system
organizer
Prior art date
Application number
PCT/US2024/011159
Other languages
French (fr)
Inventor
Kyler LAIRD
Original Assignee
Laird Kyler
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Laird Kyler filed Critical Laird Kyler
Publication of WO2024151812A1 publication Critical patent/WO2024151812A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/109Time management, e.g. calendars, reminders, meetings or time accounting
    • G06Q10/1093Calendar-based scheduling for persons or groups
    • G06Q10/1095Meeting or appointment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"

Definitions

  • an event organizer can be a time consuming and stressful job dealing with unforeseen circumstances. For instance, an event organizer or planner may discover that invitees are late or not even attending at all only after the event has begun.
  • late or absent invitees cause a variety of issues for organizers of meetings, parties, gatherings, and/or other events.
  • late or absent invitees disrupt the event, such as by causing a delay in the entire event, causing an event to be cancelled or rescheduled, reducing the quality of the event, and/or affecting the event in another way.
  • a unique system has been developed to address these as well as other issues.
  • the system provides a method for managing event invitees so that the organizer is aware of problems before plans are disrupted.
  • the system is able to integrate with existing scheduling applications and maintains the privacy of all users.
  • the organizer in one example creates an event that includes a location.
  • the organizer adds into the system or assistant all invitees to the event and any special Invitees along with their corresponding email addresses.
  • the assistant in one example is a remote computer system that is accessible over a network such as the Internet and/or a mobile data network via a mobile phone.
  • the computer system for the assistant includes memory and a processor for performing various activities via software and other types of algorithms, such as using artificial intelligence (Al) learning techniques.
  • the assistant maintains in memory, such as in the form of a database, an e-mail address that is associated with a specific personality for interacting with the event. When saving the event, the organizer sends e-mail invitations to the invitees.
  • the assistant Upon receiving the e-mailed invitation (such as an .ics file), the assistant parses and validates the event, notifying the organizer of any problems (such as invalid location). Valid events are added to the system database.
  • the assistant contacts all new invitees through e-mail to gather consent for assistance. Included in this consent is browser permission for geolocation and push notifications.
  • the assistant contacts the invitees through push notifications to gather current location and, in some cases, planned mode of transportation (e.g., walk, bike, public transit, personal vehicle, taxi/rideshare, air, etc.).
  • planned mode of transportation e.g., walk, bike, public transit, personal vehicle, taxi/rideshare, air, etc.
  • information concerning the current location but not the mode of transportation is gathered.
  • the mode of transportation is inferred, such as via travel velocity, current location, and the like. For instance, if the current location of the invitee or other user is at an airport or rail station, the system can infer that subsequent travel is via an airplane or train. This inference can be further bolstered based on the subsequent velocity and/or location. For instance, the velocity and/or location of the user can be indicative of flight or travel along a railway.
  • the system is configured to enhance the accuracy of these inferences of the modes of transportation.
  • the notification asks the intention of the user attending the event each time, and in some cases, the system attempts to gather the location of the user. If notifications go unread near the time when an Invitee needs to leave, further e-mail notifications are sent.
  • the assistant With the web app active, periodic location reports of the invitees are sent to the assistant.
  • the assistant tracks these locations and uses routing information to estimate the time of arrival (ETA) for each invitee.
  • the assistant sends the organizer a link to a web app that displays the real-time status of invitees.
  • locations are not shared, only the ETAs. When an ETA slips beyond the event start time, alerts are shown.
  • the assistant offers the organizer the option of sharing a link so that others are able to monitor the ETAs.
  • invitees are able to communicate with the organizer and other invitees through the app. This allows simple questions (e.g., "What's the gate code?”) and updates (e.g., "I brought donuts!) to be communicated to the group.
  • the status of the invitee changes to "on-site" or some other indicator of the invitee being close to the event location.
  • an "I'm here! button becomes available.
  • the assistant communicates to the organizer that the invitee has arrived and tracking ceases.
  • a photo is taken and shared to record the exact location and make meeting easier.
  • the system in one form is first deployed using a web app.
  • this system is expanded to include native apps such as those found on Android and iOS mobile phones.
  • New assistant behaviors can be added through new assistant e-mail addresses (e.g., betty@example.com orjohn@example.com). These behaviors allow different combinations of monitoring and reminder abilities.
  • one assistant is able to switch the role of the organizer and invitees, sending reminders to and tracking progress of the organizer and allowing one or more invitees to monitor ETA of the organizer. This is useful for delivery personnel and home equipment installers.
  • the assistant in another variation allows everyone to view everyone's progress and get reminders.
  • the system has opt-out capabilities for location tracking.
  • the system By the user responding to an e-mail and providing their intention on attending the event, the system is able to generally estimate the ETA without need of location sharing data or the user receiving multiple notifications. While the system is able to provide real-time estimates on times of arrival, the system is further configured to deidentify location data once the data is no longer needed to estimate the ETA so as to act in a trustworthy manner.
  • the system maintains anonymized location data that can be later analyzed to enhance the system. For example, if someone provides a location at a rapid transit station (e.g., a bus or rail station), the system is configured to start using scheduling data from the corresponding rapid transit system to determine the ETA of the individual.
  • a rapid transit station e.g., a bus or rail station
  • the system Instead of maintaining a link to each individual user for the location data, the system creates an event-specific identifier (ID) for each user. During event tracking, the system logs the location data with that event-specific ID. Once event tracking ends, such as when the user arrives at the event, when the user declines the event invitation, and/or when the event concludes, the system destroys the link between the user and the event-specific ID.
  • ID event-specific identifier
  • the system can provide useful information to the organizer of the event. For example, the system in one version maintains a log of invitees who affirmatively indicated an intention to attend the event at various times and then did not attend the event. The system tracks these types of statistics for each invitee. This resulting data can then be provided to the organizers of the event.
  • the assistant in one version uses event, routing, and affiliate data to offer promotional rewards. These rewards include providing special time-sensitive coupons for rewards (e.g., food, beverage, parking, etc.) along the route to the event to encourage leaving on time. Using event knowledge, specials may be offered to invitees such as lunch delivery for everyone involved in the event. Any event can be augmented to include a reward held in escrow. This may be a guarantee of being on-time (e.g., "Our installer will be on time, or you'll get $50.") or it could be a reward (e.g., "Come on time and receive $5.”). Encouraging workplace punctuality requires being fair to all involved.
  • the organizers are able to establish awards to be delivered impartially by the assistants when people achieve on-time goals over the course of multiple events (e.g., weekly, monthly, etc.).
  • a raffle function also allows the organizer to randomly select from those who were on time in order to award prizes locally.
  • the assistants learn from group behaviors and modify estimates accordingly (e.g., "How long does it take to park and get to the second floor of XXX?").
  • the assistants are further able to learn from individual behaviors and modify the offers the assistant makes (e.g., "Bob is always early when I offer a cookie.")
  • the users in one variation are invited to select a charitable organization. These organizations are able to receive donations from the system as a result of their users being on time to events (e.g., "Don't be late - donate!).
  • the users are able to generate embedded web badges that securely show how much their use of the system has benefitted their chosen charity. Events are checked for conflicts for each user.
  • alerts are issued to users unable to attend scheduled events (e.g., "You won't have time to get from A to B.”).
  • flight tracking is used to estimate time of arrival.
  • the rewards may be implemented as QR code coupons, NFC coupons, credits on store accounts or gift cards, and/or cryptocurrency.
  • Aspect 1 generally concerns a system.
  • Aspect 2 generally concerns the system of any previous aspect including an event assistant system.
  • Aspect 3 generally concerns the system of any previous aspect including an organizer.
  • Aspect 4 generally concerns the system of any previous aspect including a network.
  • Aspect 5 generally concerns the system of any previous aspect including an invitee.
  • Aspect 6 generally concerns the system of any previous aspect in which the event assistant system is a remote computer system.
  • Aspect 8 generally concerns the system of any previous aspect in which the event assistant system is configured to alert organizer when the ETA of an invitee is beyond the start time of the event.
  • Aspect 9 generally concerns the system of any previous aspect in which the event assistant system is configured to receive an event invitation for an event from an organizer.
  • Aspect 10 generally concerns the system of any previous aspect in which the network is configured to communicatively link the assistant, the organizer, and the invitee.
  • Aspect 11 generally concerns the system of any previous aspect in which the event assistant system is configured to manage one or more invitees for an event.
  • Aspect 12 generally concerns the system of any previous aspect in which the event assistant system is configured to allow the organizer to create an event.
  • Aspect 13 generally concerns the system of any previous aspect in which the event assistant system is configured to support the organizer by sending invites to the invitees.
  • Aspect 14 generally concerns the system of any previous aspect in which the event assistant system is configured to ask one or more invitees for permission to obtain routing data from one or more invitee devices.
  • Aspect 15 generally concerns the system of any previous aspect in which the event assistant system is configured to send a notification to the invitee to obtain current routing data of the invitee.
  • Aspect 16 generally concerns the system of any previous aspect in which the notification is a push notification.
  • Aspect 17 generally concerns the system of any previous aspect in which the routing data includes geolocation data of the invitee.
  • Aspect 18 generally concerns the system of any previous aspect in which the routing data includes mode of transportation used by the invitees.
  • Aspect 19 generally concerns the system of any previous aspect in which the event assistant system is configured to determine one or more estimated time of arrivals (ETAs) for the invitees based on the location data and the routing data.
  • ETAs estimated time of arrivals
  • Aspect 20 generally concerns the system of any previous aspect in which the event assistant system is configured to send an alert to the organizer device when the ETAs of any of the invitees are beyond a start time of the event.
  • Aspect 21 generally concerns the system of any previous aspect in which the event assistant system is configured to perform artificial intelligence algorithms.
  • Aspect 22 generally concerns the system of any previous aspect in which the event assistant system is configured to learn behavior of the organizer and invitees.
  • Aspect 23 generally concerns the system of any previous aspect in which the event assistant system is configured to offer rewards to the invitees.
  • Aspect 24 generally concerns the system of any previous aspect in which the rewards are determined based on the event and the routing data of the invitees.
  • Aspect 25 generally concerns the system of any previous aspect in which the event assistant system is configured to ask the invitees for geolocation and notification consent via the invitee devices.
  • Aspect 26 generally concerns the system of any previous aspect in which the event assistant system is configured to send notifications to one or more invitees to obtain current location and mode of transportation.
  • Aspect 27 generally concerns the system of any previous aspect in which the event assistant system is configured to determine estimated time of arrival (ETA) for one or more invitees based on location and routing data.
  • ETA estimated time of arrival
  • Aspect 28 generally concerns the system of any previous aspect in which the organizer is able to see ETA for each invitee using a web app.
  • Aspect 29 generally concerns the system of any previous aspect in which the event assistant system is configured to denote the invitee as present when the invitee is within range of the location of the event.
  • Aspect 30 generally concerns the system of any previous aspect in which the event assistant system is configured to offer promotional rewards based on event and routing data.
  • Aspect 31 generally concerns the system of any previous aspect in which the event assistant system allows a user to select a charity to receive rewards based on user behavior.
  • Aspect 32 generally concerns the system of any previous aspect in which the event assistant system is configured to learn user behavior to modify the ETAs for individuals and/or groups.
  • Aspect 33 generally concerns the system of any previous aspect in which the event assistant system is configured to send an email notification to the invitees if a push notification is unread.
  • Aspect 34 generally concerns the system of any previous aspect in which the event assistant system is configured to notify a user if the ETA of the user is beyond the start time of the event.
  • Aspect 35 generally concerns the system of any previous aspect in which the event invitation is an email.
  • Aspect 36 generally concerns the system of any previous aspect in which the event assistant system includes an email server.
  • Aspect 37 generally concerns the system of any previous aspect in which the event invitation identifies one or more email address for one or more invitees to the event.
  • Aspect 38 generally concerns the system of any previous aspect in which the event invitation includes a location for the event.
  • Aspect 39 generally concerns the system of any previous aspect in which the event assistant system is configured to validate the location of the event.
  • Aspect 40 generally concerns the system of any previous aspect in which the event invitation identifies one or more invitees to the event.
  • Aspect 41 generally concerns the system of any previous aspect in which the invitees have invitee devices.
  • Aspect 42 generally concerns the system of any previous aspect in which the event assistant system is configured to receive routing data from the invitee devices.
  • Aspect 43 generally concerns the system of any previous aspect in which the event assistant system is configured to receive location data from the invitee devices.
  • Aspect 44 generally concerns the system of any previous aspect in which the organizer has an organizer device.
  • Aspect 45 generally concerns the system of any previous aspect in which the event assistant system is configured to send the ETAs to an organizer device of the organizer.
  • Aspect 46 generally concerns the system of any previous aspect in which the event assistant system is only able to send the ETAs for the invitees to the organizer device.
  • Aspect 47 generally concerns the system of any previous aspect in which the event assistant system is unable to send the location data of the invitees to the organizer device.
  • Aspect 48 generally concerns the system of any previous aspect in which the invitee devices are configured to notify the event assistant system when the invitee devices are within range of the location of the event.
  • Aspect 49 generally concerns the system of any previous aspect in which the event assistant system is configured to notify the organizer when the invitees are within range of the location of the event.
  • Aspect 50 generally concerns the system of any previous aspect in which the event assistant system is configured to notify the organizer when the invitees are on-site for the event.
  • Aspect 51 generally concerns the system of any previous aspect in which the invitee devices are configured to display an arrival button when at the location of the event.
  • Aspect 52 generally concerns the system of any previous aspect in which the invitee devices are configured to take a photograph when at the location of the event.
  • Aspect 53 generally concerns the system of any previous aspect in which the event assistant system ceases tracking of the invitees when the invitees arrive at the location of the event.
  • Aspect 54 generally concerns a method.
  • Aspect 55 generally concerns the method of any previous aspect including a method for managing event invitees.
  • Aspect 56 generally concerns the method of any previous aspect including creating an event with an organizer device.
  • Aspect 57 generally concerns the method of any previous aspect including inviting with the organizer device one or more invitees and an event assistant system to the event.
  • Aspect 58 generally concerns the method of any previous aspect including tracking behavior of the invitees with the event assistant system.
  • Aspect 59 generally concerns the method of any previous aspect including requesting routing data from the invitee.
  • Aspect 60 generally concerns the method of any previous aspect including determining estimated time of arrivals (ETAs) for the invitees with the event assistant system.
  • ETAs estimated time of arrivals
  • Aspect 61 generally concerns the method of any previous aspect including comparing the ETAs to a start time of the event with the event assistant system.
  • Aspect 62 generally concerns the method of any previous aspect including offering a reward to the invitees based on the event data with the event assistant system.
  • Aspect 63 generally concerns the method of any previous aspect including learning user behavior with the event assistant system.
  • Aspect 64 generally concerns the method of any previous aspect including adjusting estimates based on user behavior with the event assistant system.
  • Aspect 65 generally concerns the method of any previous aspect including allowing a user to select a charitable organization.
  • Aspect 66 generally concerns the method of any previous aspect including donating the reward to the charitable organization.
  • Aspect 67 generally concerns the method of any previous aspect in which the reward is a donation to the charitable organization.
  • Aspect 68 generally concerns the method of any previous aspect including alerting an organizer when the ETAs of at least one of the invitees is beyond the start time of the event.
  • Aspect 69 generally concerns the method of any previous aspect including sending a request from an event assistant system to an invitee device of an invitee for routing data.
  • Aspect 70 generally concerns the method of any previous aspect including updating routing information of the invitee at the event assistant system based on the routing data.
  • Aspect 71 generally concerns the method of any previous aspect including calculating an estimated time of arrival (ETA) based on the routing information with the event assistant system.
  • ETA estimated time of arrival
  • Aspect 72 generally concerns the method of any previous aspect including checking whether the invitee has read the request.
  • Aspect 73 generally concerns the method of any previous aspect including sending a second request to the invitee device.
  • Aspect 74 generally concerns the method of any previous aspect in which the first request is a push notification.
  • Aspect 75 generally concerns the method of any previous aspect in which the second request is an email.
  • Aspect 76 generally concerns the method of any previous aspect including sending an alert to a user when the ETA is beyond the start time of the event.
  • Aspect 77 generally concerns the method of any previous aspect in which the user is an event organizer.
  • Aspect 78 generally concerns the method of any previous aspect in which the user is the invitee.
  • Aspect 79 generally concerns the method of any previous aspect including receiving the routing data of the invitee device at the event assistant system.
  • Aspect 80 generally concerns the method of any previous aspect in which the comparing the ETA to a start time of the event with the event assistant system. Further forms, objects, features, aspects, benefits, advantages, and embodiments of the present invention will become apparent from a detailed description and drawings provided herewith.
  • FIG. l is a block diagram of a system with an event assistant system according to one example.
  • FIG. 2 is a block diagram of the FIG. 1 system according to another example.
  • FIG. 3 is a block diagram of the FIG. 1 event assistant system according to one example.
  • FIG. 4 is a block diagram of a user device found in the FIG. 1 system.
  • FIG. 5 is a block diagram of a computer that can be incorporated into the FIG. 1 system.
  • FIG. 6 is a diagram of an organizer interface that can be displayed on the FIG. 4 user device according to one example.
  • FIG. 7 is a diagram of an invitee interface that can be displayed on the FIG. 4 user device according to one example.
  • FIG. 8 is a flowchart of a technique for managing event invitees.
  • FIG. 9 is a flowchart of another technique for managing event invitees.
  • FIG. 10 is a flowchart of yet another technique for managing event invitees.
  • FIG. 1 illustrates a system 100 according to one example.
  • the system 100 is configured to facilitate organizing of events.
  • the system 100 generally includes an event assistant system (assistant) 105, at least one organizer 110, one or more invitees 115, and a network 120.
  • the organizer 110 and invitees 115 are users of the system 100.
  • the system 100 enables the organizer 110 to create an event and send invitations to the event assistant system 105 and the invitees 115.
  • the event can be a meeting, reception, scheduled service, party, and/or another type of gathering.
  • the network 120 is configured to support communication between the event assistant system 105, organizer 110, and invitees 115. Leading up to the event, the system 100 enables the organizer 110 to monitor the invitees 115.
  • the system 100 is configured to show the organizer 110 the estimated times of arrival (ETAs) for the invitees 115, which invitees 115 have arrived at the event, which invitees 115 will not arrive at the event on time, and/or other routing information for the invitees 115.
  • ETAs estimated times of arrival
  • the event assistant system 105 allows the organizer 110 to be aware of problems before plans are disrupted, for example due to late or absent invitees 115.
  • the event assistant system 105 is a remote computer system.
  • the event assistant system 105 is configured to perform calculations, analyze data, execute algorithms, and/or perform various other tasks.
  • the event assistant system 105 generally has an email address that can receive invites from the organizer 110.
  • the organizer 110 can email the event assistant system 105 an iCalendar (.ics) type file to invite the event assistant system 105 to the event.
  • the email address is associated with a specific personality for interacting with the event.
  • the event assistant system 105 could be configured to communicate in additional or alternative ways to email, such as through text messages and/or other electronic messages.
  • the event assistant system 105 is configured to send and receive messages, data, and/or other information over the network 120.
  • the event assistant system 105 can utilize multiple types of networks utilized by the network 120, such as using both the Internet and a mobile data network. Additionally, the event assistant system 105 is configured to store event, routing, and/or other information.
  • the network 120 is typically wireless. In one example, the network 120 includes wired connections between at least some devices in the system 100.
  • the network 120 generally includes a wide area network (WAN) and/or a local area network (LAN).
  • the network 120 at least partially includes a cellular, Wi-Fi, Internet, radio, Bluetooth, and/or another type of wireless network.
  • the system 100 in one form includes a scheduling system 125.
  • the scheduling system 125 includes one or more computers, such as a remote server and/or a computer network.
  • the scheduling system 125 can be an existing scheduling application, such as a third-party service and/or a calendar built into an email service.
  • the scheduling system 125 is configured to store user data and communicate with other devices using the network 120.
  • the scheduling system 125 enables the event assistant system 105 to validate the event with respect to the organizer 110 and invitees 115. For example, when the organizer 110 creates an event, the event assistant system 105 can check for scheduling conflicts between the event and the schedules of the organizer 110 and invitees 115.
  • the scheduling system 125 provides contact, location, and/or other information of the invitees 115 to the organizer 110 when the event is created.
  • the system 100 can maintain the privacy of user information.
  • the system 100 includes user devices 130 that enable the organizer 110 and the invitees 115 to communicate over the network 120.
  • the user devices 130 generally includes one or more computers and/or cellular devices.
  • the user devices 130 include a laptop computer, desktop computer, tablet, cell phone, smart phone, personal digital assistant (PDA), and/or another device.
  • the user devices 130 are configured to wirelessly connect to the network 120.
  • the user devices 130 could be configured to communicate with the event assistant system 105 and/or another user device 130 directly.
  • the user devices 130 can at least partially utilize a wired connection to communicate with the network 120 and/or another device.
  • the user devices 130 are each configured to determine the current location of the user device 130, such as through GPS, satellite navigation, the signal strength from the network 120, and/or sensors as examples.
  • the organizer 110 When the organizer 110 creates the event, the organizer 110 typically designates an event area 135 for the event.
  • the event area 135 denotes the geographic location of the event and generally defines a boundary around the event.
  • the event area 135 can be a geofence.
  • the event area 135 is a circular shape oriented around a central location associated with the event.
  • the event area 135 is a more complex shape, such as the outline of a building, room, facility, property, and/or other area associated with the event.
  • the organizer 110 can manually designate the boundary of the event area 135 or can retrieve a predetermined event area 135 associated with the location of the event, such as from the scheduling system 125 and/or another remote server.
  • the event assistant system 105 could determine the event area 135 automatically based on a default setting, by retrieving location data from an external source, by using previous event data, by using previous user behavior, and/or in another way.
  • the system 100 enables the organizer 110 to manage invitees 115 traveling via various modes of transportation 140.
  • the event assistant system 105 is configured to request routing information from the invitees 115.
  • the event assistant system 105 typically prompts the invitees 115 to provide the mode of transportation 140 being used.
  • the event assistant system 105 is configured to determine the ETAs for the invitees 115 at least partially based on the mode of transportation 140. By accounting for the mode of transportation 140, the event assistant system 105 can provide an accurate prediction about the travel time for the invitees 115.
  • the event assistant system 105 can determine the mode of transportation 140 used by an invitee 115 based on the previous behavior of the invitee 115.
  • the event assistant system 105 includes an artificial intelligence system (Al system) 145.
  • the Al system 145 is stored and executed on the event assistant system 105.
  • the Al system 145 could be implemented on another device in the system 100, such as one of the user devices 130, the scheduling system 125, and/or another computer.
  • the Al system 145 is configured to learn and predict user behavior from the organizer 110 and the invitees 115. Additionally, the Al system 145 can be used to perform other tasks to manage the invitees 115, such as analyzing schedules, suggesting promotions to offer to invitees 115, and/or determining to alert the organizer 110 and/or invitees 115 as examples.
  • the Al system 145 is configured to adjust predictions about travel time and attendance for the invitees 115. For instance, for an event held on the second floor of a building, the Al system 145 determines the amount of time it takes the invitees 115 to park and get to the second floor of the building. In another example, the Al system 145 is configured to modify promotions and/or rewards for the organizer 110 and invitees 115 based on the learned behavior patterns. For instance, the Al system 145 determines to offer a cookie to an invitee 115 who is always early when the event assistant system 105 offers a cookie.
  • the Al system 145 can include one or more neural networks.
  • the Al system 145 includes a convolutional neural network, recurrent neural network, generative neural network, discriminative neural network, and/or another type of neural network.
  • the Al system 145 can use a generative adversarial network to learn and predict user behavior.
  • the Al system 145 may use multiple instances of such neural networks or other types of Al architectures may be used to learn user behavior.
  • the scheduling system 125 includes a database 150.
  • the database 150 stores information about the organizer 110 and the invitees 115, such as schedules and/or calendars.
  • the database 150 optionally stores contact information of each user, such as a phone number, email address, and/or username on another platform as examples.
  • the database 150 additionally stores location information of each user, such as a home address, office address, and/or another location.
  • the system 100 utilizes the information stored on the database 150 to facilitate creating an event and monitoring invitees 115.
  • the database 150 could be implemented on another device connected to the network 120, such as the event assistant system 105, one or more user devices 130, and/or another computer.
  • the user devices 130 include at least one organizer device 155 and at least one invitee device 160.
  • the organizer 110 uses the organizer device 155 to communicate with the event assistant system 105 and monitor the invitees 115.
  • the organizer device 155 is a computer that is regularly located at the event area 135, such as a desktop computer.
  • the organizer device 155 optionally is associated with a permanent location that corresponds to the event area 135.
  • the organizer device 155 could be any type of device, including a handheld device like a smart phone or tablet.
  • the invitees 115 each use an invitee device 160 to communicate with the event assistant system 105 and the organizer 110.
  • the invitee devices 160 are handheld devices, such as smart phones and/or tablets.
  • Each invitee device 160 is configured to determine the current location of the invitee device 160.
  • the event assistant system 105 is able to receive updated location data from the invitee devices 160 as the invitees 115 travel towards the event.
  • one or more invitee devices 160 could be a non-handheld and/or a non-portable device, and the event assistant system 105 could receive only initial routing data that includes an initial location of the invitee device 160.
  • the invitees 115 include a first invitee 165, second invitee 170, third invitee 175, and fourth invitee 180.
  • the first invitee 165 is positioned within the event area 135.
  • the event assistant system 105 notes that the first invitee 165 has arrived and updates the status of the first invitee 165.
  • the organizer 110 optionally receives an alert when the first invitee 165 arrives at the event area 135.
  • the first invitee 165 selects an option on the invitee device 160 to change a location status to present at the event and/or takes a picture of the event area 135 using the invitee device 160 to confirm arrival at the correct location.
  • the second invitee 170, third invitee 175, and fourth invitee 180 are travelling to the event and are not yet at the event area 135.
  • the second invitee 170, third invitee 175, and fourth invitee 180 use different modes of transportation 140 and can be at various geographic locations.
  • the second invitee 170 uses no vehicle or other machine as the mode of transportation 140.
  • the second invitee 170 is walking towards the event area 135 and has indicated to the event assistant system 105 that the mode of transportation 140 is walking.
  • the second invitee 170 has not proceeded towards the event area 135 and may not have provided any routing data to the event assistant system 105.
  • the event assistant system 105 can then determine that the second invitee 170 will be late or even absent to the event.
  • the third invitee 175 uses an airplane 185 as the mode of transportation 140.
  • the third invitee 175 provides routing information to the event assistant system 105 that includes a flight arrival time, type of airplane 185, flight identification number, and/or other data.
  • the event assistant system 105 can check flight paths and/or perform other calculations to determine travel time for the third invitee 175. For instance, if the flight experiences a delay, the event assistant system 105 can automatically adjust the predicted ETA.
  • the fourth invitee 180 uses an automobile 190 as the mode of transportation 140.
  • the automobile 190 can be a personal vehicle, taxi, rideshare vehicle, bus, shuttle, or another type of automobile 190.
  • the fourth invitee 180 can specify the type of automobile 190 being used to allow the event assistant system 105 to accurately predict the ETA.
  • the routing data also includes the planned route of the automobile 190, a public transit schedule, the make and/or model of the automobile 190, and/or other information.
  • the event assistant system 105 can optionally determine the location of the automobile 190 based on public transit schedules and/or other publicly available transit information.
  • the invitees 115 can use any mode of transportation 140, including a plane, train, automobile, walking, biking, public transit, personal vehicle, taxi, rideshare, boat, and/or air travel as examples. Additionally, the invitees 115 could use multiple modes of transportation 140 on the way to the event area 135 and communicate the changes in mode of transportation 140 to the event assistant system 105.
  • FIG. 2 illustrates the system 100 according to another example.
  • the invitees 115 are initially located at one or more initial locations 205.
  • the initial location 205 for an invitees 115 can be a primary residence, a place of work, a temporary accommodation, and/or another location where the invitees 115 is expected to be.
  • the initial location 205 is the current location of the invitees 115 when the invitees 115 begins to head toward the event area 135.
  • the event assistant system 105 can determine the initial location 205 based on realtime location data from the invitees 115 and/or based on a stored location of the invitees 115. Additionally, the event assistant system 105 can determine the initial location 205 for the invitee 115 at a predetermined time before the event, after the invitee 115 indicates that the invitee 115 is traveling to the event, or at another time.
  • the initial location 205 of the first invitee 165 is a house 210
  • the initial location 205 of the second invitee 170 is an office 215.
  • the house 210 can be the primary residence of the first invitee 165 or can be a temporary accommodation.
  • the office 215 can be a place of work or another common location for the second invitee 170.
  • the locations of the house 210 and/or office 215 are stored in the database 150.
  • the locations of the house 210 and/or office 215 can be stored as the whole building, a wing of the building, a floor of the building, a room in the building, or another portion of the building.
  • the invitee 115 can allow the event assistant system 105 to access the location of the house 210 and/or office 215 within the database 150 and to automatically determine the initial location 205 for the first invitee 165 as the house 210 or office 215.
  • the invitee 115 can select what location data the event assistant system 105 is allowed to access to maintain privacy.
  • the invitee 115 can allow the event assistant system 105 to see the location of the office 215 but not the location of the house 210.
  • the invitee 115 can select the level of precision of the stored location data.
  • the event assistant system 105 can request the location from the invitee 115 before the invitee 115 starts traveling to the event.
  • the system 100 is configured to manage invitees 115 for multiple events.
  • the FIG. 2 system 100 includes a first organizer 220 organizing an event at a first event area 230, and a second organizer 225 organizing an event at a second event area 235.
  • the first organizer 220 organizes both events and is present in one or neither of the event areas 135.
  • the organizer 110 might not be required to attend one or both of the events.
  • the first event area 230 and second event area 235 are in the same general location, such as the same building, park, or facility as examples.
  • the events can be part of a larger, overarching event.
  • one event assistant system 105 is capable of monitoring the invitees 115 and communicating with the organizers 110 for both events.
  • the system 100 can be configured to manage any number of invitees 115 using any number of modes of transportation 140, travelling to any number of event areas 135, departing from any number of initial locations 205, and/or travelling in any other ways.
  • the system 100 includes two event assistant systems 105, a first assistant 240 and a second assistant 245.
  • the first assistant 240 and second assistant 245 can perform the same tasks for different events or can perform distinct tasks for one or more events.
  • each event assistant system 105 has an email address, and new event assistant system 105 behaviors are added by inviting a new email address associated with the new event assistant system 105.
  • Multiple event assistant systems 105 allow the system 100 to provide different combinations of monitoring, sending reminders, and/or other functions.
  • the first assistant 240 is configured to send reminders to the invitees 115 and to allow the organizer 110 to monitor the ETA of the invitees 115, but the second assistant 245 switches the roles of the organizer 110 and invitees 115.
  • the second assistant 245 is configured to send reminders to the organizer 110 and to allow the invitees 115 to monitor the ETA of the organizer 110. Using the second assistant 245 to reverse the roles can be useful for deliveries, home equipment installation, and other scenarios where the organizer 110 might have to travel to the event area 135.
  • the first assistant 240 allows the organizer 110 to monitor the invitees 115 and allows the invitees 115 to monitor the organizer 110 for one event, and the second assistant 245 performs those tasks for a different event.
  • the system 100 could include any number of event assistant systems 105 configured to perform any variety of tasks. Additionally, the event assistant systems 105 can perform the same monitoring, communication, reminding, and other tasks with the organizers 110 as with the invitees 115.
  • FIG. 3 illustrates one embodiment of the event assistant system 105.
  • the event assistant system 105 generally includes a processor 305, memory 310, long-term storage device 315, and networking device 320.
  • the processor 305, memory 310, long-term storage device 315, and networking device 320 are communicatively connected and are configured to send data and other communications to one another.
  • the processor 305, memory 310, long-term storage device 315, and networking device 320 can be connected using one or more bus bars and/or other conductors.
  • the components of the event assistant system 105 can optionally be arranged in another way and/or the event assistant system 105 can include additional components.
  • the event assistant system 105 implements the Al system 145 across the various components.
  • the processor 305 can perform calculations for the Al system 145
  • the memory 310 can store algorithms of the Al system 145.
  • the processor 305 is configured to perform calculations, execute algorithms, analyze data, and/or perform other computational tasks.
  • the processor 305 is configured to perform one or more algorithms from the Al system 145.
  • the processor 305 can perform Al algorithms to predict user behavior, Al algorithms to estimate user travel time, training algorithms to create an Al model of the user behavior, and/or other types of algorithms.
  • the memory 310 and long-term storage device 315 are configured to store data, algorithms, and/or other information.
  • the memory 310 and/or long-term storage device 315 can store user behavior data, user contact and/or identification data, training algorithms for the Al system 145, and/or user behavior models for the Al system 145.
  • the memory 310 generally stores information for a relatively short period of time, and generally stores information utilized by the processor 305.
  • the memory 310 stores algorithms and/or data as the processor 305 performs the algorithm and/or calculations on the data.
  • the long-term storage device 315 stores information for a longer period of time and generally stores a greater amount of information than the memory 310.
  • the long-term storage device 315 can store large amounts of user behavior information, location information, predictive algorithms for the Al system 145, and/or other information.
  • the networking device 320 is configured to provide an interface between the event assistant system 105 and the network 120.
  • the networking device 320 can include a router, antenna, and/or another device to connect the event assistant system 105 to the network 120.
  • the networking device 320 is configured to support the event assistant system 105 to communicate over the network 120, including sending and/or receiving data, alerts, messages, and/or other data.
  • the networking device 320 can support wired and/or wireless connections.
  • the event assistant system 105 further includes a location module 325.
  • the location module 325 is configured to monitor the location of the organizer 110 and invitees 115 of the system 100.
  • the location module 325 is configured to calculate distances and/or travel times between geographic locations, retrieve location data of one or more user devices 130, communicate with external mapping or location services, and/or perform other tasks involving geographic locations.
  • the location module 325 is configured to validate the location of an event when the organizer 110 creates the event.
  • the location module 325 can include a database of locations and/or communicate with a database of locations and verify the location of the event.
  • the location module 325 is configured to determine a location of the event assistant system 105, such as through GPS, satellite navigation, and/or monitoring signal strength from the network 120.
  • the processor 305, memory 310, long-term storage device 315, and/or networking device 320 can perform one or more functions of the location module 325.
  • FIG. 4 illustrates one embodiment of the user device 130.
  • the illustrated user device 130 depicts one form of the organizer device 155 and invitee device 160 in FIGS. 1 and 2.
  • the organizer device 155 and/or invitee device 160 vary from the illustrated user device 130 in one or more ways.
  • the user device 130 generally includes a processor 405, memory 410, location module 415, networking device 420, display device 425, and input device 430.
  • the processor 405, memory 410, location module 415, networking device 420, display device 425, and input device 430 are communicatively connected and are configured to send data and other communications to one another.
  • the components of the user device 130 can optionally be arranged in another way and/or the user device 130 can include additional components.
  • the location module 415 is configured to monitor the location of the user device 130. For example, the location module 415 can determine the current location of the user device 130 through GPS, satellite navigation, monitoring signal strength from the network 120, and/or in other ways. In one example, the location module 415 is also configured to calculate distances and/or travel times between geographic locations, retrieve location data of the event area 135, communicate with external mapping or location services, and/or perform other tasks involving geographic locations. In another example, the location module 415 can store location data of other users and/or the event. Alternatively, the processor 405, memory 410, networking device 420, and/or another part of the user device 130 can perform one or more functions of the location module 415.
  • the networking device 420 is configured to provide an interface between the user device 130 and the network 120.
  • the networking device 420 can include a router, antenna, and/or another device to connect the user device 130 to the network 120.
  • the networking device 420 is configured to support the user device 130 to communicate over the network 120, including sending and/or receiving data, alerts, messages, and/or other data.
  • the networking device 420 can support wired and/or wireless connections.
  • the display device 425 and input device 430 allow the user to interact with the user device 130.
  • the display device 425 and input device 430 can include a variety of input/output (VO) devices, such as a visual display screen, touch pad, touch screen, keyboard, mouse, and/or another type of device.
  • VO input/output
  • the display device 425 and input device 430 are combined as a touch screen, such as in a smart phone or tablet.
  • the input device 430 includes a keyboard, such as on a personal computer, personal digital assistant, or other device.
  • the display device 425 allows a user to view notifications and alerts sent by the event assistant system 105, routing information of other the invitees 115 and/or organizer 110, promotional offers, chat messages, maps of the user device 130, and/or other information related to the event and users.
  • the input device 430 allows a user to type chat messages, open notifications from the event assistant system 105, accept promotional offers, navigate through event information, and/or interact with the system 100 in other ways.
  • FIG. 5 illustrates one embodiment of a computer 500 that can be used in the scheduling system 125 in FIGS. 1 and 2 and/or in another device in the system 100.
  • the event assistant system 105, organizer device 155, and/or invitee device 160 can include the computer 500.
  • the system 100 includes one or more additional computers 500, such as in another remote server or computer network.
  • the computer 500 generally includes a processor 505, memory 510, input/output device 515, and networking device 520.
  • the processor 505, memory 510, input/output device 515, and networking device 520 are communicatively connected and are configured to send data and other communications to one another.
  • the components of the computer 500 can optionally be arranged in another way and/or the computer 500 can include additional components.
  • the processor 505 is configured to perform calculations, execute algorithms, analyze data, and/or perform other computational tasks. In one embodiment, the processor 505 is configured to analyze schedule data of the organizer 110 and invitees 115, compare location data of the event to stored location data of the organizer 110 and invitees 115, and/or perform other calculations related to stored user data. In one embodiment, the processor 505 is configured to perform one or more algorithms from the Al system 145.
  • the memory 510 is configured to store data, algorithms, and/or other information. For example, the memory 510 can store user behavior data, user contact data, user identification data, algorithms to process user data, and/or other user data and algorithms. The memory 510 can store information in a form that is quickly accessible to processor 505 and/or in large quantities for long periods of time. In one embodiment, the organizer device 155 in FIGS. 1 and 2 is implemented at least partially on the memory 510 of the computer 500.
  • the input/output device 515 is configured to receive inputs from and/or provide outputs to a user or another device.
  • the input/output device 515 includes a visual display screen, keyboard, mouse, and/or another device.
  • the computer 500 can be a desktop computer that allows a user to provide inputs and view outputs.
  • the computer 500 is a server that does not provide output to a display and receives inputs from a user from another device and/or over the network 120.
  • the networking device 520 is configured to provide an interface between the computer 500 and the network 120.
  • the networking device 520 can include a router, antenna, and/or another device to connect the computer 500 to the network 120.
  • the networking device 520 is configured to support the computer 500 to communicate over the network 120, including sending and/or receiving data, alerts, messages, and/or other data.
  • the computer 500 can support wired and/or wireless connections.
  • the user devices 130 display a user interface to the organizer 110 and invitees 115.
  • the user devices 130 generally display the user interfaces through an application.
  • the application is a web application hosted by the event assistant system 105 or another device in the system 100.
  • the application can be installed on the user device 130, such as an Android or iOS application.
  • the user devices 130 could provide an interface for the organizer 110 and invitees 115 in another way, such as through email and/or another website as examples.
  • FIG. 6 illustrates an organizer interface 600 displayed on the organizer device 155 according to one embodiment.
  • the organizer interface 600 displays information about the invitees 115 to the organizer 110, such as the names and ETAs of the invitees 115 as examples.
  • the organizer interface 600 allows the organizer 110 to communicate with the invitees 115 and receive notifications from the event assistant system 105.
  • the organizer interface 600 includes an invitee list 605 and ETA list 610 that display the real-time status of the invitees 115.
  • the invitee list 605 displays the names of the invitees 115.
  • the organizer 110 can limit the displayed invitee list 605 to invitees 115 that have arrived, invitees 115 that are traveling, and/or another selection of invitees 115.
  • the ETA list 610 displays the ETA for each invitee 115 on the invitee list 605 as determined by the event assistant system 105. In one example, the organizer 110 can adjust the precision of the displayed ETA.
  • the ETA list 610 can display ETAs in intervals of minutes, hours, days, or another unit of time depending on the time until the event starts, the amount of distance between the invitee 115 and the event area 135, and/or other factors. As illustrated, the ETA list 610 is configured to change the displayed status of the invitees 115 that have arrived at the event area 135 to a status of "Here," "On-Site,” or another term. In one example, the ETA list 610 is configured to display a status of "Unknown” or another term when the ETA is not certain. For instance, the ETA list 610 can display "Unknown" status if the invitee 115 has not made progress towards the event or if the changes in location of the invitee 115 are unpredictable among other reasons.
  • the organizer interface 600 further includes a share button 615 and a chat button 620 that allow the organizer 110 to communicate and share information with the invitees 115.
  • the share button 615 allows the organizer 110 to share information with the invitees 115, such as the ETA list 610.
  • the organizer interface 600 can instantly share the ETAs with the invitees 115 or can prompt an additional menu for the organizer 110.
  • the additional menu allows the organizer 110 to confirm the share action and/or to select additional information to share with the invitees 115, such as the location of the organizer 110.
  • the organizer interface 600 only displays the share button 615 if an ETA of one of the invitees 115 is beyond the event start time.
  • selecting the share button 615 shares a link to the invitees 115 to view the ETAs on a separate website or web application.
  • the chat button 620 allows the organizer 110 to send and receive messages with the invitees 115.
  • the organizer interface 600 can display a separate chat page that displays messages.
  • the chat page assists the organizer 110 to manage the invitees 115, such as by answering questions or providing updates.
  • the organizer 110 can provide a gate or access code needed to enter the event area 135, provide instructions for entering the event area 135, inform invitees 115 that there is food at the event, inform the invitees 115 of any changes to the event, and/or provide any other information to the invitees 115.
  • the organizer interface 600 is configured to display a notification 625 to indicate an alert and/or reminder to the organizer 110.
  • the event assistant system 105 sends an alert to the organizer 110 when the ETA of one of the invitees 115 is beyond the event start time.
  • the organizer interface 600 is configured to display the alert on the notification 625.
  • the notification 625 is also configured to show other types of reminders and/or alerts, such as an alert about an invalid event location, an alert about a scheduling conflict, a reminder about the event start time, an alert when an invitee 115 arrives, and/or an alert when a chat message is received among other examples.
  • the organizer interface 600 includes a map 630 that shows the event area 135 and the surrounding area.
  • the map 630 can include markers 635 that denote the location of users.
  • the map 630 includes a marker 635 for the organizer 110. If the organizer 110 is not at the event, the map 630 can assist the organizer 110 to reliably travel to the event area 135.
  • the map 630 can be retrieved from existing mapping or navigation services and/or can be provided by the event assistant system 105.
  • the event assistant system 105 Generally, to maintain privacy, locations of users are not shared with the organizer 110 or other invitees 115. Typically, the event assistant system 105 only shares an ETA for each invitee 115. In an alternate embodiment, the event assistant system 105 is configured to share location data of the invitees 115 with the organizer 110. For example, the invitees 115 can grant permission to the event assistant system 105 to share current location. When the locations of one or more invitees 115 are shared with the organizer 110, the organizer interface 600 displays markers 635 on the map 630 to denote the locations of the invitees 115. To maintain some degree of privacy, the map 630 can show an approximate location and/or a location range for the invitee 115 rather than a precise location of the invitee 115.
  • the marker 635 denotes an area with a radius of 100 feet, 1000 feet, 1 mile, 5 miles, 10 miles, 50 miles, and/or another size that corresponds to the location of the invitee 115.
  • the event assistant system 105 allows users to select the degree of precision of the marker 635 on the map 630 for that user.
  • the map 630 can optionally obscure the locations of the invitees 115 in another way and/or to other varying degrees.
  • the invitee interface 700 is configured to display a notification 705 to indicate communication from the event assistant system 105 to the invitee 115.
  • the notification 705 could be displayed only in the invitee interface 700 or could be a push notification sent to the invitee device 160 that appears outside the invitee interface 700.
  • the event assistant system 105 sends a request to the invitee 115 to grant consent to send notifications 705, retrieve geolocation data from the invitee device 160, and/or for other permissions.
  • the event assistant system 105 can request such permissions from the invitee 115 when the application is first opened, when the invitee 115 is invited to the event, at a specified time before the event, when the invitee 115 begins traveling to the event, and/or at another time.
  • the initial request is sent to the invitee 115 via email.
  • the initial request can be displayed through the notification 705, on a separate application menu, and/or in another way.
  • the event assistant system 105 is configured to send one or more requests displayed as on the notification 705 after the invitee 115 grants permission.
  • the event assistant system 105 requests routing data from the invitee device 160, such as current location, information about the mode of transportation 140 used by the invitee 115, and/or other geolocation data.
  • the event assistant system 105 requests to periodically retrieve the geolocation data from the invitee device 160 as long as the application is open on the invitee device 160.
  • the notification 705 is further configured to display reminders and/or alerts related to the event.
  • the event assistant system 105 sends an alert to the invitee 115 when the ETA of the invitee 115 is beyond the event start time.
  • the notification 705 is also configured to display an alert about a scheduling conflict, an alert when the invitee 115 will not be able to attend the event due to expected travel time, a reminder about the event start time, an alert when the invitee 115 arrives at the event area 135, and/or an alert when a chat message is received among other examples.
  • the event assistant system 105 is configured to send additional alerts, reminders, and/or requests to the invitee device 160 if the invitee 115 does not read the notifications 705.
  • the communications can be sent through email, as another notification 705, and/or in another way.
  • the event assistant system 105 sends the additional alerts near the time the invitee 115 needs to depart for the event.
  • the departure time can be determined by the event assistant system 105 or indicated by the invitee 115.
  • the event assistant system 105 sends additional alerts within a certain time from the event start time, such as an amount of time predetermined by the event assistant system 105 or based on the distance from the invitee 115 to the event area 135.
  • the invitee interface 700 displays a reward 710 that allows the invitee 115 to accept an offer from the event assistant system 105.
  • the event assistant system 105 can offer a variety of rewards 710, such as monetary rewards, promotional deals, coupons, and/or charitable donations as examples.
  • the invitee 115 can collect the reward 710 in various forms, such as quick response (QR) code coupons, near field communication (NFC) coupons, credits on a store account, gift cards, and/or cryptocurrency among other examples.
  • the event assistant system 105 is configured to use event, routing, learned user behavior, and/or other data to determine the reward 710 to offer the user.
  • an affiliate is associated with the system 100, and the event assistant system 105 is configured to use affiliate data to determine the reward 710.
  • the event assistant system 105 can offer time-sensitive coupons for food, beverages, parking, and/or other vendors that are near the event area 135 and/or on the route of the invitees 115.
  • the event assistant system 105 can offer a reward 710 that can be redeemed during the event, such as food delivery for participants in the event.
  • the invitees 115 are invited to choose a charitable organization to receive donations when the invitee 115 is offered a reward 710.
  • the donation can be based on the invitee 115 arriving to one or more events on-time.
  • the event assistant system 105 and/or the users are able to generate badges that show the total benefit provided to the charitable organization by the user through the system 100.
  • the badges can be web badges embedded into the application to securely show the donation amounts.
  • the badges can be displayed on the organizer interface 600 and/or invitee interface 700 to be viewed the organizer 110 and/or invitees 115. For instance, the badge can be displayed as part of the reward 710.
  • the invitee interface 700 further includes a chat button 715 that allows the invitee 115 to send and receive messages with the organizer 110 and other invitees 115.
  • the invitee interface 700 can display a separate chat page that displays messages.
  • the chat page assists the invitees 115 to attend the event on-time, such as by answering questions or providing updates as examples.
  • the invitees 115 can ask for instructions to enter the event area 135, request a gate or access code needed to enter the event area 135, inform the organizer 110 and other invitees 115 that the invitee 115 is bringing food or other items, receive updates about the event from the organizer 110, and/or communicate other information to the organizer 110 and invitees 115.
  • the chat button 715 functions the same as the chat button 620 on the organizer interface 600.
  • the invitee interface 700 includes an arrival button 720 and a photo button 725.
  • the arrival button 720 and photo button 725 allow the invitee 115 to indicate and/or confirm arrival to the event area 135.
  • the event assistant system 105 determines when the invitee 115 arrives at the event, and the arrival button 720 and photo button 725 are only displayed when the invitee 115 is within the event area 135. By selecting the arrival button 720, the invitee 115 is able to communicate to the organizer 110 that the invitee 115 has arrived.
  • Selecting the arrival button 720 can also notify the event assistant system 105 to change the status of the invitee 115 to "Here” or "On- Site” if the event assistant system 105 has not updated the status.
  • the photo button 725 allows the invitee 115 to take a picture of the event area 135. The picture can be used to confirm the invitee 115 is in the correct location and to assist the organizer 110 and/or invitees 115 to find one another.
  • the invitee interface 700 includes an invitee list 730 and ETA list 735 that display the real-time status of the invitees 115. Similar to the invitee list 605 and ETA list 610 on the organizer interface 600 in FIG. 6, the invitee list 730 and ETA list 735 display the names and ETAs of the invitees 115. In one embodiment, the invitee list 730 is the same as the invitee list 605, and the ETA list 735 is the same as the ETA list 610. Optionally, the invitee list 730 and ETA list 735 can show the name and ETA of the organizer 110 and/or omit the name and ETA of the individual invitee 115.
  • the invitee list 730 and ETA list 735 are only displayed on the invitee interface 700 if the organizer 110 has shared the ETAs with the invitee 115.
  • the invitees 115 can change the selection of invitees 115 displayed on the invitee list 730 and ETA list 735.
  • the invitee 115 can change the precision of the displayed ETAs.
  • the ETA list 735 additionally displays the status of the invitees 115, such as "Here,” "Unknown,” or another status.
  • the invitee interface 700 optionally includes a map 740 that shows the event area 135 and the surrounding area.
  • the map 740 can include a marker 745 that denotes the location of the invitee 115.
  • the map 740 can assist the invitee 115 to reliably travel to the event area 135.
  • the map 740 can be retrieved from existing mapping or navigation services and/or can be provided by the event assistant system 105. To maintain privacy, locations of other users are not shared with the invitees 115. Alternatively, the organizer 110 could share the locations of the organizer 110 and/or other invitees 115 that consent.
  • the map 740 can optionally display markers 745 for the organizer 110 and/or other invitees 115 if locations are shared with the invitees 115.
  • the map 740 and marker 745 support the same functions as the map 630 and marker 635 on the organizer interface 600 in FIG. 6.
  • features displayed on the organizer device 155 and invitee device 160 could be available to both the organizer 110 and the invitees 115.
  • the organizer interface 600 on the organizer device 155 could display one or more features from the invitee interface 700 and/or the invitee interface 700 on the invitee device 160 could display one or more features from the organizer interface 600.
  • the organizer interface 600 and/or invitee interface 700 can display the additional features corresponding to those roles.
  • the organizer interface 600 could display the notification 705, reward 710, arrival button 720, and/or photo button 725 from the invitee interface 700 when the organizer 110 is traveling to the event and/or the event assistant system 105 allows the invitees 115 to monitor the organizer 110.
  • the invitee interface 700 can display the notification 625 and/or the map 630 from the organizer interface 600 when the event assistant system 105 allows the invitees 115 to monitor the organizer 110.
  • the user devices 130 can display the same interface to the organizer 110 and the invitees 115.
  • FIGS. 8, 9, and 10 illustrate various methods or techniques for managing invitees 115 for an event.
  • the system 100 is configured to perform the various actions or stages of these techniques.
  • various components of the system 100 can perform different actions or stages.
  • the event assistant system 105, the scheduling system 125, the user device 130, the organizer device 155, the invitee device 160, the computer 500, and/or other components of the system 100 can perform one or more parts of these methods.
  • FIG. 8 shows a flowchart 800 illustrating a method for managing invitees 115 for an event.
  • the organizer 110 creates an event using the organizer device 155. Creating the event generally includes setting an event location, setting an event start time, setting an event duration, and/or determining other details of the event.
  • the event data can be stored in the event assistant system 105 and/or another device in the system 100.
  • the organizer 110 invites the invitees 115 and the event assistant system 105.
  • the organizer 110 sends emails from the organizer device 155 to the invitee devices 160 of the invitees 115 and to the event assistant system 105 using the network 120.
  • the email address of the event assistant system 105 can be a specific email address, such as betty@example.com, associated with a certain set of behaviors and/or unique functions.
  • the organizer 110 can optionally invite multiple event assistant systems 105 with one or more behaviors.
  • the event assistant system 105 saves the event data on the event assistant system 105 or in another location, such as the database 150 on the scheduling system 125.
  • the event assistant system 105 validates the event.
  • the event assistant system 105 compares the event data to schedules, stored location information, and/or other data for the organizer 110 and invitees 115.
  • the event assistant system 105 can utilize data stored on the event assistant system 105 and/or retrieve data from the scheduling system 125 or another device.
  • the event assistant system 105 checks that the there are no preexisting scheduling conflicts with the event.
  • the event assistant system 105 checks that the organizer 110 and/or invitees 115 can travel to the event on-time based on an initial location.
  • the event assistant system 105 additionally confirms that the event location is a valid location, such as a valid address and/or a physically accessible location.
  • the event assistant system 105 and/or organizer 110 can determine the event area 135 at stage 815 or optionally at stage 805.
  • the event assistant system 105 requests permission from the invitees 115 and/or the organizer 110.
  • the permissions include sending notifications, such as the notification 625 in FIG. 6 or the notification 705 in FIG. 7, and accessing geolocation data, such as from the location module 415 on the user device 130.
  • the event assistant system 105 can request additional information, such as the mode of transportation 140 of the user as one example.
  • the event assistant system 105 uses information about the invitees 115 and/or organizer 110 to determine an ETA for each user. In one example, the event assistant system 105 uses the location module 325 to determine the ETAs. In another example, the event assistant system 105 utilizes the Al system 145 to determine the ETAs.
  • the event assistant system 105 can use a neural network in the Al system 145.
  • the event assistant system 105 can utilize an external mapping service to determine the ETAs.
  • the event assistant system 105 determines the ETAs based on routing data that includes geolocation data from the user devices 130, the modes of transportation 140 of the users, behavior data of the users, and/or other data.
  • the event assistant system 105 periodically retrieves an updated location from each user and/or periodically updates the ETA for each user.
  • the event assistant system 105 changes the status of the invitees 115 and/or organizer 110 to "Here" as the invitees 115 and organizer 110 arrive at the event.
  • the event assistant system 105 automatically determines that the user is at the event area 135 based on geolocation data from the user device 130.
  • the system 100 can include beacons and/or proximity sensors to identify users that arrive at the event.
  • each user indicates to the event assistant system 105 that the user has arrived through the user device 130.
  • the flowchart 800 can continue to stage 805 again to create additional events.
  • FIG. 9 includes a flowchart 900 depicting another method for managing invitees 115 for an event.
  • the event assistant system 105 sends a request to the invitees 115 and/or organizer 110 for routing data.
  • the users can receive the request in the form of the notification 625 in FIG. 6, the notification 705 in FIG. 7, as an email, and/or in another form.
  • the request can prompt the users to provide geolocation data from the user devices 130, information about the modes of transportation 140 being used, and/or other information.
  • the event assistant system 105 can additionally request consent to send notifications, monitor geolocation data, and/or receive other data from the users.
  • the event assistant system 105 checks if the user has read the notification from stage 905. If the user has not read the notification, the system 100 proceeds to stage 915. At stage 915, the event assistant system 105 sends a second notification to the user. In one example, the second notification is an email. Alternatively, the second notification could be in the same form as the notification in stage 905. If the user has read the notification, the system 100 proceeds to stage 920. Optionally, the system 100 proceeds to stage 920 if the time is not close to the event start time and/or the expected departure time for the user. At stage 920, the user updates the routing data in the application on the user device 130. The user can manually provide information such as the mode of transportation 140 and/or a current location. In one example, the user device 130 automatically provides the current location of the user.
  • the user device 130 sends a location report to the event assistant system 105 with the updated routing information.
  • the user device 130 periodically sends updated routing information to the event assistant system 105 when the application is open on the user device 130.
  • the user device 130 can automatically send updates about the user location data to the event assistant system 105.
  • the event assistant system 105 calculates an ETA for the user based on the routing data.
  • the event assistant system 105 can additionally utilize other data to calculate an ETA, such as user behavior data.
  • the event assistant system 105 is configured to utilize the scheduling system 125 and/or the Al system 145 to determine the ETA.
  • the event assistant system 105 can utilize an external mapping service to determine the ETA.
  • the event assistant system 105 compares the event start time to the ETAs for each user. If the ETA is beyond the event start time, the system 100 proceeds to stage 940. At stage 940, the event assistant system 105 sends an alert to the organizer 110 and/or the invitee 115. In one embodiment, the event assistant system 105 sends the alert to the organizer 110 to inform the organizer 110 that one of the invitees 115 will be late. In another embodiment, the event assistant system 105 sends the alert to an individual user when the ETA of that user is beyond the start time. In yet another embodiment, the event assistant system 105 could alert the organizer 110 and all the invitees 115. From stage 940, the system 100 proceeds back to stage 905. If the ETA is not beyond the start time at stage 935, the system 100 also proceeds to stage 905. At stage 905, the event assistant system 105 can send additional requests to users leading up to the event start time.
  • FIG. 10 shows a flowchart 1000 depicting yet another method for managing invitees 115 for an event.
  • the event assistant system 105 tracks the behavior of the organizer 110 and/or invitees 115.
  • the event assistant system 105 tracks the whether the users arrive to events on time, how long the users take to travel to events, what rewards the users receive, the modes of transportation 140 of the users, and/or other information about the users related to events on the system 100.
  • the user behavior can be stored on the event assistant system 105, on the database 150 of the scheduling system 125, on the user devices 130, and/or on another device.
  • the event assistant system 105 learns the user behavior.
  • the event assistant system 105 is configured to learn conditions that encourage users to arrive at events on time, such as certain rewards that are offered, event locations, event times, and/or other data.
  • the event assistant system 105 utilizes the Al system 145 to train an Al model based on the user behavior.
  • the Al system 145 can include one or more neural networks trained on the user behavior, such as a convolutional neural network, recurrent neural network, generative neural network, and/or discriminative neural network as examples.
  • the event assistant system 105 utilizes the learned user behavior to adjust estimates for the users.
  • the event assistant system 105 can use user behavior to adjust the predictions about the ETAs of the users, whether users will be absent at an event, and/or other actions of the users. For instance, the event assistant system 105 can determine the time needed to park, reach a certain floor of a building, and walk to the event on that floor for a repeated event in that building.
  • the event assistant system 105 offers rewards to the users based on the user behavior. For example, the event assistant system 105 can offer the reward 710 in FIG. 7 to the users, including coupons, gift cards, store credits, cryptocurrency, donations, and/or other types of rewards.
  • the event assistant system 105 can offer users rewards that encourage the user to arrive on time. For instance, the event assistant system 105 can offer a user free food and/or a food coupon if the user is typically on time when provided such an offer. From stage 1020, the system 100 returns to stage 1005 to track additional user behavior.
  • “And/Or” generally refers to a grammatical conjunction indicating that one or more of the cases it connects may occur. For instance, it can indicate that either or both of the two stated cases can occur.
  • “and/or” includes any combination of the listed collection.
  • "X, Y, and/or Z” encompasses: any one letter individually (e.g., ⁇ X ⁇ , ⁇ Y ⁇ , ⁇ Z ⁇ ); any combination of two of the letters (e.g., ⁇ X, Y ⁇ , ⁇ X, Z ⁇ , ⁇ Y, Z ⁇ ); and all three letters (e.g., ⁇ X, Y, Z ⁇ ). Such combinations may include other unlisted elements as well.
  • Al generally refers to the ability of machines to perceive, synthesize, and/or infer information. Al may enable a machine to perform tasks which normally require human intelligence. For example, Al may be configured for speech recognition, visual perception, decision making, language interpretation, logical reasoning, and/or moving objects. Typically, Al is embodied as a model of one or more systems that are relevant to tasks that a machine is configured to perform. Al models may be implemented on a device, such as a mechanical machine, an electrical circuit, and/or a computer. Al models may be implemented in an analog or digital form and may be implemented on hardware or software. The implementation of Al may also utilize multiple devices which may be connected in a network.
  • “Artificial Neural Network” or “Neural Network” generally refers to a model composed of multiple nodes. Each node receives a signal from one or more inputs or other nodes. Each node may also perform an operation on the received signal and sends a signal to one or more other nodes or outputs. The nodes may be arranged in layers such that one or more signals travels across the layers sequentially.
  • the neural network may be given data that trains the neural network.
  • the neural network may be trained to perform a variety of tasks. For example, a neural network may be trained to recognize objects in an image, recognize patterns in a sequence, replicate motion, or approximate a function.
  • “Artificial Neuron” or “Node” generally refers to a computational model within a neural network that receives one or more inputs and produces an output.
  • the model of a neuron applies weights to the one or more inputs and sums the weighted inputs.
  • the model of a neuron may include one or more non-linear functions, for example sigmoid, piecewise, and/or step functions.
  • Inputs to a neuron may be outputs from one or more other neurons in the neural network or may be inputs to the neural network as a whole.
  • outputs of a neuron may be inputs to one or more other neurons in the neural network or may be outputs of the neural network as a whole.
  • Cellular Network or “Mobile Network” generally refers to a communications link or communications network where the final communications link to an originating sending node or final receiving node in the network is via a wireless link.
  • the cellular network is distributed over land areas (“cells”), each cell served by at least one fixed-location transceiver known as a cell site, base station, or generically, a “cell tower”. This base station provides the cell with the network coverage which can be used for transmission of voice, data and other types of communication.
  • each cell uses a different set of frequencies from neighboring cells, to avoid interference and provide guaranteed bandwidth within each cell.
  • a cellular network switching from one cell frequency to a different cell frequency is done electronically without interruption as various mobile devices with transceivers configured to communicate with the network (i.e. the originating or final receiver nodes) move from cell to cell during an ongoing continuous communication, all generally without a base station operator or manual switching. This is called the “handover” or “handoff.”
  • a new channel is automatically selected for the mobile device on the new base station which will serve it as the mobile device moves around in the cell.
  • the mobile unit then automatically switches from the current channel to the new channel and communication continues.
  • the most common example of a cellular network is a mobile phone (cell phone) network.
  • Communication Link or “Communication Channel” generally refers to a connection between two or more communicating entities and may or may not include a communications channel between the communicating entities.
  • the communication between the communicating entities may occur by any suitable means.
  • the connection may be implemented as an actual physical link, an electrical link, an electromagnetic link, a logical link, or any other suitable linkage facilitating communication.
  • communication may occur by multiple components in the communication link configured to respond to one another by physical movement of one element in relation to another.
  • the communication link may be composed of multiple electrical conductors electrically connected to form the communication link.
  • elements of the connection may be implemented by sending or receiving electromagnetic energy at any suitable frequency, thus allowing communications to pass as electromagnetic waves.
  • These electromagnetic waves may or may not pass through a physical medium such as an optical fiber, or through free space, or any combination thereof.
  • Electromagnetic waves may be passed at any suitable frequency including any frequency in the electromagnetic spectrum.
  • the communication links may be a conceptual linkage between the sender and recipient such as a transmission station in the receiving station.
  • Logical link may include any combination of physical, electrical, electromagnetic, or other types of communication links.
  • Computer generally refers to any computing device configured to compute a result from any number of input values or variables.
  • a computer may include a processor for performing calculations to process input or output.
  • a computer may include a memory for storing values to be processed by the processor, or for storing the results of previous processing.
  • a computer may also be configured to accept input and output from a wide array of input and output devices for receiving or sending values. Such devices include other computers, keyboards, mice, visual displays, printers, industrial equipment, and systems or machinery of all types and sizes. For example, a computer can control a network interface to perform various network communications upon request.
  • processors within a computer or computing device also encompasses any such processor or computing device serving to make calculations or comparisons as part of a disclosed system. Processing operations related to threshold comparisons, rules comparisons, calculations, and the like occurring in a computer may occur, for example, on separate servers, the same server with separate processors, or on a virtual computing environment having an unknown number of physical processors as described above.
  • CNN convolutional Neural Network
  • CNNs are used for identifying objects in an image, tracking an object in a video, classifying images, identifying words in speech, understanding meaning from text, generating text, generating images, and/or performing other tasks.
  • a CNN more accurately generates, analyzes, and/or performs other tasks related to images and video than other types of neural networks.
  • the neurons of each layer in a CNN are fully connected such that each neuron of one layer is connected to every neuron of neighboring layers.
  • the CNN includes features to mitigate negative effects of a fully connected neural network, such as overfitting data.
  • DBMS Database Management System
  • the DBMS provides various functions that allow entry, storage and retrieval of large quantities of information as well as ways to manage how that information is organized.
  • a database is not generally portable across different DBMSs, but different DBMSs can interoperate by using standardized protocols and languages such as Structured Query Language (SQL), Open Database Connectivity (ODBC), Java Database Connectivity (JDBC), or Extensible Markup Language (XML) to allow a single application to work with more than one DBMS.
  • SQL Structured Query Language
  • ODBC Open Database Connectivity
  • JDBC Java Database Connectivity
  • XML Extensible Markup Language
  • Databases and their corresponding database management systems are often classified according to a particular database model they support. Examples include a DBMS that relies on the “relational model” for storing data, usually referred to as Relational Database Management Systems (RDBMS). Such systems commonly use some variation of SQL to perform functions which include querying, formatting, administering, and updating an RDBMS.
  • RDBMS Relational Database Management Systems
  • Other examples of database models include the “object” model, the “object- relational” model, the “file”, “indexed file” or “flat-file” models, the “hierarchical” model, the “network” model, the “document” model, the “XML” model using some variation of XML, the “entity-attribute-value” model, and others.
  • database management systems examples include PostgreSQL provided by the PostgreSQL Global Development Group; Microsoft SQL Server provided by the Microsoft Corporation of Redmond, Washington, USA; MySQL and various versions of the Oracle DBMS, often referred to as simply “Oracle” both separately offered by the Oracle Corporation of Redwood City, California, USA; the DBMS generally referred to as “SAP” provided by SAP SE of Walldorf, Germany; and the DB2 DBMS provided by the International Business Machines Corporation (IBM) of Armonk, New York, USA.
  • the database and the DBMS software may also be referred to collectively as a “database”.
  • the term “database” may also collectively refer to the database, the corresponding DBMS software, and a physical computer or collection of computers.
  • the term “database” may refer to the data, software for managing the data, and/or a physical computer that includes some or all of the data and/or the software for managing the data.
  • Electromagnetic Spectrum generally refers to the range of all possible frequencies of electromagnetic radiation.
  • “Generative Network” or “Generator” generally refers to a neural network that generates candidates as outputs.
  • the output candidates are images, videos, speech, text, and/or instructions for a machine.
  • the generator is configured to produce outputs that are similar to or indistinguishable from information obtained from a training dataset.
  • the outputs of a generator are evaluated by another neural network, for example a discriminator network.
  • the generator is given random data as input.
  • the generator may perform operations on the input data.
  • the generator also receives information from a discriminator network that is used to train the generator and modify the operations of the generator.
  • Geo-fence generally refers to a virtual boundary generated for a real geographical area.
  • the virtual boundary defined by a geo-fence may be monitored using a positioning system and/or any other form of location-based service.
  • Geolocation is closely related to the use of positioning systems such as the Global Positioning System (GPS) and may include determining a recognizable location coordinate (e.g., a street address) rather than just a set of geographic coordinates.
  • GPS Global Positioning System
  • a geolocation/geopositioning module, engine, or device may use any suitable positioning system or positioning technology.
  • a geolocation module may use radio frequency (RF) location methods, such as Multilateration or Time Difference Of Arrival (TDOA) to geolocate an object.
  • RF radio frequency
  • TDOA Time Difference Of Arrival
  • GPS is an example of a TDOA geolocation system.
  • TDOA systems often utilize mapping displays or other geographic information system.
  • IP address location data can include information such as country, region, city, postal/zip code, latitude, longitude and time zone. Deeper data sets can determine other parameters such as domain name, connection speed, ISP, language, proxies, company name, Designated Market Area (DMA), Metro Survey Areas (MSA), North American Industry Classification System (NAICS) codes, and home/business.
  • DMA Designated Market Area
  • MSA Metro Survey Areas
  • NAICS North American Industry Classification System
  • Handheld generally refers to an object, such as a tool or other device, which has been designed so that object can be easily held, used, and operated with one or two hands of a human being.
  • a handheld device is designed to be small and light enough to be operated in the hand of a human being for an extended period of time without experiencing significant fatigue.
  • Input Device generally refers to any device coupled to a computer that is configured to receive input and deliver the input to a processor, memory, or other part of the computer.
  • Such input devices can include keyboards, mice, trackballs, and touch sensitive pointing devices such as touchpads or touchscreens.
  • Input devices also include any sensor or sensor array for detecting environmental conditions such as temperature, light, noise, vibration, humidity, and the like.
  • I/O Device generally refers to any device or collection of devices coupled to a computing device that is configured to receive input and deliver the input to a processor, memory, or other part of the computing device and/or is controlled by the computing device to produce an output.
  • the I/O device can include physically separate input and output devices, or the input and output devices can be combined together to form a single physical unit.
  • Such input devices of the I/O device can include keyboards, mice, trackballs, and touch sensitive pointing devices such as touchpads or touchscreens.
  • Input devices also include any sensor or sensor array for detecting environmental conditions such as temperature, light, noise, vibration, humidity, and the like.
  • Examples of output devices for the VO device include, but are not limited to, screens or monitors displaying graphical output, a projecting device projecting a two-dimensional or three-dimensional image, or any kind of printer, plotter, or similar device producing either two-dimensional or three-dimensional representations of the output fixed in any tangible medium (e.g., a laser printer printing on paper, a lathe controlled to machine a piece of metal, or a three-dimensional printer producing an object).
  • An output device may also produce intangible output such as, for example, data stored in a database, or electromagnetic energy transmitted through a medium or through free space such as audio produced by a speaker controlled by the computer, radio signals transmitted through free space, or pulses of light passing through a fiber-optic cable.
  • Interface or “Human-Machine Interaction (HMI)” generally refers to a computer, a smartphone, a tablet, and other computerized device or system where a user receives information and/or transmits commands.
  • the interface can be a mechanism through which users can input information or commands and receive feedback or output from a system.
  • the interface can be visual, such as a graphical user interface (GUI) displayed on a screen.
  • GUI graphical user interface
  • the interface can be physical, such as buttons, switches, or knobs on a control panel.
  • the interface can be auditory, such as spoken commands and feedback, or haptic, such as vibrations or tactile feedback.
  • each memory may include one or more types of solid-state electronic memory, magnetic memory, or optical memory, just to name a few.
  • each memory may include solid-state electronic Random Access Memory (RAM), Sequentially Accessible Memory (SAM) (such as the First-In, First-Out (FIFO) variety or the Last-In-First-Out (LIFO) variety), Programmable Read Only Memory (PROM), Electronically Programmable Read Only Memory (EPROM), or Electrically Erasable Programmable Read Only Memory (EEPROM); an optical disc memory (such as a DVD or CD ROM); a magnetically encoded hard disc, floppy disc, tape, or cartridge media; or a combination of any of these memory types.
  • each memory may be volatile, nonvolatile, or a hybrid combination of volatile and nonvolatile varieties.
  • Microcontroller or “MCU” generally refers to a small computer on a single integrated circuit. It may be similar to, but less sophisticated than, a System on a Chip or "SoC”; a SoC may include a microcontroller as one of its components.
  • a microcontroller may contain one or more CPUs (processor cores) along with memory and programmable input/output peripherals.
  • Program memory in the form of ferroelectric RAM, NOR flash or OTP ROM may also be included on the chip, as well as a small amount of RAM.
  • Microcontrollers may be designed for embedded applications, in contrast to the microprocessors used in personal computers or other general-purpose applications consisting of various discrete chips.
  • Microcontrollers may be included in automatically controlled products and devices, such as automobile engine control systems, implantable medical devices, remote controls, office machines, appliances, power tools, toys and other embedded systems.
  • An MCU may be configured to handle mixed signals thus integrating analog components needed to control non-digital electronic systems.
  • Some microcontrollers may use four-bit words and operate at frequencies as low as 4 kHz, for low power consumption (single-digit milliwatts or microwatts). They will generally have the ability to retain functionality while waiting for an event such as a button press or other interrupt; power consumption while sleeping (CPU clock and most peripherals off) may be just nanowatts, making many of them well suited for long lasting battery applications.
  • microcontrollers may serve performance roles, where they may need to act more like a Digital Signal Processor (DSP), with higher clock speeds and power consumption.
  • DSP Digital Signal Processor
  • a microcontroller may include any suitable combination of circuits such as: 1. a central processing unit - ranging from small and simple processors with registers as small as 4 bits or list, to complex processors with registers that are 32, 64, or more bits 2. volatile memory (RAM) for data storage 3. ROM, EPROM, EEPROM or Flash memory for program and operating parameter storage 4. discrete input and output bits, allowing control or detection of the logic state of an individual package pin 5. serial input/output such as serial ports (UARTs) 6. other serial communications interfaces like FC, Serial Peripheral Interface and Controller Area Network for system interconnect 7.
  • Mobile Device generally refers to a piece of portable electronic equipment that can connect to a network such as a wireless network, a mobile network, and/or the internet.
  • a mobile device can include a smartphone or tablet computer.
  • Model generally refers to a representation of a system, process, and/or object. Models modify one or more inputs using equations and/or logical operations to produce one or more outputs.
  • a variety of systems, processes, and objects can be represented by models, including networks of neurons in a brain. Some models do not exactly portray the system or process and are a generalized or estimated representation to a certain extent. Some models produce varying outputs in response to the same input. For example, a statistical model of a system may involve probabilistic distributions based on randomly generated numbers such that the output is random to a certain degree.
  • Network or “Computer Network” generally refers to a telecommunications system that allows computers or other electronic devices to exchange data.
  • Computers can pass data to each other along data connections by transforming data into a collection of datagrams or packets.
  • the connections between computers and the network may be established using either cables, optical fibers, or via electromagnetic transmissions such as for wireless network devices.
  • Computers coupled to a network may be referred to as “nodes” or as “hosts” and may originate, broadcast, route, or accept data from the network. Nodes can include any computing device such as personal computers, phones, and servers as well as specialized computers that operate to maintain the flow of data across the network, referred to as "network devices”.
  • a network may have any suitable network topology defining the number and use of the network connections.
  • the network topology may be of any suitable form and may include point-to-point, bus, star, ring, mesh, or tree.
  • a network may be an overlay network which is virtual and is configured as one or more layers that use or "lay on top of other networks.
  • processor generally refers to one or more electronic components configured to operate as a single unit configured or programmed to process input to generate an output.
  • a processor may have one or more components located remotely relative to the others.
  • One or more components of each processor may be of the electronic variety defining digital circuitry, analog circuitry, or both.
  • each processor is of a conventional, integrated circuit microprocessor arrangement, such as one or more PENTIUM, i3, i5 or i7 processors supplied by INTEL Corporation of 2200 Mission College Boulevard, Santa Clara, Calif. 95052, USA.
  • the processor uses a Reduced Instruction Set Computing (RISC) architecture, such as an Advanced RISC Machine (ARM) type processor developed and licensed by ARM Holdings of Cambridge, United Kingdom.
  • RISC Reduced Instruction Set Computing
  • the processor can include a Central Processing Unit (CPU) and/or an Accelerated Processing Unit (APU), such as those using a K8, K10, Bulldozer, Bobcat, Jaguar, and Zen series architectures, supplied by Advanced Micro Devices, Inc. (AMD) of Santa Clara, California.
  • CPU Central Processing Unit
  • APU Accelerated Processing Unit
  • ASIC Application-Specific Integrated Circuit
  • An ASIC is an Integrated Circuit (IC) customized to perform a specific series of logical operations for controlling the computer to perform specific tasks or functions.
  • An ASIC is an example of a processor for a special purpose computer, rather than a processor configured for general-purpose use.
  • An application-specific integrated circuit generally is not reprogrammable to perform other functions and may be programmed once it is manufactured.
  • a processor may be of the "field programmable" type. Such processors may be programmed multiple times "in the field” to perform various specialized or general functions after they are manufactured.
  • a field-programmable processor may include a Field-Programmable Gate Array (FPGA) in an integrated circuit in the processor.
  • An FPGA may be programmed to perform a specific series of instructions which may be retained in nonvolatile memory cells in the FPGA.
  • the FPGA may be configured by a customer or a designer using a Hardware Description Language (HDL).
  • HDL Hardware Description Language
  • An FPGA may be reprogrammed using another computer to reconfigure the FPGA to implement a new set of commands or operating instructions. Such an operation may be executed in any suitable means such as by a firmware upgrade to the processor circuitry.
  • a computer is not limited to a single physical device in a single location, so also the concept of a "processor" is not limited to a single physical logic circuit or package of circuits but includes one or more such circuits or circuit packages possibly contained within or across multiple computers in numerous physical locations.
  • an unknown number of physical processors may be actively processing data, and the unknown number may automatically change over time as well.
  • processor includes a device configured or programmed to make threshold comparisons, rules comparisons, calculations, or perform logical operations applying a rule to data yielding a logical result (e.g., "true” or “false”). Processing activities may occur in multiple single processors on separate servers, on multiple processors in a single server with separate processors, or on multiple processors physically remote from one another in separate computing devices.
  • Satellite Navigation generally refers to a system that uses satellites to provide geo-spatial positioning data.
  • the system may include a receiver that interacts with satellites using electromagnetic radiation. The timing of the transmission of the signal from the receiver to the satellites allows calculation of the position of the receiver using triangulation.
  • satellite navigation systems include global positioning systems such as GPS and GLONASS as well as global positioning systems under development such as Galileo.
  • a satellite navigation system may also be a regional positioning system such as BeiDou, NAVIC, and QZSS.
  • Training generally refers to the process of building a model based on given data.
  • training is used to teach artificial intelligence (Al) models information from a dataset and to make predictions.
  • models are given training data as input and output predictions for a target based on the given data.
  • the models may be adjusted based on the outputs to improve the quality of predictions for the target.
  • a machine learning algorithm may adjust parameters of a model based on differences between the model output and information from the training data.
  • 100 system event assistant system organizer invitees network scheduling system user device event area mode of transportation

Landscapes

  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Physics & Mathematics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

A system (100) configured to manage invitees (115) to an event. The system (100) includes an event assistant system (105), an organizer (110), invitees (115), and a network (120). The system (100) allows the organizer (110) to create an event and send invites to the event assistant system (105) and invitees (115). The event assistant system (105) is configured to ask invitees (115) for consent to send notifications and retrieve location data. The event assistant system (105) can send notifications to the invitees (115) to request updated location data, information about a mode of transportation (140), and other information. The event assistant system (105) is additionally configured to calculate an estimated time (ETA) of arrival for the invitees (115). If the ETA for an invitee is beyond the start time of the event, the event assistant system (105) can send notifications to the organizer (110) and invitees (115) as an alert. The event assistant system (105) is configured to offer rewards to users, such as coupons, credits, and donations for example. Additionally, the event assistant system (105) is configured to learn user behavior.

Description

LOCATION TRACKING FOR EVENT ATTENDANCE
CROSS REFERENCE TO RELATED APPLICATIONS
This application claims the benefit of US Patent Application Number 63/479,656, filed January 12, 2023, which is hereby incorporated by reference.
BACKGROUND
Organizing events, such as business or social events, can be a difficult and time-consuming process. The logistics involved in planning any event can be quite complex. For instance, wedding planners can experience significant stress on the day of a wedding dealing with logistical issues. Likewise, being a business conference planner can be a quite stressful job on the day of the conference, especially if something unforeseen occurs.
Thus, there is a need for improvement in this field.
SUMMARY
As noted above, being an event organizer can be a time consuming and stressful job dealing with unforeseen circumstances. For instance, an event organizer or planner may discover that invitees are late or not even attending at all only after the event has begun. Generally, late or absent invitees cause a variety of issues for organizers of meetings, parties, gatherings, and/or other events. In some cases, late or absent invitees disrupt the event, such as by causing a delay in the entire event, causing an event to be cancelled or rescheduled, reducing the quality of the event, and/or affecting the event in another way. A unique system has been developed to address these as well as other issues. The system provides a method for managing event invitees so that the organizer is aware of problems before plans are disrupted. The system is able to integrate with existing scheduling applications and maintains the privacy of all users.
To use the system, the organizer in one example creates an event that includes a location. The organizer adds into the system or assistant all invitees to the event and any special Invitees along with their corresponding email addresses. The assistant in one example is a remote computer system that is accessible over a network such as the Internet and/or a mobile data network via a mobile phone. The computer system for the assistant includes memory and a processor for performing various activities via software and other types of algorithms, such as using artificial intelligence (Al) learning techniques. The assistant maintains in memory, such as in the form of a database, an e-mail address that is associated with a specific personality for interacting with the event. When saving the event, the organizer sends e-mail invitations to the invitees.
Upon receiving the e-mailed invitation (such as an .ics file), the assistant parses and validates the event, notifying the organizer of any problems (such as invalid location). Valid events are added to the system database. The assistant contacts all new invitees through e-mail to gather consent for assistance. Included in this consent is browser permission for geolocation and push notifications.
As the event approaches, the assistant contacts the invitees through push notifications to gather current location and, in some cases, planned mode of transportation (e.g., walk, bike, public transit, personal vehicle, taxi/rideshare, air, etc.). In other cases, information concerning the current location but not the mode of transportation is gathered. In this case, the mode of transportation is inferred, such as via travel velocity, current location, and the like. For instance, if the current location of the invitee or other user is at an airport or rail station, the system can infer that subsequent travel is via an airplane or train. This inference can be further bolstered based on the subsequent velocity and/or location. For instance, the velocity and/or location of the user can be indicative of flight or travel along a railway. In most cases, the risk of incorrectly determining the mode of transportation is low. Through machine learning and other techniques, the system is configured to enhance the accuracy of these inferences of the modes of transportation. In one version, the notification asks the intention of the user attending the event each time, and in some cases, the system attempts to gather the location of the user. If notifications go unread near the time when an Invitee needs to leave, further e-mail notifications are sent.
With the web app active, periodic location reports of the invitees are sent to the assistant. The assistant tracks these locations and uses routing information to estimate the time of arrival (ETA) for each invitee. The assistant sends the organizer a link to a web app that displays the real-time status of invitees. To maintain privacy, locations are not shared, only the ETAs. When an ETA slips beyond the event start time, alerts are shown. The assistant offers the organizer the option of sharing a link so that others are able to monitor the ETAs. Enroute, invitees are able to communicate with the organizer and other invitees through the app. This allows simple questions (e.g., "What's the gate code?") and updates (e.g., "I brought donuts!") to be communicated to the group.
When the invitee is within range of the event location, the status of the invitee changes to "on-site" or some other indicator of the invitee being close to the event location. In some cases, an "I'm here!" button becomes available. When the invitee selects this button, the assistant communicates to the organizer that the invitee has arrived and tracking ceases. In one version, a photo is taken and shared to record the exact location and make meeting easier.
For initial ease of use, the system in one form is first deployed using a web app. In other examples, this system is expanded to include native apps such as those found on Android and iOS mobile phones. New assistant behaviors can be added through new assistant e-mail addresses (e.g., betty@example.com orjohn@example.com). These behaviors allow different combinations of monitoring and reminder abilities. For example, one assistant is able to switch the role of the organizer and invitees, sending reminders to and tracking progress of the organizer and allowing one or more invitees to monitor ETA of the organizer. This is useful for delivery personnel and home equipment installers. The assistant in another variation allows everyone to view everyone's progress and get reminders.
In some versions, the system has opt-out capabilities for location tracking. By the user responding to an e-mail and providing their intention on attending the event, the system is able to generally estimate the ETA without need of location sharing data or the user receiving multiple notifications. While the system is able to provide real-time estimates on times of arrival, the system is further configured to deidentify location data once the data is no longer needed to estimate the ETA so as to act in a trustworthy manner. In one form, the system maintains anonymized location data that can be later analyzed to enhance the system. For example, if someone provides a location at a rapid transit station (e.g., a bus or rail station), the system is configured to start using scheduling data from the corresponding rapid transit system to determine the ETA of the individual. Instead of maintaining a link to each individual user for the location data, the system creates an event-specific identifier (ID) for each user. During event tracking, the system logs the location data with that event-specific ID. Once event tracking ends, such as when the user arrives at the event, when the user declines the event invitation, and/or when the event concludes, the system destroys the link between the user and the event-specific ID.
During the event, or even afterwards, the system can provide useful information to the organizer of the event. For example, the system in one version maintains a log of invitees who affirmatively indicated an intention to attend the event at various times and then did not attend the event. The system tracks these types of statistics for each invitee. This resulting data can then be provided to the organizers of the event.
The assistant in one version uses event, routing, and affiliate data to offer promotional rewards. These rewards include providing special time-sensitive coupons for rewards (e.g., food, beverage, parking, etc.) along the route to the event to encourage leaving on time. Using event knowledge, specials may be offered to invitees such as lunch delivery for everyone involved in the event. Any event can be augmented to include a reward held in escrow. This may be a guarantee of being on-time (e.g., "Our installer will be on time, or you'll get $50.") or it could be a reward (e.g., "Come on time and receive $5."). Encouraging workplace punctuality requires being fair to all involved. The organizers are able to establish awards to be delivered impartially by the assistants when people achieve on-time goals over the course of multiple events (e.g., weekly, monthly, etc.). A raffle function also allows the organizer to randomly select from those who were on time in order to award prizes locally.
In one version, the assistants learn from group behaviors and modify estimates accordingly (e.g., "How long does it take to park and get to the second floor of XXX?"). The assistants are further able to learn from individual behaviors and modify the offers the assistant makes (e.g., "Bob is always early when I offer a cookie.") The users in one variation are invited to select a charitable organization. These organizations are able to receive donations from the system as a result of their users being on time to events (e.g., "Don't be late - donate!"). The users are able to generate embedded web badges that securely show how much their use of the system has benefitted their chosen charity. Events are checked for conflicts for each user. In one use case, alerts are issued to users unable to attend scheduled events (e.g., "You won't have time to get from A to B."). For those who fly, flight tracking is used to estimate time of arrival. The rewards may be implemented as QR code coupons, NFC coupons, credits on store accounts or gift cards, and/or cryptocurrency.
The systems and techniques as described and illustrated herein concern a number of unique and inventive aspects. Some, but by no means all, of these unique aspects are summarized below.
Aspect 1 generally concerns a system.
Aspect 2 generally concerns the system of any previous aspect including an event assistant system.
Aspect 3 generally concerns the system of any previous aspect including an organizer.
Aspect 4 generally concerns the system of any previous aspect including a network. Aspect 5 generally concerns the system of any previous aspect including an invitee.
Aspect 6 generally concerns the system of any previous aspect in which the event assistant system is a remote computer system.
Aspect 8 generally concerns the system of any previous aspect in which the event assistant system is configured to alert organizer when the ETA of an invitee is beyond the start time of the event.
Aspect 9 generally concerns the system of any previous aspect in which the event assistant system is configured to receive an event invitation for an event from an organizer.
Aspect 10 generally concerns the system of any previous aspect in which the network is configured to communicatively link the assistant, the organizer, and the invitee.
Aspect 11 generally concerns the system of any previous aspect in which the event assistant system is configured to manage one or more invitees for an event.
Aspect 12 generally concerns the system of any previous aspect in which the event assistant system is configured to allow the organizer to create an event.
Aspect 13 generally concerns the system of any previous aspect in which the event assistant system is configured to support the organizer by sending invites to the invitees.
Aspect 14 generally concerns the system of any previous aspect in which the event assistant system is configured to ask one or more invitees for permission to obtain routing data from one or more invitee devices.
Aspect 15 generally concerns the system of any previous aspect in which the event assistant system is configured to send a notification to the invitee to obtain current routing data of the invitee. Aspect 16 generally concerns the system of any previous aspect in which the notification is a push notification.
Aspect 17 generally concerns the system of any previous aspect in which the routing data includes geolocation data of the invitee.
Aspect 18 generally concerns the system of any previous aspect in which the routing data includes mode of transportation used by the invitees.
Aspect 19 generally concerns the system of any previous aspect in which the event assistant system is configured to determine one or more estimated time of arrivals (ETAs) for the invitees based on the location data and the routing data.
Aspect 20 generally concerns the system of any previous aspect in which the event assistant system is configured to send an alert to the organizer device when the ETAs of any of the invitees are beyond a start time of the event.
Aspect 21 generally concerns the system of any previous aspect in which the event assistant system is configured to perform artificial intelligence algorithms.
Aspect 22 generally concerns the system of any previous aspect in which the event assistant system is configured to learn behavior of the organizer and invitees.
Aspect 23 generally concerns the system of any previous aspect in which the event assistant system is configured to offer rewards to the invitees.
Aspect 24 generally concerns the system of any previous aspect in which the rewards are determined based on the event and the routing data of the invitees.
Aspect 25 generally concerns the system of any previous aspect in which the event assistant system is configured to ask the invitees for geolocation and notification consent via the invitee devices. Aspect 26 generally concerns the system of any previous aspect in which the event assistant system is configured to send notifications to one or more invitees to obtain current location and mode of transportation.
Aspect 27 generally concerns the system of any previous aspect in which the event assistant system is configured to determine estimated time of arrival (ETA) for one or more invitees based on location and routing data.
Aspect 28 generally concerns the system of any previous aspect in which the organizer is able to see ETA for each invitee using a web app.
Aspect 29 generally concerns the system of any previous aspect in which the event assistant system is configured to denote the invitee as present when the invitee is within range of the location of the event.
Aspect 30 generally concerns the system of any previous aspect in which the event assistant system is configured to offer promotional rewards based on event and routing data.
Aspect 31 generally concerns the system of any previous aspect in which the event assistant system allows a user to select a charity to receive rewards based on user behavior.
Aspect 32 generally concerns the system of any previous aspect in which the event assistant system is configured to learn user behavior to modify the ETAs for individuals and/or groups.
Aspect 33 generally concerns the system of any previous aspect in which the event assistant system is configured to send an email notification to the invitees if a push notification is unread.
Aspect 34 generally concerns the system of any previous aspect in which the event assistant system is configured to notify a user if the ETA of the user is beyond the start time of the event. Aspect 35 generally concerns the system of any previous aspect in which the event invitation is an email.
Aspect 36 generally concerns the system of any previous aspect in which the event assistant system includes an email server.
Aspect 37 generally concerns the system of any previous aspect in which the event invitation identifies one or more email address for one or more invitees to the event.
Aspect 38 generally concerns the system of any previous aspect in which the event invitation includes a location for the event.
Aspect 39 generally concerns the system of any previous aspect in which the event assistant system is configured to validate the location of the event.
Aspect 40 generally concerns the system of any previous aspect in which the event invitation identifies one or more invitees to the event.
Aspect 41 generally concerns the system of any previous aspect in which the invitees have invitee devices.
Aspect 42 generally concerns the system of any previous aspect in which the event assistant system is configured to receive routing data from the invitee devices.
Aspect 43 generally concerns the system of any previous aspect in which the event assistant system is configured to receive location data from the invitee devices.
Aspect 44 generally concerns the system of any previous aspect in which the organizer has an organizer device.
Aspect 45 generally concerns the system of any previous aspect in which the event assistant system is configured to send the ETAs to an organizer device of the organizer. Aspect 46 generally concerns the system of any previous aspect in which the event assistant system is only able to send the ETAs for the invitees to the organizer device.
Aspect 47 generally concerns the system of any previous aspect in which the event assistant system is unable to send the location data of the invitees to the organizer device.
Aspect 48 generally concerns the system of any previous aspect in which the invitee devices are configured to notify the event assistant system when the invitee devices are within range of the location of the event.
Aspect 49 generally concerns the system of any previous aspect in which the event assistant system is configured to notify the organizer when the invitees are within range of the location of the event.
Aspect 50 generally concerns the system of any previous aspect in which the event assistant system is configured to notify the organizer when the invitees are on-site for the event.
Aspect 51 generally concerns the system of any previous aspect in which the invitee devices are configured to display an arrival button when at the location of the event.
Aspect 52 generally concerns the system of any previous aspect in which the invitee devices are configured to take a photograph when at the location of the event.
Aspect 53 generally concerns the system of any previous aspect in which the event assistant system ceases tracking of the invitees when the invitees arrive at the location of the event.
Aspect 54 generally concerns a method.
Aspect 55 generally concerns the method of any previous aspect including a method for managing event invitees.
Aspect 56 generally concerns the method of any previous aspect including creating an event with an organizer device. Aspect 57 generally concerns the method of any previous aspect including inviting with the organizer device one or more invitees and an event assistant system to the event.
Aspect 58 generally concerns the method of any previous aspect including tracking behavior of the invitees with the event assistant system.
Aspect 59 generally concerns the method of any previous aspect including requesting routing data from the invitee.
Aspect 60 generally concerns the method of any previous aspect including determining estimated time of arrivals (ETAs) for the invitees with the event assistant system.
Aspect 61 generally concerns the method of any previous aspect including comparing the ETAs to a start time of the event with the event assistant system.
Aspect 62 generally concerns the method of any previous aspect including offering a reward to the invitees based on the event data with the event assistant system.
Aspect 63 generally concerns the method of any previous aspect including learning user behavior with the event assistant system.
Aspect 64 generally concerns the method of any previous aspect including adjusting estimates based on user behavior with the event assistant system.
Aspect 65 generally concerns the method of any previous aspect including allowing a user to select a charitable organization.
Aspect 66 generally concerns the method of any previous aspect including donating the reward to the charitable organization.
Aspect 67 generally concerns the method of any previous aspect in which the reward is a donation to the charitable organization. Aspect 68 generally concerns the method of any previous aspect including alerting an organizer when the ETAs of at least one of the invitees is beyond the start time of the event.
Aspect 69 generally concerns the method of any previous aspect including sending a request from an event assistant system to an invitee device of an invitee for routing data.
Aspect 70 generally concerns the method of any previous aspect including updating routing information of the invitee at the event assistant system based on the routing data.
Aspect 71 generally concerns the method of any previous aspect including calculating an estimated time of arrival (ETA) based on the routing information with the event assistant system.
Aspect 72 generally concerns the method of any previous aspect including checking whether the invitee has read the request.
Aspect 73 generally concerns the method of any previous aspect including sending a second request to the invitee device.
Aspect 74 generally concerns the method of any previous aspect in which the first request is a push notification.
Aspect 75 generally concerns the method of any previous aspect in which the second request is an email.
Aspect 76 generally concerns the method of any previous aspect including sending an alert to a user when the ETA is beyond the start time of the event.
Aspect 77 generally concerns the method of any previous aspect in which the user is an event organizer. Aspect 78 generally concerns the method of any previous aspect in which the user is the invitee.
Aspect 79 generally concerns the method of any previous aspect including receiving the routing data of the invitee device at the event assistant system.
Aspect 80 generally concerns the method of any previous aspect in which the comparing the ETA to a start time of the event with the event assistant system. Further forms, objects, features, aspects, benefits, advantages, and embodiments of the present invention will become apparent from a detailed description and drawings provided herewith.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. l is a block diagram of a system with an event assistant system according to one example.
FIG. 2 is a block diagram of the FIG. 1 system according to another example. FIG. 3 is a block diagram of the FIG. 1 event assistant system according to one example.
FIG. 4 is a block diagram of a user device found in the FIG. 1 system.
FIG. 5 is a block diagram of a computer that can be incorporated into the FIG. 1 system.
FIG. 6 is a diagram of an organizer interface that can be displayed on the FIG. 4 user device according to one example. FIG. 7 is a diagram of an invitee interface that can be displayed on the FIG. 4 user device according to one example.
FIG. 8 is a flowchart of a technique for managing event invitees.
FIG. 9 is a flowchart of another technique for managing event invitees.
FIG. 10 is a flowchart of yet another technique for managing event invitees.
DETAILED DESCRIPTION OF SELECTED EMBODIMENTS
For the purpose of promoting an understanding of the principles of the invention, reference will now be made to the embodiments illustrated in the drawings and specific language will be used to describe the same. It will nevertheless be understood that no limitation of the scope of the invention is thereby intended. Any alterations and further modifications in the described embodiments and any further applications of the principles of the invention as described herein are contemplated as would normally occur to one skilled in the art to which the invention relates. One embodiment of the invention is shown in great detail, although it will be apparent to those skilled in the relevant art that some features that are not relevant to the present invention may not be shown for the sake of clarity.
The reference numerals in the following description have been organized to aid the reader in quickly identifying the drawings where various components are first shown. In particular, the drawing in which an element first appears is typically indicated by the left-most digit(s) in the corresponding reference number. For example, an element identified by a "100" series reference numeral will likely first appear in FIG. 1, an element identified by a "200" series reference numeral will likely first appear in FIG. 2, and so on.
FIG. 1 illustrates a system 100 according to one example. The system 100 is configured to facilitate organizing of events. As illustrated, the system 100 generally includes an event assistant system (assistant) 105, at least one organizer 110, one or more invitees 115, and a network 120. The organizer 110 and invitees 115 are users of the system 100. The system 100 enables the organizer 110 to create an event and send invitations to the event assistant system 105 and the invitees 115. The event can be a meeting, reception, scheduled service, party, and/or another type of gathering. The network 120 is configured to support communication between the event assistant system 105, organizer 110, and invitees 115. Leading up to the event, the system 100 enables the organizer 110 to monitor the invitees 115. For example, the system 100 is configured to show the organizer 110 the estimated times of arrival (ETAs) for the invitees 115, which invitees 115 have arrived at the event, which invitees 115 will not arrive at the event on time, and/or other routing information for the invitees 115. By managing the invitees 115, the event assistant system 105 allows the organizer 110 to be aware of problems before plans are disrupted, for example due to late or absent invitees 115. In the illustrated example, the event assistant system 105 is a remote computer system. The event assistant system 105 is configured to perform calculations, analyze data, execute algorithms, and/or perform various other tasks. The event assistant system 105 generally has an email address that can receive invites from the organizer 110. For example, the organizer 110 can email the event assistant system 105 an iCalendar (.ics) type file to invite the event assistant system 105 to the event. In one embodiment, the email address is associated with a specific personality for interacting with the event. As should be appreciated, the event assistant system 105 could be configured to communicate in additional or alternative ways to email, such as through text messages and/or other electronic messages. The event assistant system 105 is configured to send and receive messages, data, and/or other information over the network 120. The event assistant system 105 can utilize multiple types of networks utilized by the network 120, such as using both the Internet and a mobile data network. Additionally, the event assistant system 105 is configured to store event, routing, and/or other information.
The network 120 is typically wireless. In one example, the network 120 includes wired connections between at least some devices in the system 100. The network 120 generally includes a wide area network (WAN) and/or a local area network (LAN). In one example, the network 120 at least partially includes a cellular, Wi-Fi, Internet, radio, Bluetooth, and/or another type of wireless network.
The system 100 in one form includes a scheduling system 125. The scheduling system 125 includes one or more computers, such as a remote server and/or a computer network. The scheduling system 125 can be an existing scheduling application, such as a third-party service and/or a calendar built into an email service. The scheduling system 125 is configured to store user data and communicate with other devices using the network 120. By communicating with the event assistant system 105, the scheduling system 125 enables the event assistant system 105 to validate the event with respect to the organizer 110 and invitees 115. For example, when the organizer 110 creates an event, the event assistant system 105 can check for scheduling conflicts between the event and the schedules of the organizer 110 and invitees 115. In another example, the scheduling system 125 provides contact, location, and/or other information of the invitees 115 to the organizer 110 when the event is created. Using the scheduling system 125, the system 100 can maintain the privacy of user information.
As shown, the system 100 includes user devices 130 that enable the organizer 110 and the invitees 115 to communicate over the network 120. The user devices 130 generally includes one or more computers and/or cellular devices. For example, the user devices 130 include a laptop computer, desktop computer, tablet, cell phone, smart phone, personal digital assistant (PDA), and/or another device. Typically, the user devices 130 are configured to wirelessly connect to the network 120. As should be appreciated, the user devices 130 could be configured to communicate with the event assistant system 105 and/or another user device 130 directly. Additionally, the user devices 130 can at least partially utilize a wired connection to communicate with the network 120 and/or another device. In one embodiment, the user devices 130 are each configured to determine the current location of the user device 130, such as through GPS, satellite navigation, the signal strength from the network 120, and/or sensors as examples.
When the organizer 110 creates the event, the organizer 110 typically designates an event area 135 for the event. The event area 135 denotes the geographic location of the event and generally defines a boundary around the event. The event area 135 can be a geofence. In one example, the event area 135 is a circular shape oriented around a central location associated with the event. In another example, the event area 135 is a more complex shape, such as the outline of a building, room, facility, property, and/or other area associated with the event. The organizer 110 can manually designate the boundary of the event area 135 or can retrieve a predetermined event area 135 associated with the location of the event, such as from the scheduling system 125 and/or another remote server. As should be appreciated, the event assistant system 105 could determine the event area 135 automatically based on a default setting, by retrieving location data from an external source, by using previous event data, by using previous user behavior, and/or in another way.
As illustrated, the system 100 enables the organizer 110 to manage invitees 115 traveling via various modes of transportation 140. In one embodiment, the event assistant system 105 is configured to request routing information from the invitees 115. The event assistant system 105 typically prompts the invitees 115 to provide the mode of transportation 140 being used. The event assistant system 105 is configured to determine the ETAs for the invitees 115 at least partially based on the mode of transportation 140. By accounting for the mode of transportation 140, the event assistant system 105 can provide an accurate prediction about the travel time for the invitees 115. In one example, the event assistant system 105 can determine the mode of transportation 140 used by an invitee 115 based on the previous behavior of the invitee 115.
In the illustrated example, the event assistant system 105 includes an artificial intelligence system (Al system) 145. The Al system 145 is stored and executed on the event assistant system 105. As should be appreciated, the Al system 145 could be implemented on another device in the system 100, such as one of the user devices 130, the scheduling system 125, and/or another computer. The Al system 145 is configured to learn and predict user behavior from the organizer 110 and the invitees 115. Additionally, the Al system 145 can be used to perform other tasks to manage the invitees 115, such as analyzing schedules, suggesting promotions to offer to invitees 115, and/or determining to alert the organizer 110 and/or invitees 115 as examples. Based on the learned behavior patterns, the Al system 145 is configured to adjust predictions about travel time and attendance for the invitees 115. For instance, for an event held on the second floor of a building, the Al system 145 determines the amount of time it takes the invitees 115 to park and get to the second floor of the building. In another example, the Al system 145 is configured to modify promotions and/or rewards for the organizer 110 and invitees 115 based on the learned behavior patterns. For instance, the Al system 145 determines to offer a cookie to an invitee 115 who is always early when the event assistant system 105 offers a cookie. The Al system 145 can include one or more neural networks. In one example, the Al system 145 includes a convolutional neural network, recurrent neural network, generative neural network, discriminative neural network, and/or another type of neural network. For instance, the Al system 145 can use a generative adversarial network to learn and predict user behavior. The Al system 145 may use multiple instances of such neural networks or other types of Al architectures may be used to learn user behavior.
As shown, the scheduling system 125 includes a database 150. The database 150 stores information about the organizer 110 and the invitees 115, such as schedules and/or calendars. The database 150 optionally stores contact information of each user, such as a phone number, email address, and/or username on another platform as examples. In one example, the database 150 additionally stores location information of each user, such as a home address, office address, and/or another location. The system 100 utilizes the information stored on the database 150 to facilitate creating an event and monitoring invitees 115. As should be appreciated, the database 150 could be implemented on another device connected to the network 120, such as the event assistant system 105, one or more user devices 130, and/or another computer.
The user devices 130 include at least one organizer device 155 and at least one invitee device 160. The organizer 110 uses the organizer device 155 to communicate with the event assistant system 105 and monitor the invitees 115. In the illustrated example, the organizer device 155 is a computer that is regularly located at the event area 135, such as a desktop computer. The organizer device 155 optionally is associated with a permanent location that corresponds to the event area 135. As should be appreciated, the organizer device 155 could be any type of device, including a handheld device like a smart phone or tablet. The invitees 115 each use an invitee device 160 to communicate with the event assistant system 105 and the organizer 110. In the illustrated example, the invitee devices 160 are handheld devices, such as smart phones and/or tablets. Each invitee device 160 is configured to determine the current location of the invitee device 160. The event assistant system 105 is able to receive updated location data from the invitee devices 160 as the invitees 115 travel towards the event. As should be appreciated, one or more invitee devices 160 could be a non-handheld and/or a non-portable device, and the event assistant system 105 could receive only initial routing data that includes an initial location of the invitee device 160.
In the FIG. 1 example, the invitees 115 include a first invitee 165, second invitee 170, third invitee 175, and fourth invitee 180. As illustrated, the first invitee 165 is positioned within the event area 135. When the first invitee 165 arrives at the event area 135, the event assistant system 105 notes that the first invitee 165 has arrived and updates the status of the first invitee 165. The organizer 110 optionally receives an alert when the first invitee 165 arrives at the event area 135. In one example, the first invitee 165 selects an option on the invitee device 160 to change a location status to present at the event and/or takes a picture of the event area 135 using the invitee device 160 to confirm arrival at the correct location. In the illustrated example, the second invitee 170, third invitee 175, and fourth invitee 180 are travelling to the event and are not yet at the event area 135. The second invitee 170, third invitee 175, and fourth invitee 180 use different modes of transportation 140 and can be at various geographic locations. The second invitee 170 uses no vehicle or other machine as the mode of transportation 140. In one example, the second invitee 170 is walking towards the event area 135 and has indicated to the event assistant system 105 that the mode of transportation 140 is walking. In another example, the second invitee 170 has not proceeded towards the event area 135 and may not have provided any routing data to the event assistant system 105. The event assistant system 105 can then determine that the second invitee 170 will be late or even absent to the event. Conversely, the third invitee 175 uses an airplane 185 as the mode of transportation 140. In one example, the third invitee 175 provides routing information to the event assistant system 105 that includes a flight arrival time, type of airplane 185, flight identification number, and/or other data. The event assistant system 105 can check flight paths and/or perform other calculations to determine travel time for the third invitee 175. For instance, if the flight experiences a delay, the event assistant system 105 can automatically adjust the predicted ETA. Finally, the fourth invitee 180 uses an automobile 190 as the mode of transportation 140. The automobile 190 can be a personal vehicle, taxi, rideshare vehicle, bus, shuttle, or another type of automobile 190. When providing routing data to the event assistant system 105, the fourth invitee 180 can specify the type of automobile 190 being used to allow the event assistant system 105 to accurately predict the ETA. In one example, the routing data also includes the planned route of the automobile 190, a public transit schedule, the make and/or model of the automobile 190, and/or other information. The event assistant system 105 can optionally determine the location of the automobile 190 based on public transit schedules and/or other publicly available transit information. As should be appreciated, the invitees 115 can use any mode of transportation 140, including a plane, train, automobile, walking, biking, public transit, personal vehicle, taxi, rideshare, boat, and/or air travel as examples. Additionally, the invitees 115 could use multiple modes of transportation 140 on the way to the event area 135 and communicate the changes in mode of transportation 140 to the event assistant system 105.
FIG. 2 illustrates the system 100 according to another example. The invitees 115 are initially located at one or more initial locations 205. The initial location 205 for an invitees 115 can be a primary residence, a place of work, a temporary accommodation, and/or another location where the invitees 115 is expected to be. In another example, the initial location 205 is the current location of the invitees 115 when the invitees 115 begins to head toward the event area 135. The event assistant system 105 can determine the initial location 205 based on realtime location data from the invitees 115 and/or based on a stored location of the invitees 115. Additionally, the event assistant system 105 can determine the initial location 205 for the invitee 115 at a predetermined time before the event, after the invitee 115 indicates that the invitee 115 is traveling to the event, or at another time.
As illustrated, the initial location 205 of the first invitee 165 is a house 210, and the initial location 205 of the second invitee 170 is an office 215. The house 210 can be the primary residence of the first invitee 165 or can be a temporary accommodation. The office 215 can be a place of work or another common location for the second invitee 170. In one example, the locations of the house 210 and/or office 215 are stored in the database 150. The locations of the house 210 and/or office 215 can be stored as the whole building, a wing of the building, a floor of the building, a room in the building, or another portion of the building. The invitee 115 can allow the event assistant system 105 to access the location of the house 210 and/or office 215 within the database 150 and to automatically determine the initial location 205 for the first invitee 165 as the house 210 or office 215. In one example, the invitee 115 can select what location data the event assistant system 105 is allowed to access to maintain privacy. For instance, the invitee 115 can allow the event assistant system 105 to see the location of the office 215 but not the location of the house 210. In another example, the invitee 115 can select the level of precision of the stored location data. Alternatively, the event assistant system 105 can request the location from the invitee 115 before the invitee 115 starts traveling to the event.
The system 100 is configured to manage invitees 115 for multiple events. As illustrated, the FIG. 2 system 100 includes a first organizer 220 organizing an event at a first event area 230, and a second organizer 225 organizing an event at a second event area 235. In another example, the first organizer 220 organizes both events and is present in one or neither of the event areas 135. For instance, the organizer 110 might not be required to attend one or both of the events. In yet another example, the first event area 230 and second event area 235 are in the same general location, such as the same building, park, or facility as examples. For instance, the events can be part of a larger, overarching event. Further, one event assistant system 105 is capable of monitoring the invitees 115 and communicating with the organizers 110 for both events. As should be appreciated, the system 100 can be configured to manage any number of invitees 115 using any number of modes of transportation 140, travelling to any number of event areas 135, departing from any number of initial locations 205, and/or travelling in any other ways.
In the illustrated example, the system 100 includes two event assistant systems 105, a first assistant 240 and a second assistant 245. The first assistant 240 and second assistant 245 can perform the same tasks for different events or can perform distinct tasks for one or more events. Typically, each event assistant system 105 has an email address, and new event assistant system 105 behaviors are added by inviting a new email address associated with the new event assistant system 105. Multiple event assistant systems 105 allow the system 100 to provide different combinations of monitoring, sending reminders, and/or other functions. In one example, the first assistant 240 is configured to send reminders to the invitees 115 and to allow the organizer 110 to monitor the ETA of the invitees 115, but the second assistant 245 switches the roles of the organizer 110 and invitees 115. The second assistant 245 is configured to send reminders to the organizer 110 and to allow the invitees 115 to monitor the ETA of the organizer 110. Using the second assistant 245 to reverse the roles can be useful for deliveries, home equipment installation, and other scenarios where the organizer 110 might have to travel to the event area 135. In an alternate example, the first assistant 240 allows the organizer 110 to monitor the invitees 115 and allows the invitees 115 to monitor the organizer 110 for one event, and the second assistant 245 performs those tasks for a different event. As should be appreciated the system 100 could include any number of event assistant systems 105 configured to perform any variety of tasks. Additionally, the event assistant systems 105 can perform the same monitoring, communication, reminding, and other tasks with the organizers 110 as with the invitees 115.
FIG. 3 illustrates one embodiment of the event assistant system 105. The event assistant system 105 generally includes a processor 305, memory 310, long-term storage device 315, and networking device 320. The processor 305, memory 310, long-term storage device 315, and networking device 320 are communicatively connected and are configured to send data and other communications to one another. For example, the processor 305, memory 310, long-term storage device 315, and networking device 320 can be connected using one or more bus bars and/or other conductors. The components of the event assistant system 105 can optionally be arranged in another way and/or the event assistant system 105 can include additional components. The event assistant system 105 implements the Al system 145 across the various components. For example, the processor 305 can perform calculations for the Al system 145, and the memory 310 can store algorithms of the Al system 145.
The processor 305 is configured to perform calculations, execute algorithms, analyze data, and/or perform other computational tasks. In one embodiment, the processor 305 is configured to perform one or more algorithms from the Al system 145. For example, the processor 305 can perform Al algorithms to predict user behavior, Al algorithms to estimate user travel time, training algorithms to create an Al model of the user behavior, and/or other types of algorithms.
The memory 310 and long-term storage device 315 are configured to store data, algorithms, and/or other information. As examples, the memory 310 and/or long-term storage device 315 can store user behavior data, user contact and/or identification data, training algorithms for the Al system 145, and/or user behavior models for the Al system 145. The memory 310 generally stores information for a relatively short period of time, and generally stores information utilized by the processor 305. For example, the memory 310 stores algorithms and/or data as the processor 305 performs the algorithm and/or calculations on the data. The long-term storage device 315 stores information for a longer period of time and generally stores a greater amount of information than the memory 310. For example, the long-term storage device 315 can store large amounts of user behavior information, location information, predictive algorithms for the Al system 145, and/or other information.
The networking device 320 is configured to provide an interface between the event assistant system 105 and the network 120. For example, the networking device 320 can include a router, antenna, and/or another device to connect the event assistant system 105 to the network 120. The networking device 320 is configured to support the event assistant system 105 to communicate over the network 120, including sending and/or receiving data, alerts, messages, and/or other data. The networking device 320 can support wired and/or wireless connections. In the illustrated example, the event assistant system 105 further includes a location module 325. The location module 325 is configured to monitor the location of the organizer 110 and invitees 115 of the system 100. In one example, the location module 325 is configured to calculate distances and/or travel times between geographic locations, retrieve location data of one or more user devices 130, communicate with external mapping or location services, and/or perform other tasks involving geographic locations. In another example, the location module 325 is configured to validate the location of an event when the organizer 110 creates the event. For instance, the location module 325 can include a database of locations and/or communicate with a database of locations and verify the location of the event. Optionally, the location module 325 is configured to determine a location of the event assistant system 105, such as through GPS, satellite navigation, and/or monitoring signal strength from the network 120. Alternatively, the processor 305, memory 310, long-term storage device 315, and/or networking device 320 can perform one or more functions of the location module 325.
FIG. 4 illustrates one embodiment of the user device 130. The illustrated user device 130 depicts one form of the organizer device 155 and invitee device 160 in FIGS. 1 and 2. In one embodiment, the organizer device 155 and/or invitee device 160 vary from the illustrated user device 130 in one or more ways. The user device 130 generally includes a processor 405, memory 410, location module 415, networking device 420, display device 425, and input device 430. The processor 405, memory 410, location module 415, networking device 420, display device 425, and input device 430 are communicatively connected and are configured to send data and other communications to one another. The components of the user device 130 can optionally be arranged in another way and/or the user device 130 can include additional components.
The processor 405 is configured to perform calculations, execute algorithms, analyze data, and/or perform other computational tasks. In one embodiment, the processor 405 is configured to run an application that allows the organizer 110 to monitor the invitees 115 and allows the invitees 115 to send routing data. In one example, the processor 405 can perform an algorithms from the Al system 145. For example, the processor 305 can perform Al algorithms to predict user behavior, Al algorithms to estimate user travel time, training algorithms to create an Al model of the user behavior, and/or other types of algorithms. The memory 410 is configured to store data, algorithms, and/or other information. For example, the memory 410 can store behavior data, location data, contact and/or identification data, routing data, and/or other information of the user of the user device 130. In another example, the memory 410 is configured to store information about the event and/or other users, such as the location and shape of the event area 135 and routing data of other invitees 115 as examples.
The location module 415 is configured to monitor the location of the user device 130. For example, the location module 415 can determine the current location of the user device 130 through GPS, satellite navigation, monitoring signal strength from the network 120, and/or in other ways. In one example, the location module 415 is also configured to calculate distances and/or travel times between geographic locations, retrieve location data of the event area 135, communicate with external mapping or location services, and/or perform other tasks involving geographic locations. In another example, the location module 415 can store location data of other users and/or the event. Alternatively, the processor 405, memory 410, networking device 420, and/or another part of the user device 130 can perform one or more functions of the location module 415.
The networking device 420 is configured to provide an interface between the user device 130 and the network 120. For example, the networking device 420 can include a router, antenna, and/or another device to connect the user device 130 to the network 120. The networking device 420 is configured to support the user device 130 to communicate over the network 120, including sending and/or receiving data, alerts, messages, and/or other data. The networking device 420 can support wired and/or wireless connections.
The display device 425 and input device 430 allow the user to interact with the user device 130. The display device 425 and input device 430 can include a variety of input/output (VO) devices, such as a visual display screen, touch pad, touch screen, keyboard, mouse, and/or another type of device. In one example, the display device 425 and input device 430 are combined as a touch screen, such as in a smart phone or tablet. In another example, the input device 430 includes a keyboard, such as on a personal computer, personal digital assistant, or other device. The display device 425 allows a user to view notifications and alerts sent by the event assistant system 105, routing information of other the invitees 115 and/or organizer 110, promotional offers, chat messages, maps of the user device 130, and/or other information related to the event and users. The input device 430 allows a user to type chat messages, open notifications from the event assistant system 105, accept promotional offers, navigate through event information, and/or interact with the system 100 in other ways.
FIG. 5 illustrates one embodiment of a computer 500 that can be used in the scheduling system 125 in FIGS. 1 and 2 and/or in another device in the system 100. In one example, the event assistant system 105, organizer device 155, and/or invitee device 160 can include the computer 500. In another example, the system 100 includes one or more additional computers 500, such as in another remote server or computer network. The computer 500 generally includes a processor 505, memory 510, input/output device 515, and networking device 520. The processor 505, memory 510, input/output device 515, and networking device 520 are communicatively connected and are configured to send data and other communications to one another. The components of the computer 500 can optionally be arranged in another way and/or the computer 500 can include additional components.
The processor 505 is configured to perform calculations, execute algorithms, analyze data, and/or perform other computational tasks. In one embodiment, the processor 505 is configured to analyze schedule data of the organizer 110 and invitees 115, compare location data of the event to stored location data of the organizer 110 and invitees 115, and/or perform other calculations related to stored user data. In one embodiment, the processor 505 is configured to perform one or more algorithms from the Al system 145. The memory 510 is configured to store data, algorithms, and/or other information. For example, the memory 510 can store user behavior data, user contact data, user identification data, algorithms to process user data, and/or other user data and algorithms. The memory 510 can store information in a form that is quickly accessible to processor 505 and/or in large quantities for long periods of time. In one embodiment, the organizer device 155 in FIGS. 1 and 2 is implemented at least partially on the memory 510 of the computer 500.
The input/output device 515 is configured to receive inputs from and/or provide outputs to a user or another device. In one embodiment, the input/output device 515 includes a visual display screen, keyboard, mouse, and/or another device. For example, the computer 500 can be a desktop computer that allows a user to provide inputs and view outputs. In another example, the computer 500 is a server that does not provide output to a display and receives inputs from a user from another device and/or over the network 120. The networking device 520 is configured to provide an interface between the computer 500 and the network 120. For example, the networking device 520 can include a router, antenna, and/or another device to connect the computer 500 to the network 120. The networking device 520 is configured to support the computer 500 to communicate over the network 120, including sending and/or receiving data, alerts, messages, and/or other data. The computer 500 can support wired and/or wireless connections.
As illustrated in FIGS. 6 and 7, the user devices 130 display a user interface to the organizer 110 and invitees 115. The user devices 130 generally display the user interfaces through an application. In one embodiment, the application is a web application hosted by the event assistant system 105 or another device in the system 100. Alternatively, the application can be installed on the user device 130, such as an Android or iOS application. As should be appreciated, the user devices 130 could provide an interface for the organizer 110 and invitees 115 in another way, such as through email and/or another website as examples.
FIG. 6 illustrates an organizer interface 600 displayed on the organizer device 155 according to one embodiment. The organizer interface 600 displays information about the invitees 115 to the organizer 110, such as the names and ETAs of the invitees 115 as examples.
Additionally, the organizer interface 600 allows the organizer 110 to communicate with the invitees 115 and receive notifications from the event assistant system 105.
As illustrated, the organizer interface 600 includes an invitee list 605 and ETA list 610 that display the real-time status of the invitees 115. The invitee list 605 displays the names of the invitees 115. In one example, the organizer 110 can limit the displayed invitee list 605 to invitees 115 that have arrived, invitees 115 that are traveling, and/or another selection of invitees 115. The ETA list 610 displays the ETA for each invitee 115 on the invitee list 605 as determined by the event assistant system 105. In one example, the organizer 110 can adjust the precision of the displayed ETA. For instance, the ETA list 610 can display ETAs in intervals of minutes, hours, days, or another unit of time depending on the time until the event starts, the amount of distance between the invitee 115 and the event area 135, and/or other factors. As illustrated, the ETA list 610 is configured to change the displayed status of the invitees 115 that have arrived at the event area 135 to a status of "Here," "On-Site," or another term. In one example, the ETA list 610 is configured to display a status of "Unknown" or another term when the ETA is not certain. For instance, the ETA list 610 can display "Unknown" status if the invitee 115 has not made progress towards the event or if the changes in location of the invitee 115 are unpredictable among other reasons.
The organizer interface 600 further includes a share button 615 and a chat button 620 that allow the organizer 110 to communicate and share information with the invitees 115. The share button 615 allows the organizer 110 to share information with the invitees 115, such as the ETA list 610. When the organizer 110 selects the share button 615, the organizer interface 600 can instantly share the ETAs with the invitees 115 or can prompt an additional menu for the organizer 110. The additional menu allows the organizer 110 to confirm the share action and/or to select additional information to share with the invitees 115, such as the location of the organizer 110. In one example, the organizer interface 600 only displays the share button 615 if an ETA of one of the invitees 115 is beyond the event start time. In another example, selecting the share button 615 shares a link to the invitees 115 to view the ETAs on a separate website or web application. The chat button 620 allows the organizer 110 to send and receive messages with the invitees 115. When the organizer 110 selects the chat button 620, the organizer interface 600 can display a separate chat page that displays messages. The chat page assists the organizer 110 to manage the invitees 115, such as by answering questions or providing updates. For example, the organizer 110 can provide a gate or access code needed to enter the event area 135, provide instructions for entering the event area 135, inform invitees 115 that there is food at the event, inform the invitees 115 of any changes to the event, and/or provide any other information to the invitees 115.
The organizer interface 600 is configured to display a notification 625 to indicate an alert and/or reminder to the organizer 110. In one example, the event assistant system 105 sends an alert to the organizer 110 when the ETA of one of the invitees 115 is beyond the event start time. The organizer interface 600 is configured to display the alert on the notification 625. The notification 625 is also configured to show other types of reminders and/or alerts, such as an alert about an invalid event location, an alert about a scheduling conflict, a reminder about the event start time, an alert when an invitee 115 arrives, and/or an alert when a chat message is received among other examples. In the illustrated embodiment, the organizer interface 600 includes a map 630 that shows the event area 135 and the surrounding area. The map 630 can include markers 635 that denote the location of users. In one example, the map 630 includes a marker 635 for the organizer 110. If the organizer 110 is not at the event, the map 630 can assist the organizer 110 to reliably travel to the event area 135. The map 630 can be retrieved from existing mapping or navigation services and/or can be provided by the event assistant system 105.
Generally, to maintain privacy, locations of users are not shared with the organizer 110 or other invitees 115. Typically, the event assistant system 105 only shares an ETA for each invitee 115. In an alternate embodiment, the event assistant system 105 is configured to share location data of the invitees 115 with the organizer 110. For example, the invitees 115 can grant permission to the event assistant system 105 to share current location. When the locations of one or more invitees 115 are shared with the organizer 110, the organizer interface 600 displays markers 635 on the map 630 to denote the locations of the invitees 115. To maintain some degree of privacy, the map 630 can show an approximate location and/or a location range for the invitee 115 rather than a precise location of the invitee 115. In one example, the marker 635 denotes an area with a radius of 100 feet, 1000 feet, 1 mile, 5 miles, 10 miles, 50 miles, and/or another size that corresponds to the location of the invitee 115. In another example, the event assistant system 105 allows users to select the degree of precision of the marker 635 on the map 630 for that user. The map 630 can optionally obscure the locations of the invitees 115 in another way and/or to other varying degrees.
FIG. 7 illustrates an invitee interface 700 displayed on the invitee device 160 according to one embodiment. The invitee interface 700 allows the invitees 115 to communicate with the organizer 110 and other invitees 115. Additionally, the invitee interface 700 allows the invitees 115 to receive alerts, reminders, offers, and/or other communications from the event assistant system 105. The invitee interface 700 can optionally display information about the event to the invitees 115, such as the event location, start time, and/or other information.
As illustrated, the invitee interface 700 is configured to display a notification 705 to indicate communication from the event assistant system 105 to the invitee 115. The notification 705 could be displayed only in the invitee interface 700 or could be a push notification sent to the invitee device 160 that appears outside the invitee interface 700. In one example, the event assistant system 105 sends a request to the invitee 115 to grant consent to send notifications 705, retrieve geolocation data from the invitee device 160, and/or for other permissions. For example, the event assistant system 105 can request such permissions from the invitee 115 when the application is first opened, when the invitee 115 is invited to the event, at a specified time before the event, when the invitee 115 begins traveling to the event, and/or at another time. In one embodiment, the initial request is sent to the invitee 115 via email. Alternatively, the initial request can be displayed through the notification 705, on a separate application menu, and/or in another way. The event assistant system 105 is configured to send one or more requests displayed as on the notification 705 after the invitee 115 grants permission. In one example, the event assistant system 105 requests routing data from the invitee device 160, such as current location, information about the mode of transportation 140 used by the invitee 115, and/or other geolocation data. In one embodiment, the event assistant system 105 requests to periodically retrieve the geolocation data from the invitee device 160 as long as the application is open on the invitee device 160.
The notification 705 is further configured to display reminders and/or alerts related to the event. In one example, the event assistant system 105 sends an alert to the invitee 115 when the ETA of the invitee 115 is beyond the event start time. As examples, the notification 705 is also configured to display an alert about a scheduling conflict, an alert when the invitee 115 will not be able to attend the event due to expected travel time, a reminder about the event start time, an alert when the invitee 115 arrives at the event area 135, and/or an alert when a chat message is received among other examples. In one embodiment, the event assistant system 105 is configured to send additional alerts, reminders, and/or requests to the invitee device 160 if the invitee 115 does not read the notifications 705. The communications can be sent through email, as another notification 705, and/or in another way. In one example, the event assistant system 105 sends the additional alerts near the time the invitee 115 needs to depart for the event. The departure time can be determined by the event assistant system 105 or indicated by the invitee 115. In another example, the event assistant system 105 sends additional alerts within a certain time from the event start time, such as an amount of time predetermined by the event assistant system 105 or based on the distance from the invitee 115 to the event area 135. In the illustrated example, the invitee interface 700 displays a reward 710 that allows the invitee 115 to accept an offer from the event assistant system 105. The event assistant system 105 can offer a variety of rewards 710, such as monetary rewards, promotional deals, coupons, and/or charitable donations as examples. The invitee 115 can collect the reward 710 in various forms, such as quick response (QR) code coupons, near field communication (NFC) coupons, credits on a store account, gift cards, and/or cryptocurrency among other examples. The event assistant system 105 is configured to use event, routing, learned user behavior, and/or other data to determine the reward 710 to offer the user. Optionally, an affiliate is associated with the system 100, and the event assistant system 105 is configured to use affiliate data to determine the reward 710. For example, the event assistant system 105 can offer time-sensitive coupons for food, beverages, parking, and/or other vendors that are near the event area 135 and/or on the route of the invitees 115. In another example, the event assistant system 105 can offer a reward 710 that can be redeemed during the event, such as food delivery for participants in the event.
The event assistant system 105 can encourage punctuality among the organizer 110 and invitees 115 by offering rewards 710 based on arrival time of the invitees 115 and/or organizer 110. For example, the reward 710 can be held in escrow as a payment to invitees 115 if the organizer 110 is late to the event, and/or be available to the invitees 115 for arriving at the event on-time. In another example, the organizer 110 and/or event assistant system 105 can establish rewards 710 to be offered when users achieve punctuality goals, such as arriving on-time over to multiple events over the course of a week, month, year, and/or other time period. The organizer 110 and/or event assistant system 105 can optionally use a raffle to randomly select a recipient for the reward 710 from a pool of users who achieve such goals.
In one embodiment, the invitees 115 are invited to choose a charitable organization to receive donations when the invitee 115 is offered a reward 710. For example, the donation can be based on the invitee 115 arriving to one or more events on-time. In another example, the event assistant system 105 and/or the users are able to generate badges that show the total benefit provided to the charitable organization by the user through the system 100. The badges can be web badges embedded into the application to securely show the donation amounts. Additionally, the badges can be displayed on the organizer interface 600 and/or invitee interface 700 to be viewed the organizer 110 and/or invitees 115. For instance, the badge can be displayed as part of the reward 710.
The invitee interface 700 further includes a chat button 715 that allows the invitee 115 to send and receive messages with the organizer 110 and other invitees 115. When the organizer 110 selects the chat button 715, the invitee interface 700 can display a separate chat page that displays messages. The chat page assists the invitees 115 to attend the event on-time, such as by answering questions or providing updates as examples. For example, the invitees 115 can ask for instructions to enter the event area 135, request a gate or access code needed to enter the event area 135, inform the organizer 110 and other invitees 115 that the invitee 115 is bringing food or other items, receive updates about the event from the organizer 110, and/or communicate other information to the organizer 110 and invitees 115. In one embodiment, the chat button 715 functions the same as the chat button 620 on the organizer interface 600.
As illustrated, the invitee interface 700 includes an arrival button 720 and a photo button 725. When the invitee 115 arrives at the event, the arrival button 720 and photo button 725 allow the invitee 115 to indicate and/or confirm arrival to the event area 135. In one embodiment, the event assistant system 105 determines when the invitee 115 arrives at the event, and the arrival button 720 and photo button 725 are only displayed when the invitee 115 is within the event area 135. By selecting the arrival button 720, the invitee 115 is able to communicate to the organizer 110 that the invitee 115 has arrived. Selecting the arrival button 720 can also notify the event assistant system 105 to change the status of the invitee 115 to "Here" or "On- Site" if the event assistant system 105 has not updated the status. The photo button 725 allows the invitee 115 to take a picture of the event area 135. The picture can be used to confirm the invitee 115 is in the correct location and to assist the organizer 110 and/or invitees 115 to find one another.
In the illustrated example, the invitee interface 700 includes an invitee list 730 and ETA list 735 that display the real-time status of the invitees 115. Similar to the invitee list 605 and ETA list 610 on the organizer interface 600 in FIG. 6, the invitee list 730 and ETA list 735 display the names and ETAs of the invitees 115. In one embodiment, the invitee list 730 is the same as the invitee list 605, and the ETA list 735 is the same as the ETA list 610. Optionally, the invitee list 730 and ETA list 735 can show the name and ETA of the organizer 110 and/or omit the name and ETA of the individual invitee 115. Generally, the invitee list 730 and ETA list 735 are only displayed on the invitee interface 700 if the organizer 110 has shared the ETAs with the invitee 115. In one example, the invitees 115 can change the selection of invitees 115 displayed on the invitee list 730 and ETA list 735. In another example, the invitee 115 can change the precision of the displayed ETAs. The ETA list 735 additionally displays the status of the invitees 115, such as "Here," "Unknown," or another status.
The invitee interface 700 optionally includes a map 740 that shows the event area 135 and the surrounding area. The map 740 can include a marker 745 that denotes the location of the invitee 115. The map 740 can assist the invitee 115 to reliably travel to the event area 135. The map 740 can be retrieved from existing mapping or navigation services and/or can be provided by the event assistant system 105. To maintain privacy, locations of other users are not shared with the invitees 115. Alternatively, the organizer 110 could share the locations of the organizer 110 and/or other invitees 115 that consent. The map 740 can optionally display markers 745 for the organizer 110 and/or other invitees 115 if locations are shared with the invitees 115. In one embodiment, the map 740 and marker 745 support the same functions as the map 630 and marker 635 on the organizer interface 600 in FIG. 6.
As should be appreciated, features displayed on the organizer device 155 and invitee device 160 could be available to both the organizer 110 and the invitees 115. The organizer interface 600 on the organizer device 155 could display one or more features from the invitee interface 700 and/or the invitee interface 700 on the invitee device 160 could display one or more features from the organizer interface 600. When one or more roles of the organizer 110 and invitees 115 are switched, the organizer interface 600 and/or invitee interface 700 can display the additional features corresponding to those roles. For example, the organizer interface 600 could display the notification 705, reward 710, arrival button 720, and/or photo button 725 from the invitee interface 700 when the organizer 110 is traveling to the event and/or the event assistant system 105 allows the invitees 115 to monitor the organizer 110. In another example, the invitee interface 700 can display the notification 625 and/or the map 630 from the organizer interface 600 when the event assistant system 105 allows the invitees 115 to monitor the organizer 110. In yet another example, the user devices 130 can display the same interface to the organizer 110 and the invitees 115. FIGS. 8, 9, and 10 illustrate various methods or techniques for managing invitees 115 for an event. The system 100 is configured to perform the various actions or stages of these techniques. As should be appreciated, various components of the system 100 can perform different actions or stages. For example, the event assistant system 105, the scheduling system 125, the user device 130, the organizer device 155, the invitee device 160, the computer 500, and/or other components of the system 100 can perform one or more parts of these methods.
FIG. 8 shows a flowchart 800 illustrating a method for managing invitees 115 for an event. At stage 805, the organizer 110 creates an event using the organizer device 155. Creating the event generally includes setting an event location, setting an event start time, setting an event duration, and/or determining other details of the event. The event data can be stored in the event assistant system 105 and/or another device in the system 100. At stage 810, the organizer 110 invites the invitees 115 and the event assistant system 105. In one embodiment, the organizer 110 sends emails from the organizer device 155 to the invitee devices 160 of the invitees 115 and to the event assistant system 105 using the network 120. The email address of the event assistant system 105 can be a specific email address, such as betty@example.com, associated with a certain set of behaviors and/or unique functions. The organizer 110 can optionally invite multiple event assistant systems 105 with one or more behaviors. When invites are sent at stage 810, the event assistant system 105 saves the event data on the event assistant system 105 or in another location, such as the database 150 on the scheduling system 125.
At stage 815, the event assistant system 105 validates the event. In one embodiment, the event assistant system 105 compares the event data to schedules, stored location information, and/or other data for the organizer 110 and invitees 115. The event assistant system 105 can utilize data stored on the event assistant system 105 and/or retrieve data from the scheduling system 125 or another device. In one example, the event assistant system 105 checks that the there are no preexisting scheduling conflicts with the event. In another example, the event assistant system 105 checks that the organizer 110 and/or invitees 115 can travel to the event on-time based on an initial location. The event assistant system 105 additionally confirms that the event location is a valid location, such as a valid address and/or a physically accessible location. The event assistant system 105 and/or organizer 110 can determine the event area 135 at stage 815 or optionally at stage 805.
At stage 820, the event assistant system 105 requests permission from the invitees 115 and/or the organizer 110. The permissions include sending notifications, such as the notification 625 in FIG. 6 or the notification 705 in FIG. 7, and accessing geolocation data, such as from the location module 415 on the user device 130. The event assistant system 105 can request additional information, such as the mode of transportation 140 of the user as one example. At stage 825, the event assistant system 105 uses information about the invitees 115 and/or organizer 110 to determine an ETA for each user. In one example, the event assistant system 105 uses the location module 325 to determine the ETAs. In another example, the event assistant system 105 utilizes the Al system 145 to determine the ETAs. For instance, the event assistant system 105 can use a neural network in the Al system 145. In yet another example, the event assistant system 105 can utilize an external mapping service to determine the ETAs. The event assistant system 105 determines the ETAs based on routing data that includes geolocation data from the user devices 130, the modes of transportation 140 of the users, behavior data of the users, and/or other data. In one example, the event assistant system 105 periodically retrieves an updated location from each user and/or periodically updates the ETA for each user.
At stage 830, the event assistant system 105 changes the status of the invitees 115 and/or organizer 110 to "Here" as the invitees 115 and organizer 110 arrive at the event. In one embodiment, the event assistant system 105 automatically determines that the user is at the event area 135 based on geolocation data from the user device 130. Alternatively, the system 100 can include beacons and/or proximity sensors to identify users that arrive at the event. In another embodiment, each user indicates to the event assistant system 105 that the user has arrived through the user device 130. The flowchart 800 can continue to stage 805 again to create additional events.
FIG. 9 includes a flowchart 900 depicting another method for managing invitees 115 for an event. At stage 905, the event assistant system 105 sends a request to the invitees 115 and/or organizer 110 for routing data. The users can receive the request in the form of the notification 625 in FIG. 6, the notification 705 in FIG. 7, as an email, and/or in another form. The request can prompt the users to provide geolocation data from the user devices 130, information about the modes of transportation 140 being used, and/or other information. The event assistant system 105 can additionally request consent to send notifications, monitor geolocation data, and/or receive other data from the users.
At stage 910, the event assistant system 105 checks if the user has read the notification from stage 905. If the user has not read the notification, the system 100 proceeds to stage 915. At stage 915, the event assistant system 105 sends a second notification to the user. In one example, the second notification is an email. Alternatively, the second notification could be in the same form as the notification in stage 905. If the user has read the notification, the system 100 proceeds to stage 920. Optionally, the system 100 proceeds to stage 920 if the time is not close to the event start time and/or the expected departure time for the user. At stage 920, the user updates the routing data in the application on the user device 130. The user can manually provide information such as the mode of transportation 140 and/or a current location. In one example, the user device 130 automatically provides the current location of the user.
At stage 925, the user device 130 sends a location report to the event assistant system 105 with the updated routing information. In one embodiment, the user device 130 periodically sends updated routing information to the event assistant system 105 when the application is open on the user device 130. For example, the user device 130 can automatically send updates about the user location data to the event assistant system 105. At stage 930, the event assistant system 105 calculates an ETA for the user based on the routing data. The event assistant system 105 can additionally utilize other data to calculate an ETA, such as user behavior data. Similar to stage 825, the event assistant system 105 is configured to utilize the scheduling system 125 and/or the Al system 145 to determine the ETA. Alternatively, the event assistant system 105 can utilize an external mapping service to determine the ETA.
At stage 935, the event assistant system 105 compares the event start time to the ETAs for each user. If the ETA is beyond the event start time, the system 100 proceeds to stage 940. At stage 940, the event assistant system 105 sends an alert to the organizer 110 and/or the invitee 115. In one embodiment, the event assistant system 105 sends the alert to the organizer 110 to inform the organizer 110 that one of the invitees 115 will be late. In another embodiment, the event assistant system 105 sends the alert to an individual user when the ETA of that user is beyond the start time. In yet another embodiment, the event assistant system 105 could alert the organizer 110 and all the invitees 115. From stage 940, the system 100 proceeds back to stage 905. If the ETA is not beyond the start time at stage 935, the system 100 also proceeds to stage 905. At stage 905, the event assistant system 105 can send additional requests to users leading up to the event start time.
FIG. 10 shows a flowchart 1000 depicting yet another method for managing invitees 115 for an event. At stage 1005, the event assistant system 105 tracks the behavior of the organizer 110 and/or invitees 115. In one example, the event assistant system 105 tracks the whether the users arrive to events on time, how long the users take to travel to events, what rewards the users receive, the modes of transportation 140 of the users, and/or other information about the users related to events on the system 100. The user behavior can be stored on the event assistant system 105, on the database 150 of the scheduling system 125, on the user devices 130, and/or on another device.
At stage 1010, the event assistant system 105 learns the user behavior. The event assistant system 105 is configured to learn conditions that encourage users to arrive at events on time, such as certain rewards that are offered, event locations, event times, and/or other data. In one example, the event assistant system 105 utilizes the Al system 145 to train an Al model based on the user behavior. For example, the Al system 145 can include one or more neural networks trained on the user behavior, such as a convolutional neural network, recurrent neural network, generative neural network, and/or discriminative neural network as examples. At stage 1015, the event assistant system 105 utilizes the learned user behavior to adjust estimates for the users. The event assistant system 105 can use user behavior to adjust the predictions about the ETAs of the users, whether users will be absent at an event, and/or other actions of the users. For instance, the event assistant system 105 can determine the time needed to park, reach a certain floor of a building, and walk to the event on that floor for a repeated event in that building.
At stage 1020, the event assistant system 105 offers rewards to the users based on the user behavior. For example, the event assistant system 105 can offer the reward 710 in FIG. 7 to the users, including coupons, gift cards, store credits, cryptocurrency, donations, and/or other types of rewards. The event assistant system 105 can offer users rewards that encourage the user to arrive on time. For instance, the event assistant system 105 can offer a user free food and/or a food coupon if the user is typically on time when provided such an offer. From stage 1020, the system 100 returns to stage 1005 to track additional user behavior.
Glossary of Terms
The language used in the claims and specification is to only have its plain and ordinary meaning, except as explicitly defined below. The words in these definitions are to only have their plain and ordinary meaning. Such plain and ordinary meaning is inclusive of all consistent dictionary definitions from the most recently published Webster’s dictionaries and Random House dictionaries. As used in the specification and claims, the following definitions apply to these terms and common variations thereof identified below.
"Algorithm" generally refers to a sequence of instructions to solve a problem or to perform a task, such as a calculation. Typically, algorithms are implemented on computers. An algorithm on a computer may be used to automate a desired process or task on that computer or across multiple computers and/or other devices. As examples, a computer may utilize an algorithm to make a prediction based on data, control a robotic device to move along a desired path, and/or calculate the solution to an equation. A human may determine the instructions of an algorithm and program the algorithm onto a computer or other device. In some cases, a computer or other machine may determine at least part of an algorithm. For example, an artificial intelligence system may determine an algorithm for performing a desired task. Additionally, algorithms, such as machine learning algorithms, may be utilized to teach an artificial intelligence system to create new algorithms or improve existing algorithms for performing desired tasks.
"And/Or" generally refers to a grammatical conjunction indicating that one or more of the cases it connects may occur. For instance, it can indicate that either or both of the two stated cases can occur. In general, "and/or" includes any combination of the listed collection. For example, "X, Y, and/or Z" encompasses: any one letter individually (e.g., {X}, {Y}, {Z}); any combination of two of the letters (e.g., {X, Y}, {X, Z}, {Y, Z}); and all three letters (e.g., {X, Y, Z}). Such combinations may include other unlisted elements as well. "Artificial intelligence" or "Al" generally refers to the ability of machines to perceive, synthesize, and/or infer information. Al may enable a machine to perform tasks which normally require human intelligence. For example, Al may be configured for speech recognition, visual perception, decision making, language interpretation, logical reasoning, and/or moving objects. Typically, Al is embodied as a model of one or more systems that are relevant to tasks that a machine is configured to perform. Al models may be implemented on a device, such as a mechanical machine, an electrical circuit, and/or a computer. Al models may be implemented in an analog or digital form and may be implemented on hardware or software. The implementation of Al may also utilize multiple devices which may be connected in a network.
"Artificial Neural Network" or "Neural Network" generally refers to a model composed of multiple nodes. Each node receives a signal from one or more inputs or other nodes. Each node may also perform an operation on the received signal and sends a signal to one or more other nodes or outputs. The nodes may be arranged in layers such that one or more signals travels across the layers sequentially. The neural network may be given data that trains the neural network. The neural network may be trained to perform a variety of tasks. For example, a neural network may be trained to recognize objects in an image, recognize patterns in a sequence, replicate motion, or approximate a function.
"Artificial Neuron" or "Node" generally refers to a computational model within a neural network that receives one or more inputs and produces an output. Typically, the model of a neuron applies weights to the one or more inputs and sums the weighted inputs. The model of a neuron may include one or more non-linear functions, for example sigmoid, piecewise, and/or step functions. Inputs to a neuron may be outputs from one or more other neurons in the neural network or may be inputs to the neural network as a whole. Similarly, outputs of a neuron may be inputs to one or more other neurons in the neural network or may be outputs of the neural network as a whole.
"Cellular Device" generally refers to a device which sends or receives data, and/or sends or receives telephone calls using a cellular network. Cellular devices may thus be characterized as nodes in a communications link operating as an originating and/or final receiving node. A cellular device transmits to and receives from a cellular transceiver located in the cell (e.g. at a base unit or “cell tower.”) Radio waves are generally used to transfer signals to and from the cellular device on a frequency that is specific (but not necessarily unique) to each cell. A cellular device may include a computer with memory, processor, display device, input/output devices, and so forth, and thus may be used as, and referred to as, a personal computing device.
"Cellular Network" or "Mobile Network" generally refers to a communications link or communications network where the final communications link to an originating sending node or final receiving node in the network is via a wireless link. The cellular network is distributed over land areas (“cells”), each cell served by at least one fixed-location transceiver known as a cell site, base station, or generically, a “cell tower”. This base station provides the cell with the network coverage which can be used for transmission of voice, data and other types of communication. In a cellular network, each cell uses a different set of frequencies from neighboring cells, to avoid interference and provide guaranteed bandwidth within each cell. In a cellular network, switching from one cell frequency to a different cell frequency is done electronically without interruption as various mobile devices with transceivers configured to communicate with the network (i.e. the originating or final receiver nodes) move from cell to cell during an ongoing continuous communication, all generally without a base station operator or manual switching. This is called the “handover” or “handoff.” Typically, a new channel is automatically selected for the mobile device on the new base station which will serve it as the mobile device moves around in the cell. The mobile unit then automatically switches from the current channel to the new channel and communication continues. The most common example of a cellular network is a mobile phone (cell phone) network.
"Communication Link" or "Communication Channel" generally refers to a connection between two or more communicating entities and may or may not include a communications channel between the communicating entities. The communication between the communicating entities may occur by any suitable means. For example, the connection may be implemented as an actual physical link, an electrical link, an electromagnetic link, a logical link, or any other suitable linkage facilitating communication. In the case of an actual physical link, communication may occur by multiple components in the communication link configured to respond to one another by physical movement of one element in relation to another. In the case of an electrical link, the communication link may be composed of multiple electrical conductors electrically connected to form the communication link. In the case of an electromagnetic link, elements of the connection may be implemented by sending or receiving electromagnetic energy at any suitable frequency, thus allowing communications to pass as electromagnetic waves. These electromagnetic waves may or may not pass through a physical medium such as an optical fiber, or through free space, or any combination thereof. Electromagnetic waves may be passed at any suitable frequency including any frequency in the electromagnetic spectrum. In the case of a logical link, the communication links may be a conceptual linkage between the sender and recipient such as a transmission station in the receiving station. Logical link may include any combination of physical, electrical, electromagnetic, or other types of communication links.
"Computer" generally refers to any computing device configured to compute a result from any number of input values or variables. A computer may include a processor for performing calculations to process input or output. A computer may include a memory for storing values to be processed by the processor, or for storing the results of previous processing. A computer may also be configured to accept input and output from a wide array of input and output devices for receiving or sending values. Such devices include other computers, keyboards, mice, visual displays, printers, industrial equipment, and systems or machinery of all types and sizes. For example, a computer can control a network interface to perform various network communications upon request. A computer may be a single, physical, computing device such as a desktop computer, a laptop computer, or may be composed of multiple devices of the same type such as a group of servers operating as one device in a networked cluster, or a heterogeneous combination of different computing devices operating as one computer and linked together by a communication network. A computer may include one or more physical processors or other computing devices or circuitry and may also include any suitable type of memory. A computer may also be a virtual computing platform having an unknown or fluctuating number of physical processors and memories or memory devices. A computer may thus be physically located in one geographical location or physically spread across several widely scattered locations with multiple processors linked together by a communication network to operate as a single computer. The concept of "computer" and "processor" within a computer or computing device also encompasses any such processor or computing device serving to make calculations or comparisons as part of a disclosed system. Processing operations related to threshold comparisons, rules comparisons, calculations, and the like occurring in a computer may occur, for example, on separate servers, the same server with separate processors, or on a virtual computing environment having an unknown number of physical processors as described above.
"Convolutional Neural Network" or "CNN" generally refers to an artificial neural network wherein one or more neurons in at least one layer of the artificial neural network perform a mathematical convolution on an input to that layer. As examples, CNNs are used for identifying objects in an image, tracking an object in a video, classifying images, identifying words in speech, understanding meaning from text, generating text, generating images, and/or performing other tasks. In some cases, a CNN more accurately generates, analyzes, and/or performs other tasks related to images and video than other types of neural networks. In one example, the neurons of each layer in a CNN are fully connected such that each neuron of one layer is connected to every neuron of neighboring layers. In some cases, the CNN includes features to mitigate negative effects of a fully connected neural network, such as overfitting data.
"Data" generally refers to one or more values of qualitative or quantitative variables that are usually the result of measurements. Data may be considered "atomic" as being finite individual units of specific information. Data can also be thought of as a value or set of values that includes a frame of reference indicating some meaning associated with the values. For example, the number "2" alone is a symbol that absent some context is meaningless. The number "2" may be considered "data" when it is understood to indicate, for example, the number of items produced in an hour. Data may be organized and represented in a structured format. Examples include a tabular representation using rows and columns, a tree representation with a set of nodes considered to have a parent-children relationship, or a graph representation as a set of connected nodes to name a few. The term "data" can refer to unprocessed data or "raw data" such as a collection of numbers, characters, or other symbols representing individual facts or opinions. Data may be collected by sensors in controlled or uncontrolled environments, or generated by observation, recording, or by processing of other data. The word "data" may be used in a plural or singular form. The older plural form "datum" may be used as well. "Database", "Knowledge Base", "Data Store", or "Data Repository" generally refers to an organized collection of data. The data is typically organized to model aspects of the real world in a way that supports processes obtaining information about the world from the data. Access to the data is generally provided by a “Database Management System” (DBMS) consisting of an individual computer software program or organized set of software programs that allow user to interact with one or more databases providing access to data stored in the database (although user access restrictions may be put in place to limit access to some portion of the data). The DBMS provides various functions that allow entry, storage and retrieval of large quantities of information as well as ways to manage how that information is organized. A database is not generally portable across different DBMSs, but different DBMSs can interoperate by using standardized protocols and languages such as Structured Query Language (SQL), Open Database Connectivity (ODBC), Java Database Connectivity (JDBC), or Extensible Markup Language (XML) to allow a single application to work with more than one DBMS. Databases and their corresponding database management systems are often classified according to a particular database model they support. Examples include a DBMS that relies on the “relational model” for storing data, usually referred to as Relational Database Management Systems (RDBMS). Such systems commonly use some variation of SQL to perform functions which include querying, formatting, administering, and updating an RDBMS. Other examples of database models include the “object” model, the “object- relational” model, the “file”, “indexed file” or “flat-file” models, the “hierarchical” model, the “network” model, the “document” model, the “XML” model using some variation of XML, the “entity-attribute-value” model, and others. Examples of commercially available database management systems include PostgreSQL provided by the PostgreSQL Global Development Group; Microsoft SQL Server provided by the Microsoft Corporation of Redmond, Washington, USA; MySQL and various versions of the Oracle DBMS, often referred to as simply “Oracle” both separately offered by the Oracle Corporation of Redwood City, California, USA; the DBMS generally referred to as “SAP” provided by SAP SE of Walldorf, Germany; and the DB2 DBMS provided by the International Business Machines Corporation (IBM) of Armonk, New York, USA. The database and the DBMS software may also be referred to collectively as a “database”. Similarly, the term “database” may also collectively refer to the database, the corresponding DBMS software, and a physical computer or collection of computers. Thus, the term "database" may refer to the data, software for managing the data, and/or a physical computer that includes some or all of the data and/or the software for managing the data.
“Electromagnetic Spectrum” generally refers to the range of all possible frequencies of electromagnetic radiation.
"Generative Adversarial Network" or "GAN" generally refers to a type of machine learning framework wherein two neural networks compete against each other. One neural network generates candidates for output and another neural network evaluates the candidates based on a training dataset. In one embodiment, one of the neural networks integrates or is replaced with manual inputs from a human operator. The training dataset may train the GAN to produce a variety of outputs. For example, the GAN may be configured to generate images, text, translations of text and images, sequences of movement, 3-dimensional objects and positions, and/or predictions of video.
"Generative Network" or "Generator" generally refers to a neural network that generates candidates as outputs. As examples, the output candidates are images, videos, speech, text, and/or instructions for a machine. The generator is configured to produce outputs that are similar to or indistinguishable from information obtained from a training dataset. In some cases, the outputs of a generator are evaluated by another neural network, for example a discriminator network. In one embodiment, the generator is given random data as input. The generator may perform operations on the input data. In some cases, the generator also receives information from a discriminator network that is used to train the generator and modify the operations of the generator.
"Geo-fence" generally refers to a virtual boundary generated for a real geographical area. The virtual boundary defined by a geo-fence may be monitored using a positioning system and/or any other form of location-based service.
"Geolocation Or Geopositioning" generally refers identifying the location of, or the location itself of, a “real -world” or “physical” geographic location or location of an object, such as a position on the globe, the position of a topographical feature, a building, a particular source of electromagnetic radiation, a mobile phone or a network-connected computer. Thus geolocation may be used as a verb referring to the practice of assessing the physical location, or in the noun form as the actual assessed location itself. In this usage, geolocation can refer to the latitude and longitude coordinates of a particular location as defined by ISO/IEC 19762-5:2008. Geolocation is closely related to the use of positioning systems such as the Global Positioning System (GPS) and may include determining a recognizable location coordinate (e.g., a street address) rather than just a set of geographic coordinates. A geolocation/geopositioning module, engine, or device may use any suitable positioning system or positioning technology. For example a geolocation module may use radio frequency (RF) location methods, such as Multilateration or Time Difference Of Arrival (TDOA) to geolocate an object. GPS is an example of a TDOA geolocation system. TDOA systems often utilize mapping displays or other geographic information system. When a GPS signal is unavailable, geolocation modules may use cellular signal data associated with a mobile device obtained from cell towers to triangulate the approximate position of the mobile device, a method that may not be as accurate as GPS. This is in contrast to earlier radiolocation technologies, for example Direction Finding where a line of bearing to a transmitter is achieved as part of the process. A geolocation module or engine may also rely on internet and computer geolocation that may be performed by associating a geographic location with the Internet Protocol (IP) address, MAC address, RFID, hardware embedded article/production number, embedded software number (such as UUID, Exif/IPTC/XMP or modem steganography), invoice, Wi-Fi positioning system, device fingerprint, canvas fingerprinting or device GPS coordinates, or other, perhaps self-disclosed information. Network geolocation may work by automatically looking up an IP address on a WHOIS service and retrieving the registrant's physical address. IP address location data can include information such as country, region, city, postal/zip code, latitude, longitude and time zone. Deeper data sets can determine other parameters such as domain name, connection speed, ISP, language, proxies, company name, Designated Market Area (DMA), Metro Survey Areas (MSA), North American Industry Classification System (NAICS) codes, and home/business.
"Handheld" generally refers to an object, such as a tool or other device, which has been designed so that object can be easily held, used, and operated with one or two hands of a human being. In other words, a handheld device is designed to be small and light enough to be operated in the hand of a human being for an extended period of time without experiencing significant fatigue.
"Input Device" generally refers to any device coupled to a computer that is configured to receive input and deliver the input to a processor, memory, or other part of the computer. Such input devices can include keyboards, mice, trackballs, and touch sensitive pointing devices such as touchpads or touchscreens. Input devices also include any sensor or sensor array for detecting environmental conditions such as temperature, light, noise, vibration, humidity, and the like.
"Input/Output (I/O) Device" generally refers to any device or collection of devices coupled to a computing device that is configured to receive input and deliver the input to a processor, memory, or other part of the computing device and/or is controlled by the computing device to produce an output. The I/O device can include physically separate input and output devices, or the input and output devices can be combined together to form a single physical unit. Such input devices of the I/O device can include keyboards, mice, trackballs, and touch sensitive pointing devices such as touchpads or touchscreens. Input devices also include any sensor or sensor array for detecting environmental conditions such as temperature, light, noise, vibration, humidity, and the like. Examples of output devices for the VO device include, but are not limited to, screens or monitors displaying graphical output, a projecting device projecting a two-dimensional or three-dimensional image, or any kind of printer, plotter, or similar device producing either two-dimensional or three-dimensional representations of the output fixed in any tangible medium (e.g., a laser printer printing on paper, a lathe controlled to machine a piece of metal, or a three-dimensional printer producing an object). An output device may also produce intangible output such as, for example, data stored in a database, or electromagnetic energy transmitted through a medium or through free space such as audio produced by a speaker controlled by the computer, radio signals transmitted through free space, or pulses of light passing through a fiber-optic cable.
"Interface" or "Human-Machine Interaction (HMI)" generally refers to a computer, a smartphone, a tablet, and other computerized device or system where a user receives information and/or transmits commands. For instance, the interface can be a mechanism through which users can input information or commands and receive feedback or output from a system. In one example, the interface can be visual, such as a graphical user interface (GUI) displayed on a screen. In another example, the interface can be physical, such as buttons, switches, or knobs on a control panel. In a further example, the interface can be auditory, such as spoken commands and feedback, or haptic, such as vibrations or tactile feedback.
"Memory" generally refers to any storage system or device configured to retain data or information. Each memory may include one or more types of solid-state electronic memory, magnetic memory, or optical memory, just to name a few. By way of non-limiting example, each memory may include solid-state electronic Random Access Memory (RAM), Sequentially Accessible Memory (SAM) (such as the First-In, First-Out (FIFO) variety or the Last-In-First-Out (LIFO) variety), Programmable Read Only Memory (PROM), Electronically Programmable Read Only Memory (EPROM), or Electrically Erasable Programmable Read Only Memory (EEPROM); an optical disc memory (such as a DVD or CD ROM); a magnetically encoded hard disc, floppy disc, tape, or cartridge media; or a combination of any of these memory types. Also, each memory may be volatile, nonvolatile, or a hybrid combination of volatile and nonvolatile varieties.
"Microcontroller" or "MCU" generally refers to a small computer on a single integrated circuit. It may be similar to, but less sophisticated than, a System on a Chip or "SoC"; a SoC may include a microcontroller as one of its components. A microcontroller may contain one or more CPUs (processor cores) along with memory and programmable input/output peripherals. Program memory in the form of ferroelectric RAM, NOR flash or OTP ROM may also be included on the chip, as well as a small amount of RAM. Microcontrollers may be designed for embedded applications, in contrast to the microprocessors used in personal computers or other general-purpose applications consisting of various discrete chips. Microcontrollers may be included in automatically controlled products and devices, such as automobile engine control systems, implantable medical devices, remote controls, office machines, appliances, power tools, toys and other embedded systems. An MCU may be configured to handle mixed signals thus integrating analog components needed to control non-digital electronic systems. Some microcontrollers may use four-bit words and operate at frequencies as low as 4 kHz, for low power consumption (single-digit milliwatts or microwatts). They will generally have the ability to retain functionality while waiting for an event such as a button press or other interrupt; power consumption while sleeping (CPU clock and most peripherals off) may be just nanowatts, making many of them well suited for long lasting battery applications. Other microcontrollers may serve performance roles, where they may need to act more like a Digital Signal Processor (DSP), with higher clock speeds and power consumption. A microcontroller may include any suitable combination of circuits such as: 1. a central processing unit - ranging from small and simple processors with registers as small as 4 bits or list, to complex processors with registers that are 32, 64, or more bits 2. volatile memory (RAM) for data storage 3. ROM, EPROM, EEPROM or Flash memory for program and operating parameter storage 4. discrete input and output bits, allowing control or detection of the logic state of an individual package pin 5. serial input/output such as serial ports (UARTs) 6. other serial communications interfaces like FC, Serial Peripheral Interface and Controller Area Network for system interconnect 7. peripherals such as timers, event counters, PWM generators, and watchdog 8. clock generator - often an oscillator for a quartz timing crystal, resonator or RC circuit 9. many include analog-to-digital converters, some include digital -to-analog converters 10. in-circuit programming and in-circuit debugging support.
"Mobile Device" generally refers to a piece of portable electronic equipment that can connect to a network such as a wireless network, a mobile network, and/or the internet. For instance, a mobile device can include a smartphone or tablet computer.
"Model" generally refers to a representation of a system, process, and/or object. Models modify one or more inputs using equations and/or logical operations to produce one or more outputs. A variety of systems, processes, and objects can be represented by models, including networks of neurons in a brain. Some models do not exactly portray the system or process and are a generalized or estimated representation to a certain extent. Some models produce varying outputs in response to the same input. For example, a statistical model of a system may involve probabilistic distributions based on randomly generated numbers such that the output is random to a certain degree.
"Network" or "Computer Network" generally refers to a telecommunications system that allows computers or other electronic devices to exchange data. Computers can pass data to each other along data connections by transforming data into a collection of datagrams or packets. The connections between computers and the network may be established using either cables, optical fibers, or via electromagnetic transmissions such as for wireless network devices. Computers coupled to a network may be referred to as "nodes" or as "hosts" and may originate, broadcast, route, or accept data from the network. Nodes can include any computing device such as personal computers, phones, and servers as well as specialized computers that operate to maintain the flow of data across the network, referred to as "network devices". Two nodes can be considered "networked together" when one device is able to exchange information with another device, whether or not they have a direct connection to each other. A network may have any suitable network topology defining the number and use of the network connections. The network topology may be of any suitable form and may include point-to-point, bus, star, ring, mesh, or tree. A network may be an overlay network which is virtual and is configured as one or more layers that use or "lay on top of other networks.
"Processor" generally refers to one or more electronic components configured to operate as a single unit configured or programmed to process input to generate an output. Alternatively, when of a multi-component form, a processor may have one or more components located remotely relative to the others. One or more components of each processor may be of the electronic variety defining digital circuitry, analog circuitry, or both. In one example, each processor is of a conventional, integrated circuit microprocessor arrangement, such as one or more PENTIUM, i3, i5 or i7 processors supplied by INTEL Corporation of 2200 Mission College Boulevard, Santa Clara, Calif. 95052, USA. In another example, the processor uses a Reduced Instruction Set Computing (RISC) architecture, such as an Advanced RISC Machine (ARM) type processor developed and licensed by ARM Holdings of Cambridge, United Kingdom. In still yet other examples, the processor can include a Central Processing Unit (CPU) and/or an Accelerated Processing Unit (APU), such as those using a K8, K10, Bulldozer, Bobcat, Jaguar, and Zen series architectures, supplied by Advanced Micro Devices, Inc. (AMD) of Santa Clara, California. Another example of a processor is an Application-Specific Integrated Circuit (ASIC). An ASIC is an Integrated Circuit (IC) customized to perform a specific series of logical operations for controlling the computer to perform specific tasks or functions. An ASIC is an example of a processor for a special purpose computer, rather than a processor configured for general-purpose use. An application-specific integrated circuit generally is not reprogrammable to perform other functions and may be programmed once it is manufactured. In another example, a processor may be of the "field programmable" type. Such processors may be programmed multiple times "in the field" to perform various specialized or general functions after they are manufactured. A field-programmable processor may include a Field-Programmable Gate Array (FPGA) in an integrated circuit in the processor. An FPGA may be programmed to perform a specific series of instructions which may be retained in nonvolatile memory cells in the FPGA. The FPGA may be configured by a customer or a designer using a Hardware Description Language (HDL). An FPGA may be reprogrammed using another computer to reconfigure the FPGA to implement a new set of commands or operating instructions. Such an operation may be executed in any suitable means such as by a firmware upgrade to the processor circuitry. Just as the concept of a computer is not limited to a single physical device in a single location, so also the concept of a "processor" is not limited to a single physical logic circuit or package of circuits but includes one or more such circuits or circuit packages possibly contained within or across multiple computers in numerous physical locations. In a virtual computing environment, an unknown number of physical processors may be actively processing data, and the unknown number may automatically change over time as well. The concept of a "processor" includes a device configured or programmed to make threshold comparisons, rules comparisons, calculations, or perform logical operations applying a rule to data yielding a logical result (e.g., "true" or "false"). Processing activities may occur in multiple single processors on separate servers, on multiple processors in a single server with separate processors, or on multiple processors physically remote from one another in separate computing devices.
"Satellite Navigation" generally refers to a system that uses satellites to provide geo-spatial positioning data. In one example, the system may include a receiver that interacts with satellites using electromagnetic radiation. The timing of the transmission of the signal from the receiver to the satellites allows calculation of the position of the receiver using triangulation. Some of examples of satellite navigation systems include global positioning systems such as GPS and GLONASS as well as global positioning systems under development such as Galileo. A satellite navigation system may also be a regional positioning system such as BeiDou, NAVIC, and QZSS.
"Training" generally refers to the process of building a model based on given data. In the context of machine learning, training is used to teach artificial intelligence (Al) models information from a dataset and to make predictions. During training, models are given training data as input and output predictions for a target based on the given data. The models may be adjusted based on the outputs to improve the quality of predictions for the target. For example, a machine learning algorithm may adjust parameters of a model based on differences between the model output and information from the training data. The target of the model predictions may be included in information from the training data. Training may involve multiple iterations of models making predictions based on the data. In some cases, the training process is repeated or continued after a validation process.
It should be noted that the singular forms "a," "an," "the," and the like as used in the description and/or the claims include the plural forms unless expressly discussed otherwise. For example, if the specification and/or claims refer to "a device" or "the device", it includes one or more of such devices.
It should be noted that directional terms, such as "up," "down," "top," "bottom," "lateral," "longitudinal," "radial," "circumferential," "horizontal," "vertical," etc., are used herein solely for the convenience of the reader in order to aid in the reader's understanding of the illustrated embodiments, and it is not the intent that the use of these directional terms in any manner limit the described, illustrated, and/or claimed features to a specific direction and/or orientation.
While the invention has been illustrated and described in detail in the drawings and foregoing description, the same is to be considered as illustrative and not restrictive in character, it being understood that only the preferred embodiment has been shown and described and that all changes, equivalents, and modifications that come within the spirit of the inventions defined by the following claims are desired to be protected. All publications, patents, and patent applications cited in this specification are herein incorporated by reference as if each individual publication, patent, or patent application were specifically and individually indicated to be incorporated by reference and set forth in its entirety herein.
Reference Numbers
100 system event assistant system organizer invitees network scheduling system user device event area mode of transportation
Al system database organizer device invitee device first invitee second invitee third invitee fourth invitee airplane automobile initial location house office first organizer second organizer first event area second event area first assistant second assistant processor memory long-term storage device networking device location module processor memory location module networking device display device input device computer processor memory input/output device networking device organizer interface invitee list
ETA list share button chat button notification map marker invitee interface notification reward chat button arrival button photo button invitee list ETA list map marker flowchart stage stage stage stage 25 stage 30 stage 00 flowchart05 stage 10 stage 15 stage20 stage 25 stage 30 stage 35 stage 40 stage
1000 flowchart
1005 stage
1010 stage
1015 stage
1020 stage

Claims

1. A system, comprising: an event assistant system configured to receive an event invitation for an event from an organizer; wherein the event invitation includes a location for the event; wherein the event invitation identifies one or more invitees to the event; wherein the invitees have invitee devices; wherein the event assistant system is configured to receive routing data from the invitee devices; wherein the event assistant system is configured to receive location data from the invitee devices; wherein the event assistant system is configured to determine one or more estimated time of arrivals (ETAs) for the invitees based on the location data and the routing data; and wherein the event assistant system is configured to send the ETAs to an organizer device of the organizer.
2. The system of claim 1, wherein the event assistant system is configured to ask the invitees for geolocation and notification consent via the invitee devices.
3. The system of claim 1, wherein the event assistant system is unable to send the location data of the invitees to the organizer device.
4. The system of claim 1, wherein the routing data includes mode of transportation used by the invitees.
5. The system of claim 1, wherein the event assistant system is configured to learn user behavior to modify the ETAs for individuals and/or groups.
6. The system of claim 1, wherein the event assistant system is configured to send an alert to the organizer device when the ETAs of any of the invitees are beyond a start time of the event.
7. The system of claim 1, wherein the event assistant system allows a user to select a charity to receive rewards based on user behavior.
8. The system of claim 1, wherein the event assistant system is configured to send an email notification to the invitees if a push notification is unread.
9. The system of claim 1, wherein: the event assistant system is configured to offer rewards to the invitees; and wherein the rewards are determined based on the event and the routing data of the invitees.
10. A method, comprising: creating an event with an organizer device; inviting with the organizer device one or more invitees and an event assistant system to the event; and tracking behavior of the invitees with the event assistant system.
11. The method of claim 10, further comprising: offering a reward to the invitees based on the event data with the event assistant system.
12. The method of claim 11, further comprising: allowing a user to select a charitable organization; and donating the reward to the charitable organization.
13. The method of claim 10, further comprising: learning user behavior with the event assistant system; and adjusting estimates based on user behavior with the event assistant system.
14. The method of claim 10, further comprising: determining estimated time of arrivals (ETAs) for the invitees with the event assistant system; comparing the ETAs to a start time of the event with the event assistant system; and alerting an organizer when the ETAs of at least one of the invitees is beyond the start time of the event.
15. A method, comprising: sending a request from an event assistant system to an invitee device of an invitee for routing data; receiving the routing data of the invitee device at the event assistant system; updating routing information of the invitee at the event assistant system based on the routing data; and calculating an estimated time of arrival (ETA) based on the routing information with the event assistant system.
16. The method of claim 15, further comprising: checking whether the invitee has read the request; and sending a second request to the invitee device.
17. The method of claim 16, wherein the second request is an email.
18. The method of claim 15, further comprising: comparing the ETA to a start time of the event with the event assistant system; and sending an alert to a user when the ETA is beyond the start time of the event.
19. The method of claim 18, wherein the user is an event organizer.
20. The method of claim 18, wherein the user is the invitee.
21. The system or method of any one of claims 1-20, wherein the event assistant system is configured to ask the invitees for geolocation and notification consent via the invitee devices.
22. The system or method of any one of claims 1-21, wherein the event assistant system is unable to send the location data of the invitees to the organizer device.
23. The system or method of any one of claims 1-22, wherein the routing data includes mode of transportation used by the invitees.
24. The system or method of any one of claims 1-23, wherein the event assistant system is configured to learn user behavior to modify the ETAs for individuals and/or groups.
25. The system or method of any one of claims 1-24, wherein the event assistant system is configured to send an alert to the organizer device when the ETAs of any of the invitees are beyond a start time of the event.
26. The system or method of any one of claims 1-25, wherein the event assistant system allows a user to select a charity to receive rewards based on user behavior.
27. The system or method of any one of claims 1-26, wherein the event assistant system is configured to send an email notification to the invitees if a push notification is unread.
28. The system or method of any one of claims 1-27, wherein: the event assistant system is configured to offer rewards to the invitees; and wherein the rewards are determined based on the event and the routing data of the invitees.
29. The system or method of any one of claims 1-28, further comprising: offering a reward to the invitees based on the event data with the event assistant system.
30. The system or method of any one of claims 1-29, further comprising: allowing a user to select a charitable organization; and donating the reward to the charitable organization.
31. The system or method of any one of claims 1-30, further comprising: learning user behavior with the event assistant system; and adjusting estimates based on user behavior with the event assistant system.
32. The system or method of any one of claims 1-31, further comprising: determining estimated time of arrivals (ETAs) for the invitees with the event assistant system; comparing the ETAs to a start time of the event with the event assistant system; and alerting an organizer when the ETAs of at least one of the invitees is beyond the start time of the event.
33. The system or method of any one of claims 1-32, further comprising: checking whether the invitee has read the request; and sending a second request to the invitee device.
34. The system or method of any one of claims 1-33, wherein the second request is an email.
35. The system or method of any one of claims 1-34, further comprising: comparing the ETA to a start time of the event with the event assistant system; and sending an alert to a user when the ETA is beyond the start time of the event.
36. The system or method of any one of claims 1-35, wherein the user is an event organizer.
37. The system or method of any one of claims 1-36, wherein the user is the invitee.
38. The system or method of any one of claims 1-37, further comprising: a network is configured to communicatively link the assistant, the organizer, and the invitee.
39. The system or method of any one of claims 1-38, wherein the event assistant system is configured to manage one or more invitees for an event.
40. The system or method of any one of claims 1-39, wherein the event assistant system is configured to allow the organizer to create an event.
41. The system or method of any one of claims 1-40, wherein the event assistant system is configured to support the organizer by sending invites to the invitees.
42. The system or method of any one of claims 1-41, wherein the event assistant system is configured to ask one or more invitees for permission to obtain routing data from one or more invitee devices.
43. The system or method of any one of claims 1-42, wherein the event assistant system is configured to send a notification to the invitee to obtain current routing data of the invitee.
44. The system or method of any one of claims 1-43, wherein the notification is a push notification.
45. The system or method of any one of claims 1-44, wherein the routing data includes geolocation data of the invitee.
46. The system or method of any one of claims 1-45, wherein the event assistant system is configured to send notifications to one or more invitees to obtain current location and mode of transportation.
47. The system or method of any one of claims 1-46, wherein the organizer is able to see ETA for each invitee using a web app.
48. The system or method of any one of claims 1-47, wherein the event assistant system is configured to denote the invitee as present when the invitee is within range of the location of the event.
49. The system or method of any one of claims 1-48, wherein the event assistant system is configured to offer promotional rewards based on event and routing data.
50. The system or method of any one of claims 1-49, wherein the event assistant system is configured to notify a user if the ETA of the user is beyond the start time of the event.
51. The system or method of any one of claims 1-50, wherein the event invitation is an email.
52. The system or method of any one of claims 1-51, wherein the event assistant system includes an email server.
53. The system or method of any one of claims 1-52, wherein the event invitation identifies one or more email address for one or more invitees to the event.
54. The system or method of any one of claims 1-53, wherein the invitee devices are configured to notify the event assistant system when the invitee devices are within range of the location of the event.
55. The system or method of any one of claims 1-54, wherein the event assistant system is configured to notify the organizer when the invitees are within range of the location of the event.
56. The system or method of any one of claims 1-55, wherein the event assistant system is configured to notify the organizer when the invitees are on-site for the event.
57. The system or method of any one of claims 1-56, wherein the invitee devices are configured to display an arrival button when at the location of the event.
58. The system or method of any one of claims 1-57, wherein the invitee devices are configured to take a photograph when at the location of the event.
59. The system or method of any one of claims 1-58, wherein the event assistant system ceases tracking of the invitees when the invitees arrive at the location of the event.
60. The system or method of any one of claims 1-59, wherein the reward is a donation to the charitable organization.
PCT/US2024/011159 2023-01-12 2024-01-11 Location tracking for event attendance WO2024151812A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202363479656P 2023-01-12 2023-01-12
US63/479,656 2023-01-12

Publications (1)

Publication Number Publication Date
WO2024151812A1 true WO2024151812A1 (en) 2024-07-18

Family

ID=91897655

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2024/011159 WO2024151812A1 (en) 2023-01-12 2024-01-11 Location tracking for event attendance

Country Status (1)

Country Link
WO (1) WO2024151812A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240005441A1 (en) * 2021-06-16 2024-01-04 Bank Of America Corporation Systems and methods for intelligent steganographic protection

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011137275A2 (en) * 2010-04-30 2011-11-03 American Teleconferencing Services, Ltd. Location-aware conferencing with participant rewards
US20150149231A1 (en) * 2013-11-27 2015-05-28 Futurewei Technologies, Inc. System and Method for Auto Detecting and Informing Missing Meeting Attendees to Join a Meeting
US20180227713A1 (en) * 2006-05-12 2018-08-09 At&T Intellectual Property I, L.P. Location-based alerting
US20180247274A1 (en) * 2017-02-27 2018-08-30 PropertyMinders.com Method and System for Organizing Meetings Using Mobile Devices
US20190197490A1 (en) * 2017-12-21 2019-06-27 International Business Machines Corporation Electronic meeting time of arrival estimation
US20210248564A1 (en) * 2017-06-15 2021-08-12 Rovi Guides, Inc. Systems and methods for delaying the start time of an event based on event attendee arrival times

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180227713A1 (en) * 2006-05-12 2018-08-09 At&T Intellectual Property I, L.P. Location-based alerting
WO2011137275A2 (en) * 2010-04-30 2011-11-03 American Teleconferencing Services, Ltd. Location-aware conferencing with participant rewards
US20150149231A1 (en) * 2013-11-27 2015-05-28 Futurewei Technologies, Inc. System and Method for Auto Detecting and Informing Missing Meeting Attendees to Join a Meeting
US20180247274A1 (en) * 2017-02-27 2018-08-30 PropertyMinders.com Method and System for Organizing Meetings Using Mobile Devices
US20210248564A1 (en) * 2017-06-15 2021-08-12 Rovi Guides, Inc. Systems and methods for delaying the start time of an event based on event attendee arrival times
US20190197490A1 (en) * 2017-12-21 2019-06-27 International Business Machines Corporation Electronic meeting time of arrival estimation

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240005441A1 (en) * 2021-06-16 2024-01-04 Bank Of America Corporation Systems and methods for intelligent steganographic protection
US12260469B2 (en) * 2021-06-16 2025-03-25 Bank Of America Corporation Systems and methods for intelligent steganographic protection

Similar Documents

Publication Publication Date Title
US20230245068A1 (en) Method and system for automated time management
US10567568B2 (en) User event pattern prediction and presentation
US9488487B2 (en) Route detection in a trip-oriented message data communications system
US20170316324A1 (en) Computerized Event-Forecasting System and User Interface
US8290479B2 (en) Methods, systems, and computer program products for schedule management based on locations of wireless devices
US20180211724A1 (en) System and method for healthcare billing verification
US20180285827A1 (en) Distinguishing events of users for efficient service content distribution
US20200265377A1 (en) Tracking system and method
US20140278634A1 (en) Spatiotemporal Crowdsourcing
CN103582896A (en) Generating and processing task items that represent tasks to perform
WO2015118022A1 (en) User text content correlation with location
WO2013169794A2 (en) Calendar matching of inferred contexts and label propagation
CN104303463A (en) System and method for mobile communication integration
CN102812478A (en) Method and apparatus for providing soft reminders
CN105981057A (en) Location-Based Workflows and Services
WO2002099597A2 (en) Method and system for providing context awareness
US20210110352A1 (en) Scheduling calendar events based on social analytics
US20170330074A1 (en) Methods And Systems For Providing Travel Recommendations
US20140229208A1 (en) Systems and methods for a mobile relationship manager
CA3095553A1 (en) System and method for healthcare billing verification
WO2024151812A1 (en) Location tracking for event attendance
US10036647B2 (en) Systems and methods for the determination of a user's 4D trajectory
Altshuler et al. Ride sharing and dynamic networks analysis
JP5998182B2 (en) POI data generation device, terminal device, POI data generation method and program
US20130124248A1 (en) Active Device for Providing Real Time Parolee Information

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 24741995

Country of ref document: EP

Kind code of ref document: A1