Clock, alarm & calendar

Three apps share the “watch” carousel slots: Clock, Alarm (opened from the Clock) and Calendar.

Clock

Two switchable watch faces — digital and analog. A small bell icon in the header lights up when an alarm is armed.

Open: push Left / Right until you land on the Clock screen.

KeyAction
Up / DownToggle digital ↔ analog face
Execute / FireEnter the alarm editor (slot 0)
Left / RightNext / previous carousel screen

Setting the time

The badge has no backup battery for its real-time clock, so the wall clock resets to None on every boot and reads “Clock not set” until you set it. Two ways:

  • MeshCore app over Bluetooth — the phone pushes its time. The easy path.
  • Mesh time advert — stand near a synced LoRa repeater and the badge picks the time up over the air. On-air time is only accepted from a trusted source: a signature-verified repeater / companion advert or a channel you hold the key for. A crowd of other badges won’t set your clock.

Set the timezone once under Main → Settings → Timezone — it persists across reboots (default +2, CEST for BornHack).

Alarm

Push Execute / Fire on the Clock screen to open the alarm editor.

KeyAction
Up / DownMove between fields (Hour → Minute → Days → Tone → Enabled)
Execute / FireDrill into / out of a field’s edit mode
CancelExit back to the watch face

The Days field cycles: Daily · Weekdays · Weekends · None · Custom. The Tone field offers ten built-in tunes: Beep, Imperial March, Rickroll, Pink Panther, Sandstorm, Startup, Trololo, Daisy Bell, Nokia, Samsung.

When an alarm fires the buzzer plays the chosen tone up to five times, 8 seconds apart. Any button press silences it; if you ignore it, it stops itself after about 32 seconds.

Calendar

A month grid with a per-day timeline of imported iCalendar events.

Open: Left / Right to the Calendar screen (right of Clock). The grid is shown without a cursor; push Execute / Fire to enter active mode.

Active mode:

KeyAction
Up / DownMove the cursor ±7 days (jump a week)
Left / RightMove the cursor ±1 day
Execute / FireOpen the day-detail timeline
CancelBack to the passive view

Day detail (timeline):

KeyAction
Up / DownScroll ±1 hour
Left / RightScroll long event titles horizontally
Execute / FireFull day-list (all events as a list)
CancelBack to the month view

Loading events

The badge imports events at boot from a file named ALARMS.ICS in the root of the USB drive:

  1. Plug the USB-C cable into your computer.
  2. Open the drive labelled CYBR<4 hex>.
  3. Drop your .ics file in the root, renamed to ALARMS.ICS.
  4. Eject the drive.
  5. Reboot the badge — slide the ON/OFF switch (top-left on the front) off, then back on.

You can use the official BornHack programme .ics straight from https://bornhack.dk/.

Import limits & quirks

The parser is deliberately minimal. If events are missing or look odd, one of these is usually why:

  • File size: 16 KiB max. Anything past that is silently cut off mid-event. A full conference programme easily exceeds this — trim it first with the firmware’s scripts/strip_ics.py (drops DESCRIPTION/UID/etc. and supports --from / --to / --max to select a range).
  • 31 events max. Import stops quietly at the cap; later events in the file never appear.
  • No recurrence. RRULE is ignored — a repeating event imports as its first occurrence only. Export “expanded” per-occurrence ICS instead (the BornHack programme already is).
  • No all-day events. A DATE-only DTSTART is dropped without warning. Give the event a real start time.
  • ASCII only. Non-ASCII characters in titles are stripped, not transliterated (Æ, accents and emoji simply vanish).
  • Timezones. Only Z-suffixed (UTC) timestamps are shifted to local time — always by the built-in default of UTC+2 (right for BornHack), because the import runs before your persisted timezone setting is applied. Floating and TZID=-zoned times are taken as-is. When in doubt, export in UTC.
  • Fired events disappear from the Calendar until reboot. Imported events are one-shot alarms: once one has fired it no longer shows on the grid or day view. Rebooting re-imports everything.
  • Edits apply at boot only. Replace ALARMS.ICS, eject the drive properly, then power-cycle the badge.