Hi,
the iCalendar export seems wrong when the .org file contains events
with diary-float.
For example, my .org file contains:
* my appointment
%%(diary-float t 6 1) 1st Sat/month
The agenda M-x org-agenda-list shows this event correctly at the first
Saturday per month.
The .ics file created with M-x org-export-dispatch, c (Export to
iCalendar), f (Current file) contains the event
BEGIN:VEVENT
UID:DS1-ddf9e720-3c8a-4b2a-93d8-62dde9cdf5a8
DTSTART;VALUE=DATE:20250418
EXDATE;VALUE=DATE:20250418
RRULE:FREQ=MONTHLY;BYDAY=1SA
SUMMARY:1st Sat/month
END:VEVENT
DSTART and EXDATE are set to the current date. (i.e. the date when the
.ics file is created). I think DSTART should be set to the next first
Saturday of the month. EXDATE is not required, as there are no
exceptions specified.
RFC 5545 says in 3.8.5.3. Recurrence Rule
"The "DTSTART" property value SHOULD be synchronized with the
recurrence rule, if specified. The recurrence set generated with a
"DTSTART" property value not synchronized with the recurrence rule is
undefined."
Thanks
Timo
------------------------------------------------------------------------
Emacs : GNU Emacs 30.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version
3.24.38, cairo version 1.16.0)
of 2025-04-04, modified by Debian
Package: Org mode version 9.7.11 (release_9.7.11 @
/usr/share/emacs/30.1/lisp/org/)
current state:
==============
(setq
org-yank-image-file-name-function 'org-yank-image-autogen-filename
org-persist-before-write-hook '(org-element--cache-persist-before-write)
org-speed-command-hook '(org-speed-command-activate
org-babel-speed-command-activate)
org-persist-after-read-hook '(org-element--cache-persist-after-read)
org-confirm-elisp-link-function 'yes-or-no-p
org-mode-hook '(#[0 "\300\301\302\303\304$\207"
[add-hook change-major-mode-hook org-fold-show-all append
local] 5]
#[0 "\300\301\302\303\304$\207"
[add-hook change-major-mode-hook org-babel-show-result-all append
local] 5]
org-babel-result-hide-spec org-babel-hide-all-hashes)
org-confirm-shell-link-function 'yes-or-no-p
org-archive-hook '(org-attach-archive-delete-maybe)
org-metaup-hook '(org-babel-load-in-session-maybe)
org-occur-hook '(org-first-headline-recenter)
org-bibtex-headline-format-function 'org-bibtex-headline-format-default
org-link-parameters '(("attachment" :follow org-attach-follow
:complete org-attach-complete-link)
("id" :follow org-id-open :store org-id-store-link-maybe)
("eww" :follow org-eww-open :store org-eww-store-link)
("rmail" :follow org-rmail-open :store
org-rmail-store-link)
("mhe" :follow org-mhe-open :store org-mhe-store-link)
("irc" :follow org-irc-visit :store org-irc-store-link
:export org-irc-export)
("info" :follow org-info-open :export org-info-export :store
org-info-store-link
:insert-description org-info-description-as-command)
("gnus" :follow org-gnus-open :store org-gnus-store-link)
("docview" :follow org-docview-open :export
org-docview-export :store
org-docview-store-link)
("bibtex" :follow org-bibtex-open :store
org-bibtex-store-link)
("bbdb" :follow org-bbdb-open :export org-bbdb-export
:complete org-bbdb-complete-link
:store org-bbdb-store-link)
("w3m" :store org-w3m-store-link)
("doi" :follow org-link-doi-open :export org-link-doi-export)
("file+sys")
("file+emacs") ("shell" :follow org-link--open-shell)
("news" :follow
#[514 "\301\300\302Q\"\207" ["news" browse-url ":"] 6 "\n\n(fn
URL ARG)"])
("mailto" :follow
#[514 "\301\300\302Q\"\207" ["mailto" browse-url ":"] 6 "\n\n(fn
URL ARG)"])
("https" :follow
#[514 "\301\300\302Q\"\207" ["https" browse-url ":"] 6 "\n\n(fn
URL ARG)"])
("http" :follow
#[514 "\301\300\302Q\"\207" ["http" browse-url ":"] 6 "\n\n(fn
URL ARG)"])
("ftp" :follow
#[514 "\301\300\302Q\"\207" ["ftp" browse-url ":"] 6 "\n\n(fn URL
ARG)"])
("help" :follow org-link--open-help :store
org-link--store-help)
("file" :complete org-link-complete-file) ("elisp" :follow
org-link--open-elisp))
org-cycle-tab-first-hook '(org-babel-hide-result-toggle-maybe
org-babel-header-arg-expand)
org-agenda-before-write-hook '(org-agenda-add-entry-text)
org-metadown-hook '(org-babel-pop-to-session-maybe)
org-tab-first-hook '(org-babel-hide-result-toggle-maybe
org-babel-header-arg-expand)
org-sort-function 'string-collate-lessp
org--warnings nil
org-babel-pre-tangle-hook '(save-buffer)
org-export-before-parsing-hook '(org-attach-expand-links)
org-link-shell-confirm-function 'yes-or-no-p
org-fold-core-isearch-open-function 'org-fold--isearch-reveal
outline-isearch-open-invisible-function 'outline-isearch-open-invisible
org-src-mode-hook '(org-src-babel-configure-edit-buffer
org-src-mode-configure-edit-buffer)
org-agenda-span 'year
org-agenda-loop-over-headlines-in-active-region nil
org-agenda-files '("~/test.org")
org-link-elisp-confirm-function 'yes-or-no-p
org-cycle-hook '(org-cycle-hide-archived-subtrees
org-cycle-show-empty-lines
org-cycle-optimize-window-after-visibility-change
org-cycle-display-inline-images)
org-persist-before-read-hook '(org-element--cache-persist-before-read)
)