kidd / org-gcal.el

Org sync with Google Calendar. (active maintained project as of 2019-11-06)
435 stars 47 forks source link

Ability to post multiple entries #194

Open bitozoid opened 2 years ago

bitozoid commented 2 years ago

This is an idea for a feature.

For recurring events, sometimes I prefer to create individual headers rather than a common repeating header.

This can be easy achieved using org-clone-subtree-with-time-shift. See https://karl-voit.at/2017/01/15/org-clone-subtree-with-time-shift/

However, then I need to post every header one by one with org-gcal-post-at-point. I wonder whether it could be possible to post every header under a selection.

telotortium commented 2 years ago

Right now, this package doesn't have the ability to create recurring events or modify the repeat interval of a recurring event, largely because Org-mode timestamp repeats are less general than Google Calendar repeats.

What exactly is your use case? Do you want to create new events under a tree? If so, you can write a short loop in Emacs Lisp that will accomplish this (and I might consider a command to wrap this). If you're trying to sync a recurring event that you've already created on Google Calendar, org-gcal-sync will obtain those events, and then org-gcal-sync-buffer can be used on a buffer narrowed to the Org subtree (using org-narrow-to-subtree) to sync just the events in the subtree.

bitozoid commented 2 years ago

I have a list of events like this (e.g. as created with org-clone-subtree-with-time-shift):

* Learning Piano
** Piano lessons
<2022-04-20 17:00-18:00>
** Piano lessons
<2022-04-21 17:00-18:00>
** Piano lessons
<2022-04-22 17:00-18:00>
** Piano lessons
<2022-04-24 17:00-18:00>
** Piano lessons
<2022-04-25 17:00-18:00>
** Piano lessons
<2022-04-26 17:00-18:00>
** Piano lessons
<2022-04-27 17:00-18:00>
** Piano lessons
<2022-04-28 17:00-18:00>
** Piano lessons
<2022-04-29 17:00-18:00>

So I want to post them all at once. I guess a loop in Emacs Lisp loop would work. I just don't know enough lisp and it may be a good idea for this package.

Edited: I fixed the timestamps to event timestamps.