Code Monkey home page Code Monkey logo

calexa's Introduction

CALexa - An Alexa Skill for accessing CalDAV Calendars

Currently Alexa comes with a built-in google calender. If you're devoted to privacy principles and running your own CalDav-Server such as Baikal, but still go along with latest technology trends, you may not come around the amazon Alexa natural language assistent. This skill gives you the opportunity to easily host your own CalDav skill, e.g. using Nginx on a Raspberry Pi, to make your Calendar transparently accessible for Alexa.

Technical Aspects

This skill uses Flask-Ask, a Python micro-framework that simplifies developing Alexa skills. Great work John Wheeler! With a little knowledge of Python and Flask it is very simple to extend.

Running the CALexa Skill on a Raspberry Pi

If you haven't setup your own CalDAV server, I recommend looking at Jan Karres' Blog.

Nginx Configuration

Note:

  • If you're not confident using Nginx see the beginners guide!
  • In order to be able to interact with Amazon Alexa, your endpoint either has to provide a certificate from a trusted certificate authority or you have to upload a self-signed certificate in X.509 format.
  1. Add the following entry to your Nginx configuration (you may find it at /etc/nginx/sites-available/default):
location /calexa {
rewrite ^/calexa/?(.*)$ /$1 break;
    proxy_pass http://localhost:5000;
    client_max_body_size 0;

    proxy_connect_timeout  36000s;
    proxy_read_timeout  36000s;
    proxy_send_timeout  36000s;
}
  1. Restart Nginx.

  2. Start the CALexa skill as well:

python /yourpathtocalexa/calexa.py

Your service will now be available via https://yourdomain/calexa/

Configuration via Alexa Skills Kit

The configuration process is straigt forward, as known by other skills.

Intent Schema

Copy the content of the Intent Schema file to the Intent Schema field of the Interaction Model tab while using the Alexa Skills Kit for configuration.

Custom Slot Types

Add all Custom Slot Types defined by the files you can find in the Custom Slot Types directory, e.g.:

Enter Type

LIST_OF_CALENDAR_SYNONYMS

Enter Values

Kalender
Terminplaner
Agenda

Sample Utterances:

Copy the content of the Sample Utterance file to the Sample Utterances field of the Interaction Model tab while using the Alexa Skills Kit for configuration.

Interaction Example

User->Alexa: Alexa, was ist heute auf dem Kalender?
Note right of Alexa: Alexa does NLP
Alexa--> Skill: GetTodayEventsIntent
Note right of Skill: Skill accesses CalDAV server
Skill-->Alexa:  String(Es sind folgende Termine auf dem Kalender ...)
Note right of Alexa: Alexa synthesises NL from string
Alexa-->User:  Es sind folgende Termine auf dem Kalender ...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.