Apakah ada cara untuk menggunakan Emacs untuk menyinkronkan dengan Kalender Google dan Kontak Google, idealnya menyimpan salinan lokal sehingga saya dapat mengaksesnya secara offline?
Apakah ada cara untuk menggunakan Emacs untuk menyinkronkan dengan Kalender Google dan Kontak Google, idealnya menyimpan salinan lokal sehingga saya dapat mengaksesnya secara offline?
Jawaban:
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-file
dapat 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.
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.
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.
emacs-calfw dapat melakukan sinkronisasi dengan kalender dalam .ics
format iCal ( ) seperti Google Calendar.