4.5 Syncing with more than one calendar

This can be done by setting the variable org-caldav-calendars. It should be a list of plists (a ’plist’ is simply a list with alternating :key’s and values). Through these plists, you can override the global values of variables like org-caldav-calendar-id, and calling org-caldav-sync will go through these plists in order.

Example:

(setq org-caldav-calendars
  '((:calendar-id "work@whatever" :files ("~/org/work.org")
     :inbox "~/org/fromwork.org")
    (:calendar-id "stuff@mystuff"
     :files ("~/org/sports.org" "~/org/play.org")
     :skip-conditions (regexp "soccer")
     :inbox "~/org/fromstuff.org")) )

This means that you have two calendars with IDs "work@whatever" and "stuff@mystuff". Both will be accessed through the global value of org-caldav-url, since the key :url isn’t specified. The calendar "work@whatever" will be synced with the file ’work.org’ and inbox ’fromwork.org’, while "stuff@mystuff" with ’sports.org’ and ’play.org’, unless there’s the string ’soccer’ in the heading, and and inbox is ’fromstuff.org’. See the doc-string of org-caldav-calendars for more details on which keys you can use.