emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] export to ics a specific buffer every X hours


From: John Kitchin
Subject: Re: [O] export to ics a specific buffer every X hours
Date: Tue, 30 Aug 2016 09:50:04 -0400

I can't tell exactly what you have in mind. Can't you just add (find-file "meetings.org") to the function?

or wrap the whole thing like this:


(defun z/export-to-ics ()
(interactive)
(with-current-buffer (find-file-noselect "meetings.org")
(rename-file (org-icalendar-export-to-ics)
"/home/zeltak/org/files/export/kcal.ics")
(message "exported to ics")))


John

-----------------------------------
Professor John Kitchin 
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803

On Tue, Aug 30, 2016 at 9:39 AM, Xebar Saram <address@hidden> wrote:
anyone? kinda stuck here :)

thx!


z

On Thu, Aug 25, 2016 at 10:32 AM, Xebar Saram <address@hidden> wrote:
Hi again all

so i have a related question so ill continue in this thread. i have been using this command succesfully in the last few weeks

(defun z/export-to-ics ()
(interactive)
(rename-file (org-icalendar-export-to-ics)
"/home/zeltak/org/files/export/kcal.ics")
(message "exported to ics"))


this forces me to first open the file i want (meetings.org) and then launch the above command. is there a way to auto make the above function to auto export meeting.org each time without opening it first?

thx

Z

On Wed, Jul 13, 2016 at 6:27 PM, Philip Hudson <address@hidden> wrote:
You have _two_ concerns here. First is what to do when you save
"meetings.org", second is what to do every half hour. Your code
handles both of them, essentially correctly, but in the wrong place.

On 13 July 2016 at 09:41, Xebar Saram <address@hidden> wrote:
> Thx
>
> i do have this now
>
>   (defun z/save-meeting-to-ics ()
>     "If the current file is in '~/.dotfiles', the code blocks are tangled"
>     (when (equal (buffer-file-name)
>                  (expand-file-name "/home/zeltak/org/files/agenda/meetings.org"))

This means the code will only execute if the current buffer is
"meetings.org" when it executes. That _is_ what you want when you save
meetings.org, but it _is not_ what you want when the timer executes.

Break out the body of the `when' form into its own function, and call
that function from the timer, instead of `z/save-meeting-to-ics'.

>  (rename-file (org-icalendar-export-to-ics)
> "/home/zeltak/org/files/export/kcal.ics")
>       (message "exported to ics")))
>
> ;;run every 30 minutes
>
> (run-with-timer 0 (* 30 60) 'z/save-meeting-to-ics)
> ;;(run-with-idle-timer 600 t #'org-agenda-redo) ;; to rebuild it every 600
> second
> ;;  (add-hook 'after-save-hook #'z/save-meeting-to-ics)
>
> yet i cant get the ics file to be created niether when i save the
> meeting.org file

For this, you need to add `z/save-meeting-to-ics' to the Emacs global
variable `after-save-hook' using function `add-hook'.

> nor every 600 seconds.

You mean 1800 seconds, I think.

> what am i missing here?
>
> thx
>
> Z
>
> On Sun, Jun 26, 2016 at 9:49 PM, Philip Hudson <address@hidden>
> wrote:
>>
>> On 26 June 2016 at 16:38, Xebar Saram <address@hidden> wrote:
>> > Hi all
>> >
>> > so i have pathetic coding skill but managed somehow to come up with this
>> >
>> >  (defun z/save-meeting-to-ics ()
>> >     "If the current file is in '~/.dotfiles', the code blocks are
>> > tangled"
>> >     (when (equal (buffer-file-name)
>> >                  (expand-file-name
>> > "/home/zeltak/org/files/agenda/meetings.org"))
>> >       (org-icalendar-export-to-ics)
>> >       (message "exported to ics")))
>> >
>> > this does save the org file "meetings.org" to an ICS file in the same
>> > folder
>> > as the file. but i want to do 2 additional things:
>> > 1)save the resulting ICS file to a different directory
>> > 2)run this function every X hours (lets say every 2 hours)
>> >
>> > any clue guys?
>> >
>> > thx!
>> >
>> > Z
>>
>> For 1), change:
>>
>>     (org-icalendar-export-to-ics)
>>
>> to something like this:
>>
>>     (rename-file (org-icalendar-export-to-ics) your-preferred-pathname)
>>
>> For 2), evaluate this:
>>
>>     (info "(elisp) Timers")
>>
>> --
>> Phil Hudson                   http://hudson-it.ddns.net
>> @UWascalWabbit                 PGP/GnuPG ID: 0x887DCA63
>
>



--
Phil Hudson                   http://hudson-it.ddns.net
@UWascalWabbit                 PGP/GnuPG ID: 0x887DCA63




reply via email to

[Prev in Thread] Current Thread [Next in Thread]