emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* org-caldav: Sync Org with external calendars through CalDAV (Owncloud, Google, ...)
@ 2012-07-14 19:12 David Engster
  2012-07-20 16:36 ` David Engster
                   ` (4 more replies)
  0 siblings, 5 replies; 29+ messages in thread
From: David Engster @ 2012-07-14 19:12 UTC (permalink / raw)
  To: emacs-orgmode

I have written a package 'org-caldav' which can sync items to a remote
calendar server using the CalDAV protocol. The main purpose of this
package is to make better use of Org in combination with Android-based
mobile devices (yes, there is mobileOrg, but I have several problems
with it; that's a topic for another day, though).

I think org-caldav is now "good enough" to allow some testing by
adventurous people. I put the code up on github here

https://github.com/dengste/org-caldav

I've tested the code with my Owncloud server and also with Google
Calendar. Please see the Readme on how to set things up. Most
importantly, please use a new, dedicated calendar for testing this
package; do *not* use your precious main calendar. Also, while
org-caldav should only access the calendar you provide through
`org-caldav-calendar-id', you should have a backup of all your calendar
data, just in case.

The initial sync can take some time, depending on the number of
events. Especially the CalDAV interface to Google can be quite slow at
times. If the initial sync aborts for any reason, just run
`org-caldav-sync' again. Note that after the initial sync, only new
events will be transferred, so things should become much snappier.

A few further notes regarding the code:

I am relying mainly on three other packages to do the real heavy
lifting, which is also why org-caldav is actually pretty small:

- url-dav.el for talking to WebDAV servers (CalDAV is essentially WebDAV
  with a few extensions). Unfortunately, the current version of url-dav
  that is shipping with Emacs is broken for practically all CalDAV
  servers (see bug #11916), which is why I provide a patched version of
  url-dav.el in the above repository. You have to make sure that this
  patched version is loaded instead of the one in Emacs proper. I am
  hoping that this will be fixed in Emacs 24.2.

- org-icalendar.el is doing all the conversion from org to icalendar
  events which are needed for CalDAV. This has the advantage that you
  can use all the variables from that package to control how things
  should be exported. The only exception is the actual org files being
  searched for time stamps, which is determined through
  `org-caldav-files'.

- icalendar.el for parsing events from CalDAV. I took some code from
  that package to generate org items from the calendar events.

The syncing between org and the external calendar is not yet really
finished. I would like to have proper two-way-syncing so that you can
freely change events on any side, but this is rather difficult to do and
I'd first like to get some feedback on the current code. Also, I have
a hunch that some Org experts around here might have some good ideas on
how to properly implement this.

Here's what the code can currently do:

- All items in `org-caldav-files' with active time stamps are synced to
  the calendar.

- If you change an item in one of those files in orgmode, this change
  will also get synced to the external calendar (to be exact: this will
  generate a new event and the old one will be deleted).

- If you create a *new* event in the calendar through Android or any
  other client (like browser), this event will land in the
  `org-caldav-inbox' file as an org item.

However:

- If you *change* an item directly on the CalDAV server, this will *not*
  get synced back to Org. What happens exactly depends on the server
  (whether it renames the event or not). Just try it out. The item might
  even get deleted after the next sync - you have been warned.

- Likewise, if you *change* and item in `org-caldav-inbox', this will
  not get synced back to the calendar.

OK, this has gotten way too long already. Please try it out and let me
know how it goes.

Cheers,
David

^ permalink raw reply	[flat|nested] 29+ messages in thread
* Re: org-caldav: Sync Org with external calendars through CalDAV (Owncloud, Google, ...)
@ 2012-07-26 16:43 Robert Eckl
  2012-07-26 19:03 ` David Engster
  0 siblings, 1 reply; 29+ messages in thread
From: Robert Eckl @ 2012-07-26 16:43 UTC (permalink / raw)
  To: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 1497 bytes --]

First, thanks for the great work, it’s very interesting, I found this
yesterday.

 

I’ve done first steps with org-caldav:

 

Acutally, an appointment must not have any text outside the Properties

 

--------

* TerminTest                                                      :Tag:

:PROPERTIES:

:LOCATION: Büro

:END:

<2012-07-28 Sat 20:00-21:00>

--------

 

Will be synced while

 

--------

* TerminTest                                                      :Tag:

:PROPERTIES:

:LOCATION: Büro

:END:

<2012-07-28 Sat 20:00-21:00>

Somewhat

--------

Not. 

 

Combined with MobileOrg this behavior is bothering. 

 

If an appointment is scheduled, it will not be synced if there is no active
timestamp without the keyword SCHEDULED:

By changing the state  Scheduled / Not Scheduled of an appointment it is
possible, that the appointment not will be synced even though the rules
mentioned above are fulfilled.

Example:

* TODO Probe Irgendwo                                            :atag:

  <2012-07-26 Thu>

  :LOGBOOK:

  - State "CANCELLED"  from "TODO"       [2012-07-16 Mo 23:24] \\

    irgendwas

  - State "DONE"       from "TODO"       [2012-07-11 Mi 00:09]

  - State "DONE"       from "TODO"       [2012-07-03 Di 21:21]

  :END:

  :PROPERTIES:

  :ID:       automatic-ID

  :LAST_REPEAT: [2012-07-16 Mo 23:24]

  :LOCATION: Veranstaltungsort

  :END:

 

Cu,

Robert


[-- Attachment #2: Type: text/html, Size: 4554 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2012-12-05 12:15 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-07-14 19:12 org-caldav: Sync Org with external calendars through CalDAV (Owncloud, Google, ...) David Engster
2012-07-20 16:36 ` David Engster
2012-07-20 16:55   ` Mehul Sanghvi
2012-07-20 18:00   ` Jason F. McBrayer
     [not found]   ` <deng@randomsample.de>
2012-07-20 18:29     ` Nick Dokos
2012-07-23 19:25   ` Suvayu Ali
2012-07-26 17:10   ` Aurélien Aptel
2012-07-25  8:18 ` Torsten Wagner
2012-07-25 19:02   ` David Engster
2012-07-27 14:49 ` Torsten Wagner
2012-07-28 12:05   ` David Engster
2012-08-03  7:46 ` Bastien
2012-08-03 12:48   ` David Engster
2012-08-04  8:27     ` Bastien
2012-08-05 18:41       ` David Engster
2012-12-03 12:35         ` Stephen Eglen
2012-12-03 19:50           ` David Engster
2012-12-04 10:29             ` Suvayu Ali
2012-12-04 10:45               ` Stephen Eglen
2012-12-04 11:19                 ` Stephen Eglen
2012-12-04 19:19                   ` David Engster
2012-12-05 11:40                     ` Stephen Eglen
2012-12-05 12:15                       ` Stephen Eglen
2012-12-04 19:27               ` David Engster
2012-09-11 14:17 ` Philipp Haselwarter
  -- strict thread matches above, loose matches on Subject: below --
2012-07-26 16:43 Robert Eckl
2012-07-26 19:03 ` David Engster
2012-07-26 20:55   ` David Engster
2012-07-30  2:01   ` Luis Anaya

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).