Hello,
>From Debian bug #668496[0]:
If I have an org-file containing a todo with a scheduled date range, like
this:
,----[ foo.org ]
*** TODO Weekend with the lads
SCHEDULED: <2012-05-04 Fr>--<2012-05-08 Di>
`----
and try to export it via org-export-icalendar-this-file, the resulting
foo.ics will look like this
,----[ foo.ics ]
BEGIN:VCALENDAR
VERSION:2.0
X-WR-CALNAME:foo
PRODID:-//Friedrich Delgado//Emacs with Org-mode//EN
X-WR-TIMEZONE:Europe/Berlin
X-WR-CALDESC:nil
CALSCALE:GREGORIAN
END:VCALENDAR
`----
(i.e.: contain no appointments at all)
I think the responsible section of code may reside in
/usr/share/emacs23/site-lisp/org-mode/org-icalendar.el, line 360:
,----
(if (looking-at re2)
(progn
(goto-char (match-end 0))
(setq ts2 (match-string 1)
inc (not (string-match "[0-9]\\{1,2\\}:[0-9][0-9]" ts2))))
(setq tmp (buffer-substring (max (point-min)
(- pos org-ds-keyword-length))
pos)
ts2 (if (string-match
"[0-9]\\{1,2\\}:[0-9][0-9]-\\([0-9]\\{1,2\\}:[0-9][0-9]\\)" ts)
(progn
(setq inc nil)
(replace-match "\\1" t nil ts))
ts)
deadlinep (string-match org-deadline-regexp tmp)
scheduledp (string-match org-scheduled-regexp tmp)
todo (org-get-todo-state)
;; donep (org-entry-is-done-p)
))
`----
From my basic understanding of the code-flow it looks like re2 ==
(concat "--?-?\\(" org-ts-regexp "\\)") is meant to match date-ranges,
but the code in the t branch of the if doesn't set deadlinep,
schedulep and todo, preventing all further processing of the entry.
But I may be wrong about the intentions of that function.
Cheers,
--Seb
[0] http://bugs.debian.org/668496