Calendar Invite Server (CIS) for AWS
A Review of APIs, Serverless, and Calendar Clients for CRUD
The Calendar Invite Server Software Packages -The Calendar Invite Server (CIS) includes a Cloud Formation Management (CFM) Template to install the front end and back end of the solution into an AWS account.
Any developer has full access to all Lambdas and APIs to change and use for 100’s of use cases. We do not connect to your AWS account. You own it and run it.
Back end is AWS Serverless and front end example App is a VUE.JS template reviewed here.
AWS: ses, s3, sns, sqs, lambda, dynamodb, route53, acm, apigateway
other (not mentioned in stack): siteground for managing existing dashboard DNS
event-management flow:
— email received in SES -> saved to S3
— new file in S3 -> SNS -> SQS -> Lambda
— process event information
— create/update events in DynamoDb <- API calls for dashboard
— send SES notifications
Its free to download from our GITHUB. Contact me for access.
Calendar Client CRUD to the Calendar Invite Server - A customer’s calendar client creates, reads, updates, and deletes data inside the Calendar Invite Server on AWS when the Calendar Invite is sent to a configured AWS Simple Email Service (SES) box.
In this example, the AWS SES mailbox configured for ETL is create@calendarsnack.com.
The Calendar Invite Create Process
The ETL process starts automatically when the Organizer sends the calendar invite to an email box on the Calendar Invite Server and registers the UID for that event in the Calendar Invite Server Database.
Anytime after the Calendar Invite is modified in the Calendar Client, the Read, Updates, and Deletes are automatically completed on the Calendar Invite Server in a series of Lambda Automation for that UID using the same workflow.
Lambda Machine 1- The Calendar Invite Eater
The calendar invite data is stored for later retrieval and sending on the AWS platform.
Event Data APIs for Single Organizer- The Event data APIs for the Single Organizer are 1, 2, 3, 4, 5, 6, and 7.
When the calendar client communicates with the Calendar Invite Server, these APIs orchestrate with the Lambdas to read, update, and delete the data related to specific UID event information for the Organizer after the Calendar Invite has been created in through Lambda #1.
API #3 is the Calendar Invite Send API. This API is used for all Calendar Invite Sending by calling Lambda #2.
These are the 7 APIs that drive the data for the Organizer Dashboards.
How the APIS works through the GUI Example
The View Event Organizer Dashboard
The View Event Report
In API #5, Lambda #9 is invoked, and an Email Report is sent to the Organizer.
This data can also be reported directly to the User Interface using an alternative workflow, which can be used with API #4.
The API #4 — Single Event list is designed to display data in the GUI.
In our design example of the CalendarSnack App, we chose not to display it in the GUI but instead to “Click Here” to get the Calendar Invite RSVP report sent automatically to the organizer using API #5.
The email templates are part of the AWS SAM Kit and are detailed in the technical documentation, which makes them easy to access and modify.
In this workflow motion, the email sent to the customer can be modified using the Calendar Invite Server configuration options under email templates for customer notifications.
Get Reports Dashboard
This summary Dashboard for the organizer uses API #1, API #6, and API #7.
Upcoming View Event Search Box
This is done by using API #6 and is a simple search in the Array, which is in the browser's resident memory.
Sending Calendar Invites on AWS SES
Upcoming Landing Page Example
The Upcoming Events is one of three ways to send calendar invites.
In this current build we support Direct Sending to an API#3, Embededd Calendar Invites into Landing Page Sending and an RSVP Button for Embedding the Calendar Invite into Calendarsnack.
Using API #6, this option in the Calendarsnack App presents all future events on a single page.
API#6 pulls all Upcoming Event data, sorts it in the Jscript in the Vue.JS application, and presents it in the Upcoming Landing Page using TailWinds and HTML.
API#3 sends the Calendar Invite to the email address presented in the email box, calls the UID for that event, and sends it based on Lambda #2.
This page uses API#3 and API#6.
API#3 to Lambda Machine 2 — Sending the Calendar Invite
Lambda #2 is the workhorse for all Calendar Invite Sending and is directly connected to API#3.
The Calendar Invite is reassembled from the AWS storage and database layers upon API#3 request and sent using the AWS RAW API Multi Part API.
For a valid request to work, it must include the email address and the UID for the Calendar Invite to be regenerated in Lambda.
Once the data is injected by the calendar client into the AWS Calendar Invite Server, it keeps the UID’s state of the Calendar Invite for CRUD operations and gathering RSVP Calendar Receipt data requests.
That means if the organizer changes the data in the calendar client, the Lamba engines kick off a “state” update in the pipeline and process those changes for the calendar invite components.
Sending Calendar Invites with a Bulk Email List
Loading up a test email list for calendar invite testing
This part of the GUI stitches together the ability to select a calendar invite from the AWS database, select it in the picker, and give it a command to send the calendar invite by issuing API #3 a greenlight by typing in the “YES” command in the picker.
We built this interface to send calendar invites from a pipeline of workflows for various use cases.
This is just one example of how it could be implemented.
VIPLIST TAB.
Step 1 — Go to VIP LIST Manager in the TAB.
Step 2. Select -the Event from the List.
Step 3. Upload Email List.
Step 4. Insert Yes Command to SEND List.
Step 5. Calendar Invite Receipts are collected in the reporting.
Calendar Receipt Collection for Organizers and Domain Owners
This is built into the Calendar Receipt “programming” of our LAMBDA #2 using the standard request receipt built into the IETF specification when we re-create the calendar invite for sending.
This causes the calendar client to “pop” in the email box and insures calendar client consistency across Google and Microsoft Calendar Clients.
It does so by requesting a “calendar receipt”.
Calendar Invite Server data collection for Domain System Owners
The System dashboard data is collected from the two organizer API’s.
System owners are considered all organizers in the domain. Under the domain are all the Users that have sent Calendar Invites to be generated into the Calendar Invite Server.
All calendar invites are collected under the email domain data bucket in S3 for System owners and summarized into this report using APIs #8 and API #9.
The data sorting with the APIS can easily be completed inside the browser with a simple Jscript.
This drill down is inside System Adminstration panel and into the Organizer Detailed views using API#6 and API #7.
SES Email Templates — Sending Notifications for Data Created Inside the Calendar Invite Server
When the Organizer’s Calendar Client is used to generate the data in the Calendar Invite Server by sending a Calendar Invite Copy to the configured email box there is an option to send out a SES notification to let the organizer know that the event has been created.
This data is in the Event Organizer API#1 And displayed in the Calendarsnack sample Application.
Its an optional setting based on the usecases to send out the SES template for notification.
AWS Calendar Invite Server Recap of APIS and Lambdas
For more information see calendarsnack.com or 31events.com.
If you want a free copy of the calendar invite server for AWS please contact me on LK or send me an email at greg@techvader.com/