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 solution's front and back end into an AWS account.
Any developer can access all Lambdas and APIs to change and use them for hundreds of use cases. We do not connect to your AWS account; you own and run it.
The back end is AWS Serverless, and the 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
It's free to download from our GitHub. Please feel free to 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
Calendar Client drops off data to an AWS SES Configured Mailbox.
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
The Email RSVP Report to the Organizer
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.
API #4 used the same data set
The API #4 — Single Event list is designed to display data in the GUI.
Details of Email with .CSV Expansion
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.
Lambda 9 attaches to 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 using API #6, 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 API#3, Embedding 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 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
This is what is behind API #3
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 calendar client injects the data 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 ensures 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 apis.
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 in this report using APIs #8 and API #9.
The data sorting with the APIS can quickly be completed inside the browser with a simple Jscript.
This drill-down is inside the System Adminstration panel, 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, an SES notification can be sent 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.
It's an optional setting based on the use cases to send out the SES template for notification.
AWS Calendar Invite Server Recap of APIS and Lambdas
These are the Pythonic-generated scripts that run the workflows
For more information, see calendarsnack.com or 31events.com.
If you want a free copy of the calendar invite server for AWS, don't hesitate to get in touch with me on LK or send me an email at greg@techvader.com/