Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
101 lines (66 sloc) 3.74 KB

Twilio's Appointment Reminders with Flask

Build Status Coverage Status

Use Twilio to send SMS reminders to your customers about upcoming appointments. Learn how appointment reminders help other companies in these Twilio customer stories.

Read the full tutorial here!


Local development

This project is built using the Flask web framework. It runs on Python 2.7+ and Python 3.4+.

To run the app locally, first clone this repository and cd into its directory. Then:

  1. Create a new virtual environment:

    • If using vanilla virtualenv:

      $ virtualenv venv
      $ source venv/bin/activate
    • If using virtualenvwrapper:

      $ mkvirtualenv appointment-reminders
  2. Install the requirements:

    $ pip install -r requirements.txt
  3. Start a local PostgreSQL database and create a database called appointments:

    • If on a Mac, we recommend After install, open psql and run CREATE DATABASE appointments;
    • If Postgres is already installed locally, you can just run createdb appointments from a terminal
  4. Copy the .env_example file to .env, and edit it to include your credentials for the Twilio API (found at and your local Postgres database

  5. Run source .env to apply the environment variables (or even better, use autoenv)

  6. Run the migrations with:

    $ alembic upgrade +1

    Note: If you have a local postgres installation where you access without password add this line to your pg_hba.conf file, JUST FOR DEVELOPMENT, DO NOT USE THIS IN PRODUCTION: host all YOUR_USER trust

  7. Start a redis server to be our Celery broker. If on a Mac, we recommend installing redis through homebrew

  8. Start the development server:

    $ python

You can now access the application at http://localhost:5000. To send any reminders, however, you must also start a separate Celery worker process.

  1. Start a new terminal session, cd into the repository, and active your appointment-reminders virtualenv

  2. Start the Celery worker:

    $ celery -A reminders.celery worker -l info

Celery will now send SMS reminders for any new appointments you create through the web app.

Run the tests

You can run the tests locally through pytest.

Follow the instructions in the Local Development section above, and then run:

$ py.test --cov tests

You can then view the results with coverage report or build an HTML report with coverage html.


  • No warranty expressed or implied. Software is as is. Diggity.
  • MIT License
  • Lovingly crafted by Twilio Developer Education.
You can’t perform that action at this time.