2013-08-14 20 views
16

Ho sincronizzato iCal e Google Calendar in modo che possa visualizzare i miei appuntamenti. Tuttavia, non sono mai in grado di vedere il link di Google Hangout a meno che non venga visualizzato il calendario di Google.Link di Hangout di Google dal calendario

Le app OSX native supportano il campo per il link di Google Hangouts?

risposta

5

Questo mi ha annoiato per anni. Ho due soluzioni qui sotto. Uno che ti permetterà di avviare facilmente un hangout dall'evento iCal, l'altro aggiorna l'evento iCal con i dettagli del videoritrovo.

  1. Crea un Automator di applicazione tipo
  2. aggiungere elementi 'GetSpecified Finder' passo
  3. Aggiungi passaggio a 'Run Shell Script' (cambiare il blocco di shell script per accettare l'input "come argomenti")
  4. Copiare il seguente nella casella di testo:

    read url <<< $(cat "$1" | sed "s/$(printf '\r')\$//" | awk -F':' '/X-GOOGLE-HANGOUT/ {first = $2":"$3; getline rest; print (first)(substr(rest,2)); exit 1}';) 
    open "$url" 
    
  5. Salvare l'applicazione e aggiungere al dock

Ora sarà possibile trascinare un evento sull'elemento dock e analizzare il file .ics e avviare l'Hangout nel browser predefinito.

UPDATE: estensione quanto sopra per aggiornare la voce del calendario per aggiungere ritrovo come URL nel caso in:

  1. Crea un Automator di applicazione tipo
  2. aggiungere elementi 'GetSpecified Finder' passo
  3. Add un passaggio "Esegui script shell" (modificare il blocco Shell Script per accettare l'input "Come argomenti")
  4. Copia quanto segue nella casella di testo:

    read url <<< $(cat "$1" | sed "s/$(printf '\r')\$//" | awk -F':' '/X-GOOGLE-HANGOUT/ {first = $2":"$3; getline rest; print (first)(substr(rest,2)); exit 1}';) 
    read uid <<< $(cat "$1" | sed "s/$(printf '\r')\$//" | awk -F':' '/UID/ {print $2; exit 1}';) 
    echo "$url" 
    echo "$uid" 
    
  5. Aggiungere un passo di tipo 'Run di Apple Script'
  6. Copiare il seguente nella casella di sostituzione "myCalendar" con il nome del tuo calendario:

    on run {input, parameters} 
    set myURL to input's item 1 
    set myUID to input's item 2 
    set myCal to "myCalendar" 
    
    tell application "Calendar" 
    tell calendar myCal 
        set theEvent to first event whose uid = myUID 
        set (url of theEvent) to myURL 
    end tell 
    end tell 
    return input 
    end run 
    
  7. Salvare l'applicazione e aggiungere al il tuo dock

Ora quando si trascina un evento sull'icona del dock, si aggiornerà l'evento aggiungendo l'URL di hangout all'evento.

Prendendo quanto sopra come un inizio sarebbe bene se qualcuno volesse fare un aggiornamento di elaborazione batch pianificato di tutto il calendario che passa ogni mattina dire ...

+0

Ho appena ottenuto che funzioni. Ho dovuto modificare il blocco Shell Script per accettare l'input "As Arguments", dove è stato impostato su "As Stdin". – Yeraze

+0

Grazie a @Yeraze - Ho avuto quel set nel mio automatore ma l'ho mancato nelle istruzioni sopra - Ho aggiornato per richiamarlo ora. – nempnett

+0

Hai mai avuto fortuna con l'elaborazione di massa? Ho provato a utilizzare le nuove funzionalità di automazione per eseguire "Elaborazione batch", ma non sembra funzionare. È facile creare un compito di automazione per afferrare tutti gli eventi di oggi e quindi avviare un altro flusso di lavoro per ciascuno di essi. Semplicemente non riuscivo a capire come far passare i dati nel modo in cui ti stai aspettando (il materiale di awk del Terminale). – Yeraze

9

Grazie al piccolo script di nempnett, finalmente sono riuscita a automatizza tutto in uno strumento ora su GitHub. Ne ho scritto qui: http://yeraze.com/a-better-way-to-fix-osx-calendar-google-hangouts

Dovrai fare un po 'di magia terminale, ma poi sincronizzerà automaticamente i tuoi link di Google Hangout nei campi dell'URL del calendario.

+1

Non funziona su Yosemite. – 2rs2ts