summaryrefslogtreecommitdiff
path: root/gnus-icalendar-request.el
diff options
context:
space:
mode:
authorfpi2024-09-22 16:53:34 +0200
committerfpi2024-09-22 16:53:34 +0200
commita961b9efb6a8178cd537608157904e703ab457d7 (patch)
tree391e8eb5216e3191af03c1be9e4d762b3deb6df0 /gnus-icalendar-request.el
parentDocument problems with current ical-event class (diff)
Mostly adhere to gnus-ical-event-request data typesHEADmaster
participants entries should be a list of stringes. Currently I parse them all participants in one string and separate it later
Diffstat (limited to '')
-rw-r--r--gnus-icalendar-request.el66
1 files changed, 35 insertions, 31 deletions
diff --git a/gnus-icalendar-request.el b/gnus-icalendar-request.el
index 498e063..8326eca 100644
--- a/gnus-icalendar-request.el
+++ b/gnus-icalendar-request.el
@@ -37,15 +37,36 @@
(string-replace "\n" "\\n" description))))
(dtstart (format-time-string "DTSTART:%Y%m%dT%H%M%SZ" start-time t)) ;; in UTC -> suffix "Z"
(dtend (format-time-string "DTEND:%Y%m%dT%H%M%SZ" end-time t))
- (attendee (mapconcat
- (lambda (p)
- (format "ATTENDEE%s"
- (gnus-icalendar--format-ical-property-parameters p)))
- (append req-participants opt-participants)
- "\n"))
+ (attendee
+ (mapconcat
+ (lambda (p)
+ (format
+ "ATTENDEE%s"
+ (gnus-icalendar--format-ical-property-parameters p)))
+ (append
+ (mapcar (lambda (entry)
+ (gnus-icalendar--parse-message-email-to-alist
+ entry
+ '((PARTSTAT . "NEEDS-ACTION")
+ (ROLE . "REQ-PARTICIPANT")
+ (RSVP . "TRUE"))))
+ (mail-header-parse-addresses (mapconcat #'identity req-participants ", ")))
+ (mapcar (lambda (entry)
+ (gnus-icalendar--parse-message-email-to-alist
+ entry
+ '((PARTSTAT . "NEEDS-ACTION")
+ (ROLE . "OPT-PARTICIPANT")
+ (RSVP . "TRUE"))))
+ (mail-header-parse-addresses (mapconcat #'identity opt-participants ", "))))
+ "\n"))
(location (when (and (stringp location) (not (string-empty-p location)))
(format "LOCATION:%s" location)))
- (organizer (format "ORGANIZER%s" organizer))
+ (organizer (format "ORGANIZER%s"
+ (gnus-icalendar--format-ical-property-parameters
+ (gnus-icalendar--parse-message-email-to-alist
+ (car (mail-header-parse-addresses
+ organizer))
+ ))))
(uid (format "UID:%s" uid))
(sequence "SEQUENCE:0") ;; TODO: Consider follow-up event modifications.
;; TODO: handle recur
@@ -148,36 +169,19 @@ or will be asked for if nil. Same for location."
(summary (save-restriction
(message-narrow-to-headers)
(message-fetch-field "Subject")))
- (organizer (gnus-icalendar--format-ical-property-parameters
- (gnus-icalendar--parse-message-email-to-alist
- (car (mail-header-parse-addresses
- (save-restriction
- (message-narrow-to-headers)
- (message-fetch-field "From")))))))
+ (organizer (save-restriction
+ (message-narrow-to-headers)
+ (message-fetch-field "From")))
(rsvp nil) ;; TODO
(participation-type 'non-participant)
(req-participants
- (mapcar (lambda (entry)
- (gnus-icalendar--parse-message-email-to-alist
- entry
- '((PARTSTAT . "NEEDS-ACTION")
- (ROLE . "REQ-PARTICIPANT")
- (RSVP . "TRUE"))))
- (mail-header-parse-addresses
- (save-restriction
- (message-narrow-to-headers)
- (message-fetch-field "To")))))
+ (save-restriction
+ (message-narrow-to-headers)
+ (message-fetch-field "To")))
(opt-participants
- (mapcar (lambda (entry)
- (gnus-icalendar--parse-message-email-to-alist
- entry
- '((PARTSTAT . "NEEDS-ACTION")
- (ROLE . "OPT-PARTICIPANT")
- (RSVP . "TRUE"))))
- (mail-header-parse-addresses
(save-restriction
(message-narrow-to-headers)
- (message-fetch-field "Cc")))))
+ (message-fetch-field "Cc")))
(uid (icalendar--create-uid (format "%s%s%s%s"
summary
description