Argh, wish I could delete this post. I was using a defective macro definition (I pasted the wrong code in my original post!):
(defun get-ts+7 ()
(interactive)
(let ((base-date (save-excursion
(re-search-backward
(org-re-timestamp 'all))
(match-string 0)))
(result nil))
(with-temp-buffer
(org-mode)
(insert base-date )
(backward-char)
(org-timestamp-change 7 'day)
(end-of-buffer)
(insert " ")
(end-of-buffer)
(setq result (save-excursion
(re-search-backward
(org-re-timestamp 'all))
(match-string 0))))
result))
--
something about that buffer switching gets org confused -- maybe the value of hte {{{n}}} gets reset when the temp buffer is initialized? -- anyway, this much simpler defun solves the problem:
(defun get-ts+7 ()
(interactive)
(let ((base-date (save-excursion
(re-search-backward
(org-re-timestamp 'all))
(match-string 0)))
(result nil))
(format-time-string "<%Y-%m-%d %a>"
(time-add
(date-to-time base-date) (days-to-time (1+ 7)))) ))