Browse Source

Inherit TIMEZONE and LOCATION properties in iCalendar export

* lisp/ox-icalendar.el (org-icalendar-entry): Both properties now
optionally inherit, depending on value of
`org-use-property-inheritance'.
* doc/org.texi: Mention change.
Eric Abrahamsen 6 months ago
parent
commit
7973ec1057
3 changed files with 10 additions and 3 deletions
  1. 1 1
      doc/org.texi
  2. 3 0
      etc/ORG-NEWS
  3. 6 2
      lisp/ox-icalendar.el

+ 1 - 1
doc/org.texi

@@ -14165,7 +14165,7 @@ and write it to @code{org-icalendar-combined-agenda-file} file name.
 @cindex property, TIMEZONE
 The iCalendar export back-end includes SUMMARY, DESCRIPTION, LOCATION and
 TIMEZONE properties from the Org entries when exporting.  To force the
-back-end to inherit the LOCATION property, configure the
+back-end to inherit the LOCATION and TIMEZONE properties, configure the
 @code{org-use-property-inheritance} variable.
 
 When Org entries do not have SUMMARY, DESCRIPTION and LOCATION properties,

+ 3 - 0
etc/ORG-NEWS

@@ -106,6 +106,9 @@ You can use =ob-scala.el= as packaged in scala-mode, available from the
 MELPA repository.
 
 ** New features
+*** iCalendar export uses inheritance for TIMEZONE and LOCATION properties
+Both these properties can be inherited during iCalendar export,
+depending on the value of ~org-use-property-inheritance~.
 *** iCalendar export respects a TIMEZONE property
 Set the TIMEZONE property on an entry to specify a time zone for that
 entry only during iCalendar export.  The property value should be

+ 6 - 2
lisp/ox-icalendar.el

@@ -537,7 +537,9 @@ inlinetask within the section."
 			   (org-export-data
 			    (org-element-property :title entry) info))))
 	     (loc (org-icalendar-cleanup-string
-		   (org-element-property :LOCATION entry)))
+		   (org-export-get-node-property
+		    :LOCATION entry
+		    (org-property-inherit-p "LOCATION"))))
 	     ;; Build description of the entry from associated section
 	     ;; (headline) or contents (inlinetask).
 	     (desc
@@ -553,7 +555,9 @@ inlinetask within the section."
 					  org-icalendar-include-body))))
 		      (org-icalendar-include-body (org-trim contents)))))))
 	     (cat (org-icalendar-get-categories entry info))
-	     (tz (org-element-property :TIMEZONE entry)))
+	     (tz (org-export-get-node-property
+		  :TIMEZONE entry
+		  (org-property-inherit-p "TIMEZONE"))))
 	 (concat
 	  ;; Events: Delegate to `org-icalendar--vevent' to generate
 	  ;; "VEVENT" component from scheduled, deadline, or any