From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Kitchin Subject: Re: export to ics a specific buffer every X hours Date: Tue, 30 Aug 2016 09:50:04 -0400 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=089e011764950ea540053b4a42cd Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:38324) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bejQX-0007B9-Qb for emacs-orgmode@gnu.org; Tue, 30 Aug 2016 09:50:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bejQU-0002pi-U4 for emacs-orgmode@gnu.org; Tue, 30 Aug 2016 09:50:08 -0400 Received: from mail-wm0-x22e.google.com ([2a00:1450:400c:c09::22e]:36569) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bejQU-0002o5-JS for emacs-orgmode@gnu.org; Tue, 30 Aug 2016 09:50:06 -0400 Received: by mail-wm0-x22e.google.com with SMTP id q128so121976029wma.1 for ; Tue, 30 Aug 2016 06:50:06 -0700 (PDT) In-Reply-To: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: Xebar Saram Cc: org mode , Philip Hudson --089e011764950ea540053b4a42cd Content-Type: text/plain; charset=UTF-8 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 @johnkitchin http://kitchingroup.cheme.cmu.edu On Tue, Aug 30, 2016 at 9:39 AM, Xebar Saram wrote: > anyone? kinda stuck here :) > > thx! > > > z > > On Thu, Aug 25, 2016 at 10:32 AM, Xebar Saram 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 >> 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 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 >>> > wrote: >>> >> >>> >> On 26 June 2016 at 16:38, Xebar Saram 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 >>> >> >> > --089e011764950ea540053b4a42cd Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
I can't tell exactly what you have in mind. Can't = you just add (find-file "meetings.org<= /a>") to the function?

or wrap the whole thing like= this:


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


John

-----------------------------------
Professor= John Kitchin=C2=A0
Doherty Hall A207F
Department of Chemical Enginee= ring
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803<= /div>

On Tue, Aug 30, 2016 at 9:39 AM, Xebar Saram= <zeltakc@gmail.com> wrote:
anyone? kinda stuck here :)

thx!


z

On = Thu, Aug 25, 2016 at 10:32 AM, Xebar Saram <zeltakc@gmail.com> wrote:
Hi again all
so i have a related question so ill continue in this thre= ad. i have been using this command succesfully in the last few weeks
<= div>
(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 open= ing it first?

thx

Z
=

O= n Wed, Jul 13, 2016 at 6:27 PM, Philip Hudson <phil.hudson@iname.com> wrote:
You have _two_ conce= rns 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 <zeltakc@gmail.com> wrote:
> Thx
>
> i do have this now
>
>=C2=A0 =C2=A0(defun z/save-meeting-to-ics ()
>=C2=A0 =C2=A0 =C2=A0"If the current file is in '~/.dotfiles= 9;, the code blocks are tangled"
>=C2=A0 =C2=A0 =C2=A0(when (equal (buffer-file-name)
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (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 s= ave
meetin= gs.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'.

>=C2=A0 (rename-file (org-icalendar-export-to-ics)
> "/home/zeltak/org/files/export/kcal.ics")
>=C2=A0 =C2=A0 =C2=A0 =C2=A0(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 e= very 600
> second
> ;;=C2=A0 (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
> me= eting.org file

For this, you need to add `z/save-meeting-to-ics' to the Emacs g= lobal
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 <phil.hudson@iname.com>
> wrote:
>>
>> On 26 June 2016 at 16:38, Xebar Saram <zeltakc@gmail.com> wrote:
>> > Hi all
>> >
>> > so i have pathetic coding skill but managed somehow to come u= p with this
>> >
>> >=C2=A0 (defun z/save-meeting-to-ics ()
>> >=C2=A0 =C2=A0 =C2=A0"If the current file is in '~/.do= tfiles', the code blocks are
>> > tangled"
>> >=C2=A0 =C2=A0 =C2=A0(when (equal (buffer-file-name)
>> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= (expand-file-name
>> > "/home/zeltak/org/files/agenda/meetings.org")) >> >=C2=A0 =C2=A0 =C2=A0 =C2=A0(org-icalendar-export-to-ics)
>> >=C2=A0 =C2=A0 =C2=A0 =C2=A0(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:
>>
>>=C2=A0 =C2=A0 =C2=A0(org-icalendar-export-to-ics)
>>
>> to something like this:
>>
>>=C2=A0 =C2=A0 =C2=A0(rename-file (org-icalendar-export-to-ics) your= -preferred-pathname)
>>
>> For 2), evaluate this:
>>
>>=C2=A0 =C2=A0 =C2=A0(info "(elisp) Timers")
>>
>> --
>> Phil Hudson=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0http://hudson-it.ddns.net
>> @UWascalWabbit=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0PGP/GnuPG ID: 0x887DCA63
>
>



--
Phil Hudson=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0http://hudson-it.ddns.net
@UWascalWabbit=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0PGP/GnuPG ID: 0x887DCA63



--089e011764950ea540053b4a42cd--