Calendar Invites on AWS SES

Greg Hanchin
calendarsnack.com
Published in
7 min readAug 31, 2024
Deep Dive of Calendar Server

The 5 Calendar Server Solutions in a Box

Calendar invites for subscribed email lists and embedded web pages

The Calendar Server APIs, Message Logic, and server-less DevOps pipeline are in a Calendar Server software license, which can be downloaded as a SAM Template and installed in your AWS account.

1. Upcoming Landing Pages with one-click calendar invites

2. Sending direct calendar Invites to the email list for subscribed customers

3. RSVP Button for Calendar Invite Sending in MailChimp + 50 More Email Marketing Vendors

4. RSVP Button for Calendar Invite Sending in Newsletters + SubStack + Beehive

5. Calendar Invites for custom integration- Invoicing Systems, Payment Systems, and Machine to Machine use cases using Agents for trigged calendar invite sending

The YAML template will provision the correct AWS services for the Calendar server pipelines to attach to your Simple Email Service (SES) Account for sending and receiving calendar invites. The CalendarSnack VUE.JS application with the necessary APIs is commented in the VUE routing to hook up to the Calendarsnack Interface.

What is Email Death?

Still Epic Fail in 2024 Marketing

The Add to the Calendar button is the only solution in the $14 Billion Email Vendor and Agency space.

We refer to this as the ‘email death ‘, a situation where multiple emails are exchanged just to confirm an event, leading to inefficiency and unnecessary communication.

We strongly recommend the practice of sending direct calendar invites to your subscribed list, provided your customer consents. This method not only confirms your customer’s intent through the RSVP receipt but also keeps you informed about their status.

Below is the calendar invite messaging workflow inside AWS talking to the Calendarsnack APP via the calendar server API’s.

Calendar Server Details

Sending Direct Calendar Invites with AWS Serverless and the Calendar Invite API

1. Customers use the your@yourdomain.com command in a Calendar Client. The calendar client sends a copy of the calendar invite to S3 Email In Box to store the calendar message in its original form in the SES storage layer. If any edits or cancellations are completed in the Calendar Client, we update the databases, and anyone who has received a calendar invite uses the API.

2. Event Bridge notifies Lambda to pick up a copy of the payload and disassemble calendar invite MIME components of the message body, time start, time stop, UID, and location to store in S3 and Dynamo DB for reassembly in the next step.

3. The Lambda routine generates the Event UID for Dynamo DB and the Calendar Invite meta artifacts and is stored in S3.

4. Event Bridge notifies the UID Lambda to reassemble the Calendar Invite from S3 with the correct Encoded, MIME TYPE, and Multi-Part payload and to validate the EVENT UID translation from Dynamo DB.

5. In one of three ways, the calendar invite is sent using the Calendarsnack dashboard. In an Upcoming Landing Page List, a VIP LIST of email names, or an RSVP Button for Email Marketing Vendors. The specific Lambdas create, send, and update the calendar invite client data sent to S3 using the messaging pipelines we have made.

6. Customers track the RSVPs in the Reporting dashboard to review the collected RSVP Data or possibly use a send method.

Below is the calendarsnack interface for sending a bulk email list using the VIP List Uploader option.

Sending Calendar Invites to subscribed email lists

Batching, Staging, and Sending Calendar Invites using the Calendarsnack App and API’s with a Email List

This workflow above is from the Calendarsnack App for sending Calendar Invites to an email list. It works well for batch uploading of email files into the calendarsnack console using a simple uploader interface.

In addition, you can customize this workflow to suit your AWS PinPoint Marketing Lists or any other APIs from Email Marketing Vendors to import and connect to our send API, which is specifically built for Calendar Invite testing, staging, and sending.

The API includes using bulk@yourdomain.com to drop off a CSV or TXT file with the email list and the UID of the calendar invites tagged for those specific email addresses. The file will be inside your calendarsnack console, allowing you to schedule the sending of the calendar invites.

API in Calendar Server Kit for Bulk drop of sending a calendar invite to a list via email drop box option

Above is the screen shot of the bulk drop off to email box on AWS SES.

This API is configurable in addition to the bulk uploader that is in the VIP List interface in the Calendarsnack application.

Pipeline Example — Sending Calendar Invite

An example of one of the Messaging Pipelines in the Calendar Server Solution

The above is the Messaging pipeline 5 for Sending a Calendar invite in API#3. This is used for all sending of calendar invites from Landing Pages and Bulk Email Lists to to API. In this example above we are using the API#2 to pull data into the Organizer dashboard to show Single Event Statistics and Reporting.

5A — SNS listens and notifies SQS of the Calendar Invite to be sent to a list, then sends a request to Step 5B Lambda and extracts and transforms the Calendar Client payload for that UID using the processed Calendar Invite data from Step 2A Proprietary Lambda and reassembles that payload using the AWS RAW SES API to build the MIME compliant calendar Invite with the multi-part messaging components stored in the Dynamo DB and then notifies Step 5C SNS queue to notify SQS to send the Calendar Invite via Step 5D Propriety Lambda using your SES account to the email address provided by the interface of the webpage or the TEXT list manager with the email addresses in Dynamo DB.

In Step 5A, we can send a list of email names using an attached TEXT file of email names to an email address, which we include in the SAM template.

API #3 Single Event Calendar Invitation Send -Description: Sends an Invitation to a single email address.

API #2 Single Event Statistics and Reporting — Description: The Event Statistics API retrieves the total number of invitations and RSVPs received for that UID calendar invite.

Sending Calendar Invites from Landing pages

The above slide shows how the Sending a Calendar Invite off an Upcoming page works as it uses the same API’s for direct sending and AWS SES.

This use case and messaging workflow is included in the Calendarsnack App as well as the calendar server stack.

Here is the NFL 2024 Schedule in an Upcoming Landing page we generated using this feature.

2024 NFL schedule in AWS

This page is autogenerated using the Calendarsnack APP

The Upcoming Landing Page sends the calendar invites when a customer puts in their email address and uses the get the invite button.

Workflow from the Calendarsnack generated Upcoming Landing Page

The individual data is tracked and we report on them in the Organizer and Domain Dashboards from the APIs listed below.

Reporting Data from the Calendar Server

These are the 4 API’s used to collect and serve up the data for Reporting for Organizers and Domain Owners
The calendar server provides detailed data for the Organizer and Domain Owners.
Detailed Organizer Event Data from the API’s to the Calendarsnack APP
Detailed Reporting Including per event and drilling into which solution is used

Calendar Client POV as Create, Update, and Delete (CRUD) to AWS

The Calendar Client is to be used to connect to an AWS serverless stack and update the Calendar Client UID in the database, in effect mimicking the workflow of a real calendar server.

We call this Calendar Client Create, Update and Delete or CRUD to AWS pipelines.

Below is the workflow of how UPDATE works in the Organizers calendar client. It flows to the Calendarsnack APP to update any data and then onto any Calendar Invites sent and received by the APIs for this event.

We use this same workflow to cancel the event.

Calendar Client POV — Editing and Cancel Workflow to the Calendar server

Details on how Updating of the Calendar Invite work talking to the AWS Pipeline

Below are the details of actually what happens in the Pipeline 8 the UPDATE Messaging using the Calendar Client CRUD.

Pipeline POV Example— Updating a Calendar Invite sent to AWS

Messaging Pipeline 8

That’s a wrap for this post. Thanks for stopping by and checking us out.

See https://calendarsnack.com/ -This application is included in the Calendar Server.

See https://31events.com/ — This is the Calendar Server page with packaging details, pricing and API’s.

--

--