Skip to content

Commit

Permalink
Fix and improve monthly sync information
Browse files Browse the repository at this point in the history
Time Zones are a PITA, the meeting incidently happen at 15:30 UTC at the
moment, but it is in reality scheduled at 16:30 CET (UTC+1) during the winter
and 16:30 CEST (UTC+2) when daylight sayving take place during the
summer.  Fix the indication so that it matches reality.

Because converting from one time-zone to an other is something nobody
like to do, add some JavaScript code to do it for us and display when
the next monthly sync will take place.  For this we rely on moment.js to
do the math (as everybody knows, JS sucks and it lacks some time-zone
functions) and format the time of the event conveniently for the user in
their time zone (with formatting such as "Tomorrow at 5:30 AM" when the
date is near).

Last, but not least, provide a .ics file with the same information one
more time so that people can easily choose what they prefer.  Compared
to the event in the Puppetlabs calendar, this one supposely has the
correct time-zone and should avoid the mess that happened during the
last daylight saving change where US and EU where not changing the same
week.
  • Loading branch information
smortex committed Dec 27, 2024
1 parent 3496d4c commit 8ef17cd
Show file tree
Hide file tree
Showing 2 changed files with 93 additions and 1 deletion.
26 changes: 25 additions & 1 deletion contributing/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@ If you have any questions, don't hesitate to ask. We are happy to help you.

## Monthly sync

We have a monthly sync meeting where we discuss the state of the project and what we want to do in the future. You can find the [meeting board](https://github.com/orgs/voxpupuli/projects/10/) here. The [zoom link](https://perforce.zoom.us/j/91219793310?pwd=M0pPRklhd0lhL2V6ZldQd1BZRCsvQT09) is always the same, so you can join us every month. We meet every second tuesday of the month at 15:30 UTC.
We have a monthly sync meeting where we discuss the state of the project and what we want to do in the future. You can find the [meeting board](https://github.com/orgs/voxpupuli/projects/10/) here. The [zoom link](https://perforce.zoom.us/j/91219793310?pwd=M0pPRklhd0lhL2V6ZldQd1BZRCsvQT09) is always the same, so you can join us every month. We meet every second tuesday of the month at 16:30 [CET](https://www.timeanddate.com/time/zones/cet)/[CEST](https://www.timeanddate.com/time/zones/cest). You can [import this event in your calendar](voxpupuli-monthly-sync.ics).

<p id="nextmeeting"></p>

## Guidelines

Expand All @@ -22,3 +24,25 @@ We have a monthly sync meeting where we discuss the state of the project and wha
- If you have question about security, please follow our [security policy](https://voxpupuli.org/security/).
- General and more specific documentation can be found on our [docs](https://voxpupuli.org/docs/).
- In the project you want to work on, check their own contribution guidelines most often found in the README.md or CONTRIBUTING.md file.

<script src="https://momentjs.com/downloads/moment.min.js"></script>
<script src="https://momentjs.com/downloads/moment-timezone-with-data-10-year-range.js"></script>
<script type="application/javascript">
const myTimeZone = moment.tz.guess();
const eventTimeZone = "Europe/Berlin";

let nextMeeting = moment.tz(eventTimeZone).startOf('month').add(1, 'week').hours(16).minutes(30);
dayOffset = 2 - nextMeeting.day();
if (dayOffset < 0) dayOffset += 7;
nextMeeting.add(dayOffset, 'days');

if (nextMeeting.isBefore(moment.tz(eventTimeZone).add(1, 'hour'))) {
nextMeeting = moment.tz(eventTimeZone).startOf('month').add(1, 'month').add(1, 'week').hours(16).minutes(30);
dayOffset = 2 - nextMeeting.day();
if (dayOffset < 0) dayOffset += 7;
nextMeeting.add(dayOffset, 'days');
}

document.getElementById('nextmeeting').innerHTML += "Next monthly sync: " + nextMeeting.tz(myTimeZone).calendar() + " (" +
nextMeeting.tz(myTimeZone).format() + ")";
</script>
68 changes: 68 additions & 0 deletions contributing/voxpupuli-monthly-sync.ics
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
BEGIN:VCALENDAR
PRODID:-//K Desktop Environment//NONSGML libkcal 4.3//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:Europe/Berlin
BEGIN:STANDARD
TZNAME:CET
TZOFFSETFROM:+0000
TZOFFSETTO:+0100
DTSTART:19791231T230000
RDATE:19791231T230000
END:STANDARD
BEGIN:DAYLIGHT
TZNAME:CEST
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
DTSTART:19810329T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
END:DAYLIGHT
BEGIN:DAYLIGHT
TZNAME:CEST
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
DTSTART:19800406T020000
RDATE:19800406T020000
END:DAYLIGHT
BEGIN:STANDARD
TZNAME:CET
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
DTSTART:19971026T030000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
END:STANDARD
BEGIN:STANDARD
TZNAME:CET
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
DTSTART:19800928T030000
RRULE:FREQ=YEARLY;UNTIL=19961027T030000;BYMONTH=9;BYDAY=-1SU
RDATE:19950924T030000
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
DTSTAMP:20241227T225300Z
CREATED:20241227T225300Z
UID:6A104D48-6E0B-455A-8287-A15FB58FD654
LAST-MODIFIED:20241227T225910Z
DESCRIPTION:Meeting Board:\nhttps://github.com/orgs/voxpupuli/projects/10/\
n\nZoom:\nhttps://perforce.zoom.us/j/91219793310?pwd=M0pPRklhd0lhL2V6ZldQd
1BZRCsvQT09
SUMMARY:Vox Pupuli Monthly Sync
LOCATION:Online
DTSTART;TZID=Europe/Berlin:20241210T163000
DTEND;TZID=Europe/Berlin:20241210T173000
TRANSP:OPAQUE
CLASS:PUBLIC
BEGIN:VALARM
TRIGGER;RELATED=START;VALUE=DURATION:-PT1H
ACTION:DISPLAY
SUMMARY:Vox Pupuli Monthly Sync
DESCRIPTION:Meeting Board:\nhttps://github.com/orgs/voxpupuli/projects/10/\
n\nZoom:\nhttps://perforce.zoom.us/j/91219793310?pwd=M0pPRklhd0lhL2V6ZldQd
1BZRCsvQT09
END:VALARM
RRULE:FREQ=MONTHLY;BYDAY=2TU
END:VEVENT
X-KDE-ICAL-IMPLEMENTATION-VERSION:1.0
END:VCALENDAR

0 comments on commit 8ef17cd

Please sign in to comment.