Getting Started

Here you will find the necessary steps to install and initial configure the rapidsms-appointments application.


rapidsms-appointments requires Python 2.6 or 2.7. Python 3 is not currently supported but is planned in the future as Django and RapidSMS support for Python 3 increases. It also requires the following packages:


Stable releases of rapidsms-appointments can be found on PyPi and pip is the recommended method for installing the package:

pip install rapidsms-appointments

Once installed you should add appointments to your INSTALLED_APPS setting:

    # Required apps
    # Other apps go here

To create the necessary tables for the appointment data via:

python syncdb

rapidsms-appointments is compatible with South and if you are using South to handle schemamigrations then instead you should run:

python migrate appointments


As noted in the above requirements, rapidsms-appointments uses Celery to manage periodic tasks such as sending reminders for upcoming appointments. There are two tasks which you should add to your CELERYBEAT_SCHEDULE configuration:

from celery.schedules import crontab

    'generate-appointments': {
        'task': 'appointments.tasks.generate_appointments',
        'schedule': crontab(hour=0, minute=0, day_of_week=1), # Every monday at midnight
    'send-notifications': {
        'task': 'appointments.tasks.send_appointment_notifications',
        'schedule': crontab(hour=12, minute=0), # Every day at noon

These schedules are for example purposes and can be customized for your deployments needs. For a complete reference on integrating Celery in a Django project you should see the Celery documentation.

Next Steps

Continue reading to the project overview to learn about the terminology used and how you can define the set of appointments for your project.