Synchronisation Emacs avec Google Agenda et Contacts?

10

Existe-t-il un moyen d'utiliser Emacs pour se synchroniser avec Google Agenda et Google Contacts, idéalement en conservant une copie locale afin que je puisse y accéder hors ligne?

hpy
la source
1
Qu'utilisez-vous actuellement dans emacs pour stocker des contacts? bbdb? Aussi, qu'utilisez-vous pour votre programme de calendrier dans emacs? Ma réponse sera différente pour le mode org vs le mode journal.
Steven D
En fait, je ne fais que commencer et je prévois d'utiliser bbdb pour les contacts. Je prévoyais d'utiliser le mode agenda pour le calendrier, mais maintenant que je connais le mode org et que je l'ai lu, cela pourrait aussi être une bonne option. Merci!!
hpy
Ce serait une excellente option, si c'est même possible, je voudrais savoir. Construire un client Outlook dans emacs serait certainement cool.
1
Également demandé à Super User . Ne fais pas ça! (Exception: lorsque la question n'a pas eu de bonne réponse sur un site, puis un lien vers la question d'origine.)
Gilles 'SO- arrête d'être mauvais'
Je n'en avais aucune idée, désolé! Toujours à la recherche d'une bonne réponse, cependant.
hpy

Réponses:

3

Malheureusement, je ne suis pas en mesure de donner une réponse complète. Tout ce que j'ai, c'est des conseils sur les chemins possibles pour se promener.

L'itinéraire le plus simple serait que le client emacs-g mentionné par Gilles dans la version SU de cette question fonctionne. Si cela ne fonctionne pas, j'examinerais ce qui suit:

  • À tout le moins, vous devriez pouvoir obtenir certaines fonctionnalités de calendrier en accédant à votre calendrier Google à l'aide d'ical. La fonction icalendar-import-filepeut importer un fichier ical dans un fichier journal emacs (documentation icalendar-import-file ). Ainsi, dans votre fichier .emacs, vous pourriez avoir un peu de lisp emacs pour obtenir le fichier ical du calendrier google et l'importer dans votre agenda. Si vous finissez par utiliser le mode organisationnel, il existe plusieurs façons d'intégrer le mode organisationnel au mode journal.

  • Je pense que le but ultime serait d'utiliser l'api gdata. Je ne pense pas qu'il existe un moyen facile d'accéder aux contacts Google en dehors de cette API. Il existe un utilitaire de ligne de commande qui prend en charge un large éventail de fonctionnalités à l'aide de cette API appelée Google CL , qui pourrait théoriquement être utilisé dans certaines fonctions lisp emacs pour fournir un accès complet à vos contacts, votre calendrier et de nombreux autres services hébergés par Google. Cependant, cela serait probablement beaucoup plus difficile que quelques lignes jetées dans votre .emacs.

Steven D
la source
3

Pour Google Agenda, la configuration de la synchronisation unidirectionnelle a réussi. Emacs récupère mes calendriers au démarrage et les transfère dans le journal emacs. Ceci est ensuite affiché par org-mode dans l'agenda, mais vous pouvez le configurer comme vous le souhaitez.

Pour renvoyer à Google Agenda, je n'ai encore rien configuré car je n'en ai pas tellement besoin. Cependant, je pense qu'il serait assez facile d'avoir une fonction qui ajoute une entrée dans le journal et appelle googlecl pour ajouter une entrée dans votre calendrier Google.

Pour récupérer les calendriers, j'ai ce qui suit dans mon .emacs (pas que ce ne soit pas mon code, il vient de la liste de diffusion en mode org, mais je ne me souviens pas où je l'ai trouvé exactement):

(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"))

Remplacez "http://www.google.com/calendar/ical/DFSDFSDFSDFASD/basic.ics"par les URL des calendriers que vous souhaitez récupérer (vous les trouverez au bas de la page de configuration de chaque calendrier dans Google Calendar). Vous pouvez en ajouter autant que vous le souhaitez.

Maintenant, vous pouvez simplement appeler (getcals)lorsque vous souhaitez récupérer les calendriers. Vous pouvez mettre cela dans votre .emacs pour le faire au démarrage, mais cela pourrait bloquer votre démarrage.

Pour que le mode organisationnel affiche les entrées du journal dans l'agenda, ajoutez simplement (setq org-agenda-include-diary t)votre .emacs. Voir le manuel du mode org pour plus de détails.

Mortimer
la source
3

Pour l'intégration avec les contacts Google, il y a le script de Julien Danjou que vous pouvez voir en action ici (le dépôt github est ici ):

L'extension google-contacts pour Emacs permet d'afficher vos contacts Google directement dans Emacs.

Notez qu'il ne fonctionnera probablement qu'avec au moins Emacs 24, car il utilise oauth2 qui fait partie de GNU ELPA.

PuercoPop
la source
2

emacs-calfw peut se synchroniser avec des calendriers au .icsformat iCal ( ) tels que Google Calendar.

Bastian Ballmann
la source