New Events Calendar Service #1383
Replies: 2 comments 6 replies
-
|
This won't change the display on the VCIO website. This is meant to replace the calendar and event creation service in CraftCMS and Airtable on the admin side. Therefore, any calendar displays brought in by a new service will be admin only. |
Beta Was this translation helpful? Give feedback.
-
|
I want to add another layer to this conversation as we think about moving off CraftCMS + Airtable. Right now, we maintain community info in multiple places: the CMS, Airtable, VC-Community-Docs, and virtualcoffee.io. That means when a host changes or a group takes a break, someone has to remember to update at least two or three different spots. It’s easy for things to fall out of sync. (Shoutout to @meg-gutshall who frequently feels this pain point) I think we may be able to solve both problems together. Instead of replacing the CMS/Airtable with another silo, we could create one source of truth for groups + events (YAML files in GitHub, or a small Postgres/SQLite DB). From there: This way we’d: Even if we start repo-first (YAML + GitHub Actions) and grow into DB-backed later, it gets us away from both vendor costs and update fatigue. Single source of truth detailed proposal (cost-cut + fewer updates)Keep a single data source (YAML in GitHub or a tiny Postgres/SQLite) that defines: From that one source, auto-generate: Libraries:
Data-wise, it would look something like this: # coffee-table-groups.yml
- id: accountabilibuddies
name: Accountabilibuddies Group
slackChannel: announcements
hosts: [{ name: "Meg Gutshall", handle: "@meg" }]
status: active
# events/recurring.yml
- id: tues-coffee
groupId: tues-coffee
title: "Virtual Coffee Tuesday Coffee"
timezone: America/New_York
startLocalTime: "09:00"
endLocalTime: "10:00"
rrule: "FREQ=WEEKLY;BYDAY=TU" # <— RRULE defines the repeat
location: { type: zoom, url: "https://zoom.us/j/XXXX" }
visibility: public
overrides:
- date: "2025-11-26" # cancel pre-holiday
action: cancel
- date: "2025-10-31" # time/title tweak
action: modify
title: "Halloween — Wear your Halloween Costume"
startLocalTime: "09:00"
endLocalTime: "10:00"
- id: algos-pop-up-jan15
groupId: algorithms-reading
title: "Algos Pop-up: Divide & Conquer"
timezone: America/New_York
oneOff:
date: "2026-01-15"
startLocalTime: "17:00"
endLocalTime: "18:00"
location: { type: zoom, url: "https://zoom.us/j/YYYY" }
visibility: public |
Beta Was this translation helpful? Give feedback.

Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Summary 📆
The Maintainers have decided to move away from the current combination of CraftCMS and Airtable to a standalone events calendar plugin in order to cut down on monthly costs.
Goal 🎯
Transfer the backend event CRUD actions and calendar rendering away from paid services as quickly as possible to something equivalent or better featured that's maintainable and has a low learning curve.
Calendar Service Needs
(@Virtual-Coffee/maintainers, let me know if I'm missing anything here)
Candidate Calendar Services 💬
I've reviewed quite a few libraries and gathered a selection that may work for our purposes. I'm interested in thoughts on those listed below (likes/dislikes, pros/cons, etc.) as well as any suggested alternatives to be considered.
cc: @JoeKarow @danieltott @tkshill @BekahHW @nickytonline @jonathanyeong
Beta Was this translation helpful? Give feedback.
All reactions