aboutsummaryrefslogtreecommitdiff

Setup notes for related org-mode packages.

README | Configuration | Architecture | Troubleshooting | Testing

org-gcal

org-gcal syncs Google Calendar events into org files, which is exactly what chime reads. They work well together with no special configuration as long as the org files that org-gcal writes to are in org-agenda-files.

Typical setup:

(use-package org-gcal
  :after org
  :config
  (setq org-gcal-client-id "your-client-id"
        org-gcal-client-secret "your-client-secret"
        org-gcal-fetch-file-alist
        '(("you@gmail.com" . "~/org/gcal.org"))))

;; Make sure chime can see those events
(add-to-list 'org-agenda-files "~/org/gcal.org")

After org-gcal syncs, run:

M-x chime-refresh-modeline

That refreshes the modeline without sending notifications. Otherwise chime will pick up synced events on the next polling cycle.

org-gcal commonly writes plain timestamps like:

* Team Sync
<2026-05-10 Sun 14:00>

Chime handles plain timestamps, SCHEDULED timestamps, and DEADLINE timestamps. If you filter by TODO keyword, remember that org-gcal events usually do not have TODO keywords unless you add them through your org-gcal templates.

Chime also ships chime-declined-events-predicate, which filters out org-gcal entries with :STATUS: declined. This predicate is included in the default chime-exclude-filters.

org-contacts

org-contacts birthdays are often exposed through diary sexps such as:

%%(org-contacts-anniversaries)

Chime does not support diary sexp timestamps as event timestamps. For birthday notifications, convert contacts to standard repeating org timestamps.

Convert Existing Contacts

Load the conversion script:

(require 'convert-org-contacts-birthdays
         (expand-file-name "convert-org-contacts-birthdays.el"
                           (file-name-directory (locate-library "chime"))))

Then run:

M-x chime-convert-contacts-in-place RET ~/org/contacts.org RET

The command creates a timestamped backup first, then adds yearly repeating timestamps below contacts with birthday properties. vCard export still works because the original :BIRTHDAY: property remains in place.

After conversion, comment out the diary sexp from your schedule file:

# %%(org-contacts-anniversaries)

Capture Template for New Contacts

The optional chime-org-contacts integration adds an org-capture template that prompts for contact details and inserts a yearly repeating timestamp when a birthday is provided.

(setq chime-org-contacts-file "~/org/contacts.org")

;; Optional: customize capture key. Default is "C".
(setq chime-org-contacts-capture-key "C")

(with-eval-after-load 'org-capture
  (require 'chime-org-contacts))

With use-package:

(use-package chime-org-contacts
  :after org-capture
  :init
  (setq chime-org-contacts-file "~/org/contacts.org"))

Set chime-org-contacts-file to nil to disable the integration.