Sinkronisasi Emacs dengan Kalender dan Kontak Google?

10

Apakah ada cara untuk menggunakan Emacs untuk menyinkronkan dengan Kalender Google dan Kontak Google, idealnya menyimpan salinan lokal sehingga saya dapat mengaksesnya secara offline?

hpy
sumber
1
Apa yang saat ini Anda gunakan di emacs untuk menyimpan kontak? bbdb? Juga, apa yang Anda gunakan untuk program kalender Anda di emacs? Jawaban saya akan berbeda untuk mengatakan mode-org vs mode diary.
Steven D
Sebenarnya saya baru memulai, dan saya berencana menggunakan bbdb untuk kontak. Saya berencana untuk menggunakan mode buku harian untuk kalender, tetapi sekarang saya tahu dan membaca tentang mode-org yang mungkin menjadi pilihan yang baik juga. Terima kasih!!
hpy
Ini akan menjadi pilihan yang bagus, jika itu mungkin, saya ingin tahu. Membangun klien prospek menjadi emacs pasti akan keren.
1
Juga ditanya di Super User . Jangan lakukan ini! (Pengecualian: ketika pertanyaannya tidak memiliki jawaban yang bagus di sebuah situs, dan kemudian tautan ke pertanyaan awal.)
Gilles 'SO-stop being evil'
Saya tidak tahu, maaf! Masih mencari jawaban yang bagus.
hpy

Jawaban:

3

Sayangnya, saya tidak dapat memberikan jawaban yang lengkap. Yang saya miliki adalah saran tentang beberapa jalan yang mungkin untuk berkeliaran.

Rute termudah adalah jika emacs-g-client yang Gilles sebutkan dalam versi SU dari pertanyaan ini berfungsi. Jika itu tidak berhasil, saya akan mencari yang berikut:

  • Paling tidak Anda harus bisa mendapatkan beberapa fungsi kalender dengan mengakses kalender google Anda menggunakan ical. Fungsi ini icalendar-import-filedapat mengimpor file ical ke file buku harian emacs ( dokumentasi icalendar-import-file ). Jadi, dalam file .emacs Anda, Anda bisa memiliki sedikit emacs lisp untuk mendapatkan file kalender google dan mengimpornya ke dalam buku harian Anda. Jika Anda benar-benar menggunakan mode-org ada beberapa cara untuk mengintegrasikan mode-org dengan mode diary.

  • Saya pikir tujuan utamanya adalah memanfaatkan api gdata. Saya tidak berpikir bahwa ada cara mudah untuk mendapatkan akses ke kontak Google di luar api ini. Ada utilitas baris perintah yang mendukung berbagai fungsionalitas menggunakan api ini yang disebut Google CL , yang secara teoritis dapat digunakan di dalam beberapa fungsi lac emacs untuk menyediakan akses penuh ke kontak Anda, kalender, dan banyak layanan lain yang dihosting Google. Namun ini, kemungkinan akan jauh lebih sulit daripada hanya beberapa baris yang dilemparkan ke .emacs Anda.

Steven D
sumber
3

Untuk Kalender Google, saya berhasil mensinkronisasi pengaturan satu arah. Emacs mengambil kalender saya saat startup dan mentransfernya dalam buku harian emacs. Ini kemudian ditampilkan oleh mode-org dalam agenda, tetapi Anda dapat mengaturnya sesuai keinginan Anda.

Untuk mengirim kembali ke Kalender Google, saya belum menyiapkan apa pun karena saya tidak begitu membutuhkannya. Namun, saya pikir akan sangat mudah untuk memiliki fungsi yang menambahkan entri dalam buku harian dan memanggil googlecl untuk menambahkan entri di kalender google Anda.

Untuk mengambil kalender, saya memiliki yang berikut ini di .emacs saya (bukan bahwa ini bukan kode saya, itu berasal dari mailing-list org-mode, tapi saya tidak ingat di mana saya menemukannya tepatnya):

(setq mark-diary-entries-in-calendar t)
(defun getcal (url)
  "Download ics file and add to diary"
  (let ((tmpfile (url-file-local-copy url)))
    (icalendar-import-file tmpfile "~/diary" t)
    (kill-buffer (car (last (split-string tmpfile "/"))))
    )
  )
(setq google-calendars '(
                         "http://www.google.com/calendar/ical/DFSDFSDFSDFASD/basic.ics"
                         "http://www.google.com/calendar/ical/SDFSADFSADFASD/basic.ics"
                         ))
(defun getcals ()
  (interactive)
  (find-file "~/diary")
  (flush-lines "^[& ]")
  (dolist (url google-calendars) (getcal url))
  (kill-buffer "diary"))

Ganti "http://www.google.com/calendar/ical/DFSDFSDFSDFASD/basic.ics"dengan url ke kalender yang ingin Anda ambil (Anda menemukannya di bagian bawah halaman pengaturan setiap kalender di kalender google). Anda dapat menambahkan sebanyak yang Anda inginkan.

Sekarang, Anda bisa menelepon (getcals)saat ingin mengambil kalender. Anda bisa memasukkan ini ke dalam .emacs Anda untuk melakukannya saat startup, tetapi ini bisa membuat startup Anda terhenti.

Untuk memiliki mode-org menampilkan entri buku harian dalam agenda, cukup tambahkan (setq org-agenda-include-diary t).emacs Anda. Lihat manual mode-org untuk detailnya.

Mortimer
sumber
3

Untuk integrasi dengan kontak Google ada skrip Julien Danjou yang dapat Anda lihat beraksi di sini (repositori github ada di sini ):

Google-kontak untuk ekstensi Emacs memungkinkan untuk menampilkan Kontak Google Anda langsung di dalam Emacs.

Perhatikan bahwa ini kemungkinan hanya bekerja dengan setidaknya Emacs 24, karena menggunakan oauth2 yang merupakan bagian dari GNU ELPA.

PuercoPop
sumber
2

emacs-calfw dapat melakukan sinkronisasi dengan kalender dalam .icsformat iCal ( ) seperti Google Calendar.

Bastian Ballmann
sumber