O Emacs sincroniza com o Google Agenda e contatos?

10

Existe uma maneira de usar o Emacs para sincronizar com o Google Agenda e os Contatos do Google, mantendo idealmente uma cópia local para que eu possa acessá-los offline?

hpy
fonte
1
O que você está usando no emacs para armazenar contatos? bbdb? Além disso, o que você usa para o seu programa de calendário no emacs? Minha resposta será diferente, por exemplo, modo org ou modo diário.
Steven D
Na verdade, estou apenas começando e planejo usar o bbdb para contatos. Eu estava planejando usar o modo diário para o calendário, mas agora que conheço e li sobre o modo organizacional que também pode ser uma boa opção. Obrigado!!
hpy 10/09/10
Essa seria uma ótima opção, se é que é possível, eu gostaria de saber. Criar um cliente do Outlook no emacs seria definitivamente legal.
1
Também solicitado no Superusuário . Não faça isso! (Exceção: quando a pergunta não teve uma boa resposta em um site e, em seguida, vincule à pergunta original.)
Gilles 'SO- stop be evil'
Eu não tinha ideia, desculpe! Ainda estou procurando uma boa resposta, no entanto.
hpy 10/09/10

Respostas:

3

Infelizmente, não consigo dar uma resposta completa. Tudo o que tenho são conselhos sobre alguns caminhos possíveis a percorrer.

A rota mais fácil seria se o emacs-g-client mencionado por Gilles na versão SU desta pergunta funcionasse. Se isso não funcionar, eu examinaria o seguinte:

  • No mínimo, você poderá obter algumas funcionalidades do calendário acessando seu calendário do Google usando o ical. A função icalendar-import-filepode importar um arquivo ical para um arquivo de diário do emacs (documentação de icalendar-import-file ). Assim, no seu arquivo .emacs, você pode ter um pouco do emacs lisp para obter o arquivo icônico do calendário do Google e importá-lo para o seu diário. Se você acabar usando o modo organizacional, existem várias maneiras de integrar o modo organizacional ao modo diário.

  • Penso que o objetivo final seria fazer uso da API do gdata. Não acho que exista uma maneira fácil de obter acesso aos contatos do Google fora desta API. Existe um utilitário de linha de comando que suporta uma ampla gama de funcionalidades usando esta API chamada Google CL , que teoricamente poderia ser usada dentro de algumas funções do emacs lisp para fornecer acesso total aos seus contatos, calendário e muitos outros serviços hospedados pelo Google. No entanto, isso provavelmente seria muito mais difícil do que apenas algumas linhas lançadas no seu .emacs.

Steven D
fonte
3

Para o Google Agenda, tenho uma configuração de sincronização unidirecional com êxito. O Emacs busca meus calendários na inicialização e o transfere no diário do emacs. Isso é exibido pelo modo organizacional na agenda, mas você pode configurá-lo da maneira que desejar.

Para enviar de volta ao Google Agenda, ainda configurei qualquer coisa, pois não preciso muito disso. No entanto, acho que seria muito fácil ter uma função que adicione uma entrada no diário e chame googlecl para adicionar uma entrada no seu calendário do Google.

Para buscar os calendários, tenho o seguinte no meu .emacs (não que esse não seja o meu código, ele vem da lista de discussão no modo organizacional, mas não me lembro onde o encontrei exatamente):

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

Substitua "http://www.google.com/calendar/ical/DFSDFSDFSDFASD/basic.ics"pelos URLs dos calendários que você deseja buscar (você o encontra na parte inferior da página de configuração de cada calendário no Google Agenda). Você pode adicionar quantas desejar.

Agora, você pode apenas chamar (getcals)quando você quer buscar os calendários. Você pode colocar isso no seu .emacs para fazer isso na inicialização, mas isso pode paralisar a inicialização.

Para que o modo organizacional exiba as entradas do diário na agenda, basta adicionar (setq org-agenda-include-diary t)seu .emacs. Consulte o manual do modo organizacional para obter detalhes.

Mortimer
fonte
3

Para integração com os contatos do Google, há o script de Julien Danjou, que você pode ver em ação aqui (o repositório do github está aqui ):

A extensão google-Contacts for Emacs permite exibir seus contatos do Google diretamente no Emacs.

Observe que é provável que funcione apenas com pelo menos o Emacs 24, pois está usando oauth2, que faz parte do GNU ELPA.

PuercoPop
fonte
2

O emacs-calfw pode sincronizar com calendários no .icsformato iCal ( ), como o Google Calendar.

Bastian Ballmann
fonte