emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Nick Dokos <nicholas.dokos@hp.com>
To: news1142@Karl-Voit.at
Cc: nicholas.dokos@hp.com, emacs-orgmode@gnu.org
Subject: Re: [bug] org-agenda-write does not handle date stamps without day of week
Date: Fri, 16 Mar 2012 13:52:11 -0400	[thread overview]
Message-ID: <5033.1331920331@alphaville> (raw)
In-Reply-To: Message from Karl Voit <devnull@Karl-Voit.at> of "Fri, 16 Mar 2012 17:14:06 BST." <2012-03-16T17-12-15@devnull.Karl-Voit.at>

Karl Voit <devnull@Karl-Voit.at> wrote:

> Since no followup reaction occured: is this a but that requires much
> work? Or did my email just got lost in overfull inboxes? :-)
> 

For me, it was a "no time to work on org - stash it"...

> * Karl Voit <devnull@Karl-Voit.at> wrote:
> >
> > I verified the behavior below with the most current git version of
> > Org-mode.
> >
> > Whenever I call my function to export the current agenda, it
> > converts that do have a beginning and end time to events
> > that span the whole day (without begin and end times at all).
> >
> > ,----[ my LISP command to export ]
> >| (defun vk-export-agenda()
> >|   "Exports monthly Org-mode agenda to agenda.ics file"
> >|   (interactive)
> >|   (org-agenda-list nil nil 60)
> >|   (org-agenda-write "~/org/agenda.ics")
> >| )
> > `----
> >
> > I traced down the problem to this:
> >
> > * <2012-03-05 Mon 08:00-09:00> works fine
> > * <2012-03-05 Mon 8:00-9:00> works fine too
> >
> > * <2012-03-05 08:00-09:00> Wrong: ends up as full day event
> >
> > Unfortunately, I do have certain mechanisms that generate parts of
> > my Org-mode files where I skip the day of the week. Org-mode in
> > general is able to handle date stamps without day of week pretty
> > well. But whenever I export it to ics (in order to send it to
> > Google), I end up with a messed up online agenda.
> >
> > I guess that org-agenda-write is the one to blame. It would be very
> > handy to me if somebody could fix that issue.

org-agenda-write calls org-export-icalendar which calls org-print-icalendar-entries
which loops over all the entries and parses them, decomposing them into timestamps.
Each timestamp is then passed to org-parse-time-string. It's this one that cannot
handle non-standard formats: it uses a regexp and assumes that all the matched parts
are going to be in fixed places:

,----
| (defun org-parse-time-string (s &optional nodefault)
|   "Parse the standard Org-mode time string.
| This should be a lot faster than the normal `parse-time-string'.
| If time is not given, defaults to 0:00.  However, with optional NODEFAULT,
| hour and minute fields will be nil if not given."
|   (if (string-match org-ts-regexp0 s)
|       (list 0
| 	    (if (or (match-beginning 8) (not nodefault))
| 		(string-to-number (or (match-string 8 s) "0")))
| 	    (if (or (match-beginning 7) (not nodefault))
| 		(string-to-number (or (match-string 7 s) "0")))
| 	    (string-to-number (match-string 4 s))
| 	    (string-to-number (match-string 3 s))
| 	    (string-to-number (match-string 2 s))
| 	    nil nil nil)
|     (error "Not a standard Org-mode time string: %s" s)))
`----

You can evaluate the following in your *scratch* buffer to verify:

--8<---------------cut here---------------start------------->8---
(org-parse-time-string "<2012-03-05 Mon 08:00>")
(0 0 8 5 3 2012 nil nil nil)

(org-parse-time-string "<2012-03-05 08:00>")
(0 0 0 5 3 2012 nil nil nil)
--8<---------------cut here---------------end--------------->8---

As you can see, the time has disappeared.

As to how to fix it, there are several possibilities:

1. fix your scripts that produce time stamps to include day-of-week.
2. change the callers of org-parse-time-string to make sure that DOW is included.
3. change just one caller: org-print-icalendar-entries to make sure that DOW is included.
4. change org-parse-time-string to handle a missing DOW.

There are roughly three dozen callers, so 2. is possible but a pain.
3. is simple but ugly as sin, 4. is the best way to handle it within org.

I vote for 1. where *you* have to do all the work ;-)

Nick

  parent reply	other threads:[~2012-03-16 17:52 UTC|newest]

Thread overview: 157+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-07 15:55 Referencing elemts of a table Karl Voit
2011-06-07 17:22 ` Michael Brand
2011-06-08  0:05   ` kinouchou
2011-06-08  3:54     ` Jambunathan K
2011-06-08  4:25     ` Nick Dokos
2011-06-08 12:49   ` Karl Voit
2011-06-08 13:47     ` Michael Brand
     [not found]     ` <devnull@Karl-Voit.at>
2011-06-08 13:49       ` Nick Dokos
2011-06-24 14:32       ` org-time-stamp loses repeater interval Karl Voit
2011-06-24 16:08         ` Bernt Hansen
2011-06-24 16:01       ` Nick Dokos
2011-06-24 17:40         ` Michael Brand
2011-06-24 18:00           ` Nick Dokos
2011-06-26 11:30           ` Bug: " Karl Voit
2011-06-27 16:23             ` Bastien
2011-06-28 13:40               ` Karl Voit
2011-06-28 14:28                 ` Bastien
2011-06-28 15:04                   ` Nick Dokos
2011-06-28 15:13                   ` Karl Voit
2011-06-28 15:33                     ` Nick Dokos
2011-06-28 16:03                       ` Karl Voit
2011-06-28 15:48                     ` Bastien
2011-06-28 16:05                 ` Karl Voit
2011-06-28 17:27                   ` Bastien
2011-06-28 18:43                     ` Karl Voit
2011-06-28 23:02                       ` Bastien
2011-06-28 23:10                         ` Nick Dokos
2011-06-28 23:58                           ` Bastien
2011-06-29  1:44                             ` Nick Dokos
2011-06-29  7:28                               ` Sebastien Vauban
2011-06-29  9:30                                 ` Bastien
2011-06-29 14:34                                 ` Nick Dokos
2011-07-02 13:29                                   ` Bastien
2011-06-29 12:47                               ` Karl Voit
2011-07-02 13:26                                 ` Bastien
2011-07-02 13:26                               ` Bastien
2011-09-30 15:31       ` How to debug "Specified time is not representable" Nick Dokos
2011-10-18 17:26       ` Recurring events with exceptions Nick Dokos
2011-10-18 20:38         ` Karl Voit
2012-03-16 17:52       ` Nick Dokos [this message]
2012-03-16 18:53         ` [bug] org-agenda-write does not handle date stamps without day of week Karl Voit
2012-03-17  6:45       ` Nick Dokos
2012-03-19  9:12         ` Carsten Dominik
2012-03-20  5:54           ` Carsten Dominik
2012-03-20 12:26             ` Karl Voit
2012-03-20 13:47               ` Carsten Dominik
2012-04-10 17:38           ` Bastien
2012-04-10 17:44             ` Nick Dokos
2012-04-10 18:03               ` Bastien
2012-03-20 13:39       ` Nick Dokos
2012-03-21 16:32         ` Karl Voit
2012-03-21 16:57           ` Carsten Dominik
2012-03-26 16:10       ` Plotting (with gnuplot) using dates timestamps Nick Dokos
2012-08-13 22:27       ` table: referencing row of other table Nick Dokos
2012-08-13 22:44         ` Karl Voit
2012-08-19 12:32       ` What HW/SW issues influence org/Emacs performance? Nick Dokos
2012-08-19 13:04         ` Karl Voit
2012-08-20 17:23       ` Replacement for org-make-link Nick Dokos
2012-08-20 17:54         ` Bastien
2012-08-20 19:29           ` Karl Voit
2012-08-27 16:09       ` comma as decimal point: bug? Nick Dokos
2012-08-27 16:17         ` Karl Voit
2013-01-18 14:07       ` Wish: switch active time-stamps to inactive when CANCELED Nick Dokos
2013-01-18 21:24         ` Karl Voit
2013-01-18 21:59       ` Nick Dokos
2013-01-20 16:05         ` Karl Voit
2013-01-20 18:16           ` Viktor Rosenfeld
2013-01-21 10:18         ` Memnon Anon
2013-01-21 11:39           ` OT: Learning ELISP (was: Wish: switch active time-stamps to inactive when CANCELED) Karl Voit
2013-01-21 21:56             ` OT: Learning ELISP Jonathan Arkell
2013-01-23 14:40               ` Using Org/babel for Emacs config files (was: OT: Learning ELISP) Karl Voit
2013-01-23 15:52                 ` Using Org/babel for Emacs config files David Bjergaard
2013-01-23 22:06                 ` Using Org/babel for Emacs config files (was: OT: Learning ELISP) Darlan Cavalcante Moreira
2013-01-23 22:32                   ` Kyle Machulis
2013-01-24 13:27                     ` [OT] open url in emacs was: Re: Using Org/babel for Emacs config files Andreas Leha
2013-01-24 13:29                       ` Bastien
2013-01-24 14:13                         ` Andreas Leha
2013-01-24 15:19                           ` Bastien
2013-01-24 19:48                             ` Andreas Leha
2013-01-25  4:48                             ` Jambunathan K
2013-01-26  8:34                               ` Andreas Leha
2013-01-26 13:05                                 ` Jambunathan K
2013-01-28  9:41                                   ` Andreas Leha
2013-01-24 15:18                       ` Daimrod
2013-01-24  1:04                 ` Thorsten Jolitz
2013-01-24  1:33                   ` Thomas S. Dye
2013-01-24  8:42                     ` Thorsten Jolitz
2013-01-24 11:36                   ` full outline functionality in .el files: how? (was: Re: Using Org/babel for Emacs config files) Gregor Zattler
2013-01-24 12:48                     ` full outline functionality in .el files: how? Bastien
2013-01-24 13:40                       ` Thorsten Jolitz
2013-01-24 13:46                         ` Bastien
2013-01-24 14:17                           ` Thorsten Jolitz
2013-01-24 15:57                             ` Bastien
2013-01-24 13:36                     ` Thorsten Jolitz
2013-01-25 18:08                     ` Memnon Anon
  -- strict thread matches above, loose matches on Subject: below --
2011-09-30 14:32 How to debug "Specified time is not representable" Karl Voit
2011-09-30 14:52 ` Jambunathan K
2011-10-03 11:50   ` Karl Voit
2011-10-04  7:40     ` Jambunathan K
2011-10-04 11:42       ` Karl Voit
2011-10-04 12:13         ` Carsten Dominik
2011-10-04 11:41     ` Carsten Dominik
2011-10-04 11:47       ` Karl Voit
2011-10-18 16:52 Recurring events with exceptions Karl Voit
2011-10-18 17:04 ` Brian Wightman
2011-10-18 17:35   ` Karl Voit
2011-10-18 18:15   ` Skip Collins
2011-10-18 18:46     ` Tassilo Horn
2011-10-18 19:57     ` Eric S Fraga
2011-10-19  0:34       ` Skip Collins
2011-10-19 10:02         ` Eric S Fraga
2011-10-21 21:48           ` Skip Collins
2011-10-22  8:38             ` Sync with Outlook/Exchange (was: Recurring events with exceptions) Karl Voit
2011-10-24  7:13             ` Recurring events with exceptions Eric S Fraga
2012-03-05 14:44 [bug] org-agenda-write does not handle date stamps without day of week Karl Voit
2012-03-16 16:14 ` Karl Voit
2012-03-17 14:04 ` Simon Thum
2012-03-19  9:13   ` Carsten Dominik
2012-03-26 13:37 Plotting (with gnuplot) using dates timestamps Alan Schmitt
2012-03-26 14:00 ` Allen S. Rout
2012-03-26 14:06 ` Michael Brand
2012-03-26 14:07 ` Steven Buczkowski
     [not found]   ` <steven.buczkowski@gmail.com>
2012-03-26 14:37     ` Nick Dokos
2012-03-26 14:59       ` Alan Schmitt
2012-03-26 15:48         ` Karl Voit
2012-03-26 17:02           ` Alan Schmitt
2012-03-26 17:06             ` Karl Voit
2012-03-26 17:11               ` Ian Barton
2012-03-27  7:59                 ` Karl Voit
2012-03-30  1:09 ` Mueen Nawaz
2012-08-13 21:50 table: referencing row of other table Karl Voit
2012-08-19 10:56 What HW/SW issues influence org/Emacs performance? Karl Voit
2012-08-19 11:23 ` Achim Gratz
2012-08-19 16:45 ` Luis Anaya
2012-08-20 17:03 Replacement for org-make-link Karl Voit
2012-08-26 13:54 comma as decimal point: bug? Rainer Thiel
2012-08-26 20:57 ` Nicolas Goaziou
2012-08-26 21:05   ` Bastien
2012-08-26 21:08     ` Nicolas Goaziou
2012-08-27 16:19       ` Bastien
2012-08-27 15:44   ` Karl Voit
2012-08-26 20:59 ` Bastien
2012-08-27  9:08   ` Rainer Thiel
2012-08-27 12:30     ` AW
2013-01-18 10:34 Wish: switch active time-stamps to inactive when CANCELED Karl Voit
2013-01-18 11:04 ` Daimrod
2013-01-18 11:08   ` Karl Voit
2013-01-18 11:24     ` Daimrod
2013-01-18 21:22       ` Karl Voit
2013-01-18 21:59         ` Viktor Rosenfeld
2013-01-18 22:50           ` Daimrod
2013-01-20 15:39           ` Karl Voit
2013-01-23 13:18           ` Bastien
2013-01-23 17:21             ` Viktor Rosenfeld
2013-01-24 14:11               ` Bastien
2013-01-18 23:10 ` Samuel Wales
2013-01-26 11:06 ` Bastien

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5033.1331920331@alphaville \
    --to=nicholas.dokos@hp.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=news1142@Karl-Voit.at \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).