From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Richard Lawrence Newsgroups: gmane.emacs.devel Subject: Improving Emacs' iCalendar support Date: Fri, 18 Oct 2024 11:01:10 +0200 Message-ID: <87ed4dss2x.fsf@ohm.mail-host-address-is-not-set> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="1271"; mail-complaints-to="usenet@ciao.gmane.io" To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Oct 18 11:02:15 2024 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1t1isA-000092-2L for ged-emacs-devel@m.gmane-mx.org; Fri, 18 Oct 2024 11:02:15 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t1irL-0002H4-Ql; Fri, 18 Oct 2024 05:01:23 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t1irH-0002Gg-Cg for emacs-devel@gnu.org; Fri, 18 Oct 2024 05:01:19 -0400 Original-Received: from fhigh-b6-smtp.messagingengine.com ([202.12.124.157]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t1irF-00055K-Ee for emacs-devel@gnu.org; Fri, 18 Oct 2024 05:01:19 -0400 Original-Received: from phl-compute-01.internal (phl-compute-01.phl.internal [10.202.2.41]) by mailfhigh.stl.internal (Postfix) with ESMTP id C62B025400A1 for ; Fri, 18 Oct 2024 05:01:13 -0400 (EDT) Original-Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-01.internal (MEProxy); Fri, 18 Oct 2024 05:01:13 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= recursewithless.net; h=cc:content-type:content-type:date:date :from:from:in-reply-to:message-id:mime-version:reply-to:subject :subject:to:to; s=fm1; t=1729242073; x=1729328473; bh=7e3ISV+fK0 uEPmAetuEwe4+y17gExjTOBrHJqf3q29w=; b=I9G8TpLmCiYSiSgOmqkv/0ogWN WiTEtn9tOJnf+ktPJdm1F0NLuH5dAiAeF0zsip8UWtKRnr4pL5CsBjiWUqcm2iKp kNLTE5D4x71sjgzItezAWl2N6M/xAKtXOy1vDfcLTb1oI5KVgE7rNs28VRJ3fXID N+XNLff0v0xzrK2+JJ1/QnyYZNIpDwTdd9RcOdl8Xpod4XPJTAJfYiOCSVagR5I6 NapjWzBbbd+YtLbqfT4sVmulhaKla6sqCh3SPVkSzAyqPLO8iYjf2Z94Z6vecyjw K+jtnd5MYpDeDY5FwAtJqydQq+HP1szXn5ClqX7k1NAuP9n/Arzek3Uy6SAQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:message-id :mime-version:reply-to:subject:subject:to:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t= 1729242073; x=1729328473; bh=7e3ISV+fK0uEPmAetuEwe4+y17gExjTOBrH Jqf3q29w=; b=bEYq5vMYLk/I/eOhgtF7+emA5B3bfcLaLQ/2rXs3bzlKUDK68qg DFivgiT7aW0rngir8lK2N6kVv9AF1Rl12GkQTDiO9SKOV9QbX6H2PUo2ysXGoana LA0mhG6BQNG0W+MBDEnQ+5Cz3z1cF59kdekA/9E42xRK50ZVemhXQmQygZSv3c5Y Ef0RxVLOfMYXkJ63Xr/Wztb7//AtsPRtt2Z+Qqfshdadia7kByBNCCJaXQcRSQq+ vIfAoJHnr8F0QzCfqeuD1IN7aAE1nWNM6CXKXXvWAuCswQTdeG0g7WlWgFv3pCul U2yMvqqT7WANN6sKPzEf/QT/yUhi6h2dZTQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdehfedgtdelucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucenucfjughrpefhvffuff fkgggtsehttdertddttddtnecuhfhrohhmpeftihgthhgrrhguucfnrgifrhgvnhgtvgcu oehrfihlsehrvggtuhhrshgvfihithhhlhgvshhsrdhnvghtqeenucggtffrrghtthgvrh hnpeekkeejteevjefgfeeulefgueelhefgvdfhkeevgffgvddtjefhlefftdfggeekieen ucffohhmrghinheprhgvtghurhhsvgifihhthhhlvghsshdrnhgvthdpihgtrghlvghnug grrhdqphgrrhhsvghrqdgrnhguqdhmohguvgdrohhrghenucevlhhushhtvghrufhiiigv pedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehrfihlsehrvggtuhhrshgvfihithhhlh gvshhsrdhnvghtpdhnsggprhgtphhtthhopedupdhmohguvgepshhmthhpohhuthdprhgt phhtthhopegvmhgrtghsqdguvghvvghlsehgnhhurdhorhhg X-ME-Proxy: Feedback-ID: if7394488:Fastmail Original-Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Fri, 18 Oct 2024 05:01:12 -0400 (EDT) Received-SPF: pass client-ip=202.12.124.157; envelope-from=rwl@recursewithless.net; helo=fhigh-b6-smtp.messagingengine.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:324649 Archived-At: Dear emacs-devel, Hello! I've been a happy Emacs user for almost twenty years now(!), but this is my first time subscribing to this list, so please help me follow the local conventions. I would like to start a discussion about improving Emacs' iCalendar support, beyond what is already available in icalendar.el. I personally would like to see Emacs gain a more full-fledged RFC5545 implementation that is primarily designed as a library for other applications to use. This is an itch that's been bugging me for a while, and so for the past couple of weeks I've been working on scratching it, and I now have a reasonable chunk of work to share: I've drafted a new implementation of the iCalendar grammar, and a major mode which uses this grammar to provide syntax highlighting. I wrote up what I've done and why here: https://recursewithless.net/emacs/icalendar-parser-and-mode.org That's a literate Org mode file containing the code and my commentary. If you just want to read the code itself, see: https://recursewithless.net/emacs/icalendar/icalendar-parser.el https://recursewithless.net/emacs/icalendar/icalendar-mode.el I could release this work as a package, but as I describe in more detail in the write-up, I think there's a good case that an improved iCalendar library belongs in Emacs' core. There are currently at least *three* partial iCalendar implementations in Emacs (icalendar.el, gnus-icalendar.el, and ox-icalendar.el), which are each focused on a particular major mode (diary, Gnus, and Org). I think it would be good to consolidate this work in one place and generalize it so that all three of these applications, as well as third party packages, can benefit. So, some questions for the list: 1) Is there interest in getting this code, and/or a future version of such a library, into Emacs? And if so, 2) Would anyone here be willing to mentor me/collaborate with me on it? 3) What should the library's API look like? What would be most useful? Many thanks for your thoughts and feedback! Best, Richard