Daily Agenda

UUID: daily-agenda@alexmakessoftware
Last edited:
1 week ago 2025-05-23, 10:40
Last commit: [6a6dce43] daily-agenda@alexmakessoftware: Fix repeats skipping (#1492)

Displays today's events from your calendar

README

Close

Daily Agenda – Cinnamon Desklet

This is a lightweight Cinnamon desklet that displays today’s calendar events from an .ics feed, provided by most popular calendar systems, (e.g. Proton Calendar, Google Calendar, etc.). You just need the calendar invite url.

Requirements

Please note that this requires libsoup 3.0+. You should have it if your system is up to date, but on older systems, maybe not.

Requirements

Please note that this requires libsoup 3.0+. You should have it if your system is up to date, but on older systems, maybe not.

Features

  • Shows events for today only
  • Automatically hides past events as the day progresses
  • Auto-refreshes at a configurable interval
  • Supports both local .ics files and calendar share URLs
  • Customisable display
  • Support most of the common calendar features.

Configuration

Right-click the desklet and choose Configure to set:

  • Calendar source:
    • From URL: Paste a public .ics calendar URL (e.g. Proton Calendar sharing link)
    • From local file: Use a .ics file stored on your system
  • Refresh interval: How often to check for updates (in minutes)
  • Widget dimensions: Width and height in pixels
  • Font settings: Font family and size

Note: Only the calendar source you select will be used. The other one will be ignored.

If you're unsure what to use, URL or File: Most people will just want to use a URL. Copy the 'share my calendar' link on your calendar system and paste it in. Make sure the system is set to use 'url' source and you're done. Proton users, read: https://proton.me/support/share-calendar-via-link#how-to-share-a-calendar-with-anyone.

The 'File' option is just for if you're hosting entirely locally or downloading an ics file from somewhere.

Supported ICS features

  • Parsing DTSTART with optional time and timezone (UTC, local, or named zones via GLib).
  • Handling all-day events (dates without time).
  • Recurrence rules (RRULE) for DAILY, WEEKLY, MONTHLY, YEARLY frequencies.
  • Repeat count (COUNT) and expiration by UNTIL date.
  • Basic BYDAY filtering for weekly recurrences (matching weekdays).
  • Sorting events by time.
  • Unfolding folded ICS lines.

Not supported or limited

  • VTIMEZONE components and embedded timezone definitions.
  • Complex BYDAY patterns with ordinal prefixes (e.g., 1MO, -1SU).
  • Other RRULE parts like BYMONTHDAY, BYYEARDAY, BYWEEKNO, BYHOUR, BYMINUTE, BYSECOND.
  • EXDATE and EXRULE for exclusions.
  • RDATE for additional recurrence dates.
  • Recurrence exceptions or modifications.
  • Timezone transitions and daylight saving time changes beyond GLib timezones.
  • Support for multiple calendar components beyond VEVENT.
  • Parsing and handling VALARM or other calendar subcomponents.

☕ Support

If you find this desklet useful, do please consider buying me a coffee to say thanks, it would mean a lot to me: Buy me a coffee

Log In To Comment!

2 Comments

CaioTechLabs
CaioTechLabs-1 week ago
First, thank you very much for your contribution, the desklet is very useful! I would like to ask for some changes and new features. 1. Possibility to disable the appearance of "Last Checked" and "Next" 2. Remove the text "desklet" from the top because it has no use, it only gets in the way. 3. Being able to change transparency, background color and text color.
Michael Freeman
Michael Freeman-1 month ago
It would be cool if this could pull calendar sources from Online Accounts, so that no configuration is necessary for those who use OA.