Meeting Scheduling, Productivity, Uncategorized, x.ai Pros Series

How Time Lords hack Amy + Andrew

Meeting Scheduling, Productivity, Uncategorized, x.ai Pros Series

We’ve spent four years building x.ai based on a simple premise: technology is ready to help us control time. There’s work left to do, but we’re starting to see that technology is coming to free us from the boring parts of our lives—rote, easy tasks like calling for reservations, finding a taxi, or scheduling meetings. Ideally, humans should never have had to labor over these tasks, but we had to make do until machines were ready to automate them for us.  

We’re pushing the boundaries of productivity using AI, and we’re grateful for users that are just as forward-thinking.  One Time Lord, Dan Strong, leads the charge on optimizing Amy and Andrew for his own life. With a child and and busy life in Seattle, he needs to prioritize only the most important tasks.  

As a Linux administrator, Dan doesn’t schedule a ton of external meetings, but that doesn’t mean his work calendar is any less complicated. Instead of scheduling with other people, Dan’s built two hacks which let him use Amy as his personal taskmaster. We’ve got the details here if you want to try either for yourself. We’re pleased to share his passion for optimization, which inspires us all to keep questing to slay time itself.  

“Why do we have computers if not to work for us? We’re not supposed to be working for the computers,” says Dan “but right now, we are.” He’s striking back like a true Time Lord.  

Setting reminders through scripts

After experimenting with writing a working API function for a Google Calendar insert, Dan decided it was just too time consuming and thus inefficient and pricey, so he found a different way to manage his calendar.  

Dan uses x.ai only rarely for scheduling meetings—instead, he sets reminders and blocks out time in his workday using a custom Bash script (a plain text file of a series of commands, running in a Bash shell). The script carries out its logic to deliver a unique payload: a well-formatted email to Amy asking her to set a calendar event for his task. So unlike the average user, Dan rarely interacts with Amy via email, he instead provides the script with input needed (title, timeframe, etc) and sits back while Amy handles the processing and output.  Because he’s already in multiple shells all day long, he uses the “read” command in the script to elicit input to build an email for Amy.  

Essentially, x.ai functions as an API, building on our specifically-formatted email pipeline and templates to input information into Amy + Andrew’s brain and then Dan’s calendar.  

The output is a slew of calendar invites/holds that help Dan regulate his work and personal calendars, using a variety of reminders, meetings, and time blocks.  For example, he might set 4 different holds for events on a given Thursday, each with a different title and description.  He’ll pick up his kid from school in the morning for 30 minutes (and loop the script so the hold reoccurs), set a reminder for 15 minutes to email a client, schedule 2 hours with an old friend for lunch, and block off an hour of his afternoon for a project, all through the script he’s written.  That way, he doesn’t need to leave (and thus lose focus) the shells he’s working in all day long.  

Script setup, email payload, and calendar invite.

Amy + Andrew on your favorite voice interfaces

Dan doesn’t just use his script while working at his desktop, he’s also set up a system using a combination of IFTTT and Google Sheets that allows him to wake up Amy from anywhere in range of his Google Home.  

Dan can talk to his Google Home to let it know the relevant information on a reminder he wants to set, which is then written to a highly-formatted Google Sheet.  When he says “OK Google, please tell Amy to ‘draft automation plan’”, and the phrase ‘draft automation plan’ is dropped into the sheet, where IFTTT takes action.  IFTTT fires off an email to Amy (formatted in a way she understands), who sets a calendar hold labeled ‘draft reminder plan’ for Dan.  

Eventually, Dan’s hoping to build a “wrapper” of sorts around Amy and Andrew, which could extend them beyond their current feature set to fulfill Dan’s further specific needs.  

Custom scheduling categories

Dan is leading the charge towards enhancing x.ai’s personalized scheduling preferences by incorporating simple pattern recognition to support custom categories.  His script includes a “category” input, which refers back to the categories Dan has created for himself within the program.  When the script sends its email payload to Amy, it tells her the activity-specific time constraints from Dan’s set of categories, allowing Dan to effectively build a custom category!  (x.ai currently has default categories for “Coffee”, “Lunch”, etc, but we’re working on custom ones too ;).  

For example, if the task is for ACME Anvil Co., Amy only schedules between 9AM-1PM M-F, in order to honor Dan’s theoretical SLA with ACME. Or when he wanted to get his exercise in December, Dan set a reminder for himself to do 30 pushups, 70 situps, and run 20 min with his puppy, and then looped the script 31 times to schedule 30 minutes / day.  Amy handled those 31 emails quickly and reliably – Dan estimates his average success with his script is a solid 95%.  

Ultimately, Dan’s hopes for an even more automated future where he can segment his time ultra-efficiently into 15-minute increments, and he has one other, very human, request—let AI account for his moods.

If you’d like to play around with Dan’s script for yourself, you can copy the text below into your own shell!


echo -n -e “– Who are you meeting with? > “

read who

echo -n -e “– What’s their email? > “

read email

echo -n -e “– Where is the meeting? > “

read where

echo -n -e “– When is the meeting? > “

read when

echo -n -e “– Meeting duration? > “

read duration

echo -n -e “– Category? > “

read category

echo -n -e “– Meeting title? > “

read title

echo -n -e “– Meeting notes? > “

read notes

case “$1” in

acme) time=between 9am-1pm

    ;;

shg) time=between 1pm-3pm

    ;;

home) time=between 8:30am-9am or 1pm-3pm

    ;;

school) time=between 8:30am-9am or 1pm-3pm or 8pm-10pm

   ;;

*) #placeholder

   ;;

esac

echo -e “Amy: Please schedule a $duration reminder for $who ($email) at $where on $when $time. Meeting Title: $title. Meeting Notes: $notes $category. Thank you!” | mail -r you@yourdomain.com -s “$title” amy@x.ai you@yourdomain.com

echo -n -e “”

echo -n -e “– Meeting request sent to Amy. Have a nice day!”

echo -n -e “”