I don't know about you, but I personally spend a lot of time copying and pasting or re-typing bits and pieces of event information from the web, my email and billboards out there into my calendar to create actual calendar events. There has to be an easier way!
What it does
This Alexa skill, "Email my Calendar Event", is here to help. The basic free version of the skill allows users to speak a new calendar event, and have Alexa email them a written version of the event. An in-skill purchase subscription allows users to also receive a calendar file attachment (a .ics file) as well as a QR code that can be scanned by any mobile device. This allows users to easily share the event with others, allowing them to import the event with one click or one camera scan, instead of wasting time re-entering that information. Our lives just became a little easier!
How I built it
This skill is a combination of 2 lambda functions written in Python. One Lambda is used to handle the skill's intents and entities, the other is used to convert the event details into a calendar event file and a QR code, and also handles the email using AWS SES. That Lambda is invoked via an API gateway.
Challenges I ran into
I found that the Python documentation out there is a bit cryptic at times since there appears to have been some changes in the Python "ask" library over time. Some old code examples don't work at all.
Accomplishments that I'm proud of
Putting all of the pieces together and actually building a distributed application with reusable components.
What I learned
There are many pieces in making an Alexa skill work, and the language model is key, it is the most visible part to the users. I also learned that even the Amazon built-in intents can send erroneous data...proper error handling is key.
What's next for Alexa email my calendar event skill
Improving the language model to handle more complex input. Also being able to handle either start/end dates and times OR durations.