Skip to content

Add a calendar for open community calls.#222

Open
tombentley wants to merge 2 commits intokroxylicious:mainfrom
tombentley:community-call
Open

Add a calendar for open community calls.#222
tombentley wants to merge 2 commits intokroxylicious:mainfrom
tombentley:community-call

Conversation

@tombentley
Copy link
Member

We're going to try using Jitsi since it seemed to
offer the best combination of features:

  • no time limit
  • ability to record meetings + publish on youtube.

The .ics file is hand-crafted, but validated
using https://icalendar.org/validator.html and also checked in Google calendar.

Using the webcal: pseudo-protocol for the link on the page should mean the browser passes the URL to the calendar app to be subscribed-to there.
That should cause the calendar app to regularly
poll for updates, in case we decide to cancel/reschedule meetings. I thought that was preferable to the user downloading a .ics and importing and then us making changes to the schedule making the imported event
series stale.

Putting these two together means we should have the liberty to cancel (using EXDATE:) and reschedule events if we need to. Note that I've already excluded
New Years Eve 2026 using EXDATE:.

We're going to try using Jitsi since it seemed to
offer the best combination of features:
* no time limit
* ability to record meetings + publish on youtube.

The `.ics` file is hand-crafted, but validated
using https://icalendar.org/validator.html and also
checked in Google calendar.

Using the `webcal:` pseudo-protocol for the link on
the page should mean the browser passes the URL to
the calendar app to be subscribed-to there.
That should cause the calendar app to regularly
poll for updates, in case we decide to cancel/reschedule
meetings. I thought that was preferable to the user
downloading a `.ics` and importing and then us making
changes to the schedule making the imported event
series stale.

Putting these two together means we should have the liberty
to cancel (using `EXDATE:`) and reschedule events if we
need to. Note that I've already excluded
New Years Eve 2026  using `EXDATE:`.

Signed-off-by: Tom Bentley <tbentley@redhat.com>
@tombentley tombentley requested a review from a team as a code owner March 2, 2026 23:26
@@ -0,0 +1,41 @@
BEGIN:VCALENDAR
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The ics format lacks support for comments :-(

X-WR-CALNAME:Kroxylicious Community Call
X-WR-TIMEZONE:UTC
BEGIN:VEVENT
UID:morning-series@kroxylicious.io
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm using UK-centric notions of morning and eventing, since those are compatible with the meetings being in UTC.

DTSTAMP:20260326T100000Z
DTSTART:20260326T080000Z
DTEND:20260326T084500Z
RRULE:FREQ=WEEKLY;INTERVAL=4;BYDAY=TH
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Both the events in the calendar repeat every 4 weeks. You have to include the BYDAY thing to get the recurrance on the right day of the week (it doesn't just figure it out from working forwards from the DTSTAMP). I realised that the notion of day is problematic because of the timezones we work in. The schedule means that the meets are always on a NZ Thursday, but that means half of them are a UK Wednesday.

DTSTART:20260326T080000Z
DTEND:20260326T084500Z
RRULE:FREQ=WEEKLY;INTERVAL=4;BYDAY=TH
EXDATE:20261231T080000Z
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This shows how we can exclude some events from the series.

DESCRIPTION:This is the UK morning slot of our bi-weekly rotation.\n
Click to join:
https://meet.jit.si/moderated/87697d32deaa8cbd8b3b96e1
bbb8aef920c240112935c2d4742c3b1b38a34588 \n
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Physical lines need to be <72 chars. A logical line can be split over multiple physical lines, and I think WS at the start of a physical line is ignored.

Comment on lines +20 to +21
URL:https://meet.jit.si/moderated/87697d32deaa8cbd8b3b96e1
bbb8aef920c240112935c2d4742c3b1b38a34588
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Splitting the URL is a bit 🤮 , but doing so gets rid of a warning from the validator.

join-us/index.md Outdated
<div class="col">
<div class="card shadow mb-2 mx-2 h-100">
<div class="card-header"><h2 class="card-title fs-4">Join our monthly Office Hours</h2></div>
<div class="card-header"><h2 class="card-title fs-4">Join our fortnightly Office Hours</h2></div>
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

'Fortnightly' is less ambiguous then 'biweekly' (which could mean twice a week if you squint)

join-us/index.md Outdated
</p>
</div>
<div class="card-footer text-center">
<a href="webcal://kroxylicious.io/join-us/community-call.ics" class="btn btn-primary">Subscribe in my calendar</a>
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note the webcal: protocol. I've not actually tested this bit yet.

Signed-off-by: Tom Bentley <tbentley@redhat.com>
@tombentley
Copy link
Member Author

Pushed a 2nd commit which:

  • reorders the cards on the 'join us' page and adds one for the youtube channel
  • puts all the community call info on a single page, because there was a bit too much to say for the card on the join us page
  • on the separate page I show the upcoming events using a js library.
image

</div>
<div class="col">
<div class="card shadow mb-2 mx-2 h-100">
<div class="card-header"><h2 class="card-title fs-4">Join our monthly Office Hours</h2></div>
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are we calling it "Community Call" or "Office Hours"? We should be consistent.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Community Call

+1

I've no intuitive understanding of what Office hours means or what people expect from it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants