September 3, 2016 was just another day for most of the world but to me it will always be memorable as the day that I married my partner.

There are many different aspects to consider while planning a wedding. Food, decor, table fixtures (oh yes these are separate from decor), flowers, accommodation, transportation, entertainment, and location. Whilst there are many unknowns when planning a wedding, I could be sure of one thing. In weddings there are a lot of lists, nested lists, and more lists as far as the eye could see. As I stared at the growing number of items I began to wonder if there was a better way? It all felt so manual and full of inefficiencies. There had to be some aspects that technology could improve.

You may be surprised but inviting people to weddings is expensive (over three hundred and eighty pounds), as you need to send out both ‘Save the date’ cards and a subsequent invite with specifics about the wedding. It is also slow, as you have to send it all via post. It’s time intensive to chase people to see if they received the invite and if they’d like to come to a party with free food and drink – surely an automatic yes? Finally, invites are not environmentally friendly as they are one time use and easily lost or misplaced.

Back to lists. The guest list is split into a few sections:

A list of who you’d liked to come A list of people who have replied to your R.S.V.P A list of people who have replied yes A list of people who have replied yes and selected a food choice

But lists are good. They have predefined requirements and responses which make them a great candidate for automation.

Message In a Bottle

Irrespective of age, I was sure everyone in the wedding list had a mobile phone and that meant it was Twilio time. If you want to skip to the code, you can view the repo on GitHub.

SMS was perfect for my needs. I could configure outbound mass messaging and handle responses quickly and efficiently. While sketching out an MVP and considering a database, I wanted something easy to share and didn’t want to waste time building views. Stumbling upon the gspread python library enabled me to read and write to a google spreadsheet. Whilst not the fastest option, it was certainly flexible enough and provided an easily accessible and readable output.

For the initial R.S.V.P I created a spreadsheet with these columns:

Name

Telephone_number

Confirmation_status

Contact detail status

Message_count (Amount of messages sent to guest, this comes in handy later)

After the main data entry was completed, I used gspread to iterate through the list and send an SMS to each guest that had a mobile number associated with it:

Sheets.py