AW <alexander.will...@t-online.de> writes:

> I'd like to have an external calendar file displayed in org and was very glad 
> to find a hint in the manual. The name of the external calendar file is 
> "office.ics".
>
> So I wrote into my .emacs-file:
>
> (icalendar-import-file "office.ics" "Diary")
> (setq org-agenda-include-diary t)
>
> As you can imagine, that caused an import of "office.ics" _every_ time I 
> started 
> Emacs. So I ended with a huge calendar file full of (no, not stars)[1] 
> repetitions of "office.ics".
>

You can import the ics file into some temporary diary and
delete the temporary diary upon exit from emacs:

--8<---------------cut here---------------start------------->8---
(setq tmp-diary (make-temp-file "diary"))
(icalendar-import-file "/path/to/office.ics" tmp-diary)

;; make it the default...
(setq diary-file tmp-diary)
;; so that org-agenda can find it
(setq org-agenda-include-diary t)

;; delete the tmp diary on exit
(add-to-list 'kill-emacs-hook 
             (function
              (lambda ()
                (delete-file tmp-diary))))
--8<---------------cut here---------------end--------------->8---

That assumes that you don't have any other diary files
that you are interested in including. If you do, the basic
idea will still work but will require more fiddling.

Untested.
-- 
Nick


Reply via email to