Odaklanma zamanı, ofis dışında ve çalışma yeri etkinliklerini yönetme

Bu sayfada, Google Takvim API'sini nasıl kullanabileceğiniz açıklanmaktadır. Google Takvim kullanıcılarının durumu. Durum etkinlikleri, kullanıcıların ne yaptıklarını da kapsar. Odaklanma zamanında, ofis dışında ya da belirli bir yerden çalışıyor olabilirsiniz.

Kullanıcılar Google Takvim'de odaklanma zamanı, ofis dışında ve çalışma saatlerinde oluşturabilir. konum etkinliklerini gösterebiliriz. Bu özellikler yalnızca birincil takvimlerde ve bazı Google Takvim kullanıcıları tarafından kullanılabilir.

Ayrıntılı bilgi için Google'da odaklanma zamanını kullanma Takvim ve hakkında daha fazla bilgi edinin.

Takvim durumu etkinliklerini okuma ve listeleme

Takvim durumu etkinliklerini şurada okuyabilir ve listeleyebilirsiniz: Events Takvim API'sı.

Bir durum etkinliğini okumak için events.get yöntemini kullanarak Etkinlikten eventId.

Durum etkinliklerini listelemek için events.list yöntemi, birini belirtin veya daha fazla eventTypes alanı:

  • 'focusTime'
  • 'outOfOffice'
  • 'workingLocation'

Daha sonra, döndürülen Event nesnede eventType alanında ve Google Takvim'de kullanıcı tarafından oluşturulan durum:

Durum etkinliklerindeki değişikliklere abone ol

Durum etkinliklerindeki değişikliklere Events Takvim API'sı.

Şunu kullanın: events.watch yöntemini kullanarak calendarId ve aşağıdaki değerlerden bir veya daha fazlasına abone olabilir: eventTypes alanı:

  • 'focusTime'
  • 'outOfOffice'
  • 'workingLocation'

Takvim durumu etkinlikleri oluşturma ve güncelleme

Durum etkinliği oluşturmak için Events kaynağı, events.insert yöntemini ayarlayarak zorunlu alanları doldurduğunuzdan emin olun.

Durum etkinliğini events.update yöntemi, etkinlik zorunlu alanları doldurmalısınız.

Odaklanma zamanı oluştur

Odaklanma zamanı etkinliği oluşturmak için:

  • eventType değerini şuna ayarla: 'focusTime'.
  • Şunu dahil et: focusTimeProperties girin.
  • transparency ayarını yapın. alanını 'opaque' olarak ayarlayın.
  • Etkinliğin start ve end alanı süreli etkinlik olacak (başlangıç ve bitiş saatleri belirtilmiş olarak).
    . Odaklanma zamanları, tüm gün süren etkinlikler olamaz.

Özellik ayrıntıları için Google'da odaklanma zamanını kullanma Takvim

Ofis dışında etkinliği oluştur

Ofis dışında etkinliği oluşturmak için:

  • eventType değerini şuna ayarla: 'outOfOffice'.
  • Şunu dahil et: outOfOfficeProperties girin.
  • transparency ayarını yapın. alanını 'opaque' olarak ayarlayın.
  • Etkinliğin start ve end alanı süreli etkinlik olacak (başlangıç ve bitiş saatleri belirtilmiş olarak).
    . Ofis dışında etkinlikleri, tüm gün süren etkinlikler olamaz.

Özellik ayrıntıları için Dışarıda olduğunuz zamanları gösterme ofis

Çalışma yeri oluştur

Çalışma yeri etkinliği oluşturmak için:

  • eventType değerini şuna ayarla: 'workingLocation'.
  • Şunu dahil et: workingLocationProperties girin.
  • visibility alanını ayarlayın Hedef: 'public'.
  • transparency ayarını yapın. alanını 'transparent' olarak ayarlayın.
  • Etkinliğin start ve end alanları şunlardan biri olmalıdır:

    • Süreli bir etkinlik (başlangıç ve bitiş saatleri belirtilmiş olarak);
    • Başlangıç ve bitiş tarihleri belirtilen, tüm gün süren bir etkinlik tam olarak bir gün geçti.

    Tüm gün süren çalışma yeri etkinlikleri birden fazla günü kapsaamaz, ancak zamanlanmış etkinlikleri kapsayabilir yapabilir.

Aşağıdaki alanlar isteğe bağlıdır ancak en iyi kullanıcı deneyimi için önerilir bir officeLocation:

Çalışma yeri etkinlikleri toplu uç noktalar aracılığıyla oluşturulup güncellenemez. desteklenir.

Özellik ayrıntıları için Çalışma saatlerinizi ayarlama ve konum ve kullanıcı

Çakışan çalışma yeri etkinliklerini gösterme

Bir kullanıcının takviminde aynı anda birden fazla çalışma yeri etkinliği olabilir zaman alabilir. Başka bir deyişle, herhangi bir zamanda birden fazla çalışma konum ayarı olabilir. Yalnızca tek bir konumun gösterilebildiği durumlarda kullanıcıya bu konumun birden çok yerde tutarlı bir şekilde izin verir. Bunu yaparken, iki veya daha fazla ortak çalışanın gösterilecek etkinlik:

  • Zamanlanmış etkinlikler tüm gün süren etkinliklere göre öncelikli olur.
  • Tek etkinlikler, yinelenen etkinliklere göre önceliklidir ve istisnalar.
  • Daha sonra başlayan etkinlikler, daha önce başlayan etkinliklere göre önceliklidir.
  • Kısa süreli etkinlikler, uzun süreli etkinliklere göre önceliklidir daha fazla bilgi edinebilirsiniz.
  • Daha yeni oluşturulan etkinlikler, oluşturulan etkinliklere göre önceliklidir anlatacağım.
  • Kısmen çakışan etkinlikler her biri iki farklı etkinlik olarak gösterilmelidir bekleyebilirsiniz.

Google Apps Komut Dosyası'nda durum etkinlikleri oluşturma

Google Apps Komut Dosyası, JavaScript tabanlı bir buluttur Google Analytics 4 ile entegre olan iş uygulamaları Google Workspace Komut dosyaları, tarayıcı tabanlı bir kod düzenleyicide geliştirilir. Google'ın sunucularında saklanır ve çalışır. Ayrıca bkz. Google Apps Komut Dosyası kullanmaya başlamak için hızlı başlangıç kılavuzu Google Takvim API'sine istek göndermek için Apps Komut Dosyası.

Aşağıdaki talimatlarda, Google Calendar API'yi kullanarak Google Apps Komut Dosyası. Google Calendar API kaynaklarının ve yöntemlerinin tam listesi için referans belgelerine bakın.

Komut dosyasını oluşturun ve ayarlayın

  1. Komut dosyası oluşturmak için script.google.com/create.
  2. Hizmetler'in yanındaki sol bölmede Hizmet ekle'yi tıklayın.
  3. Google Calendar API'yi seçip Add'i (Ekle) tıklayın.
  4. Etkinleştirildikten sonra API soldaki bölmede görünür. Kullanılabilir yöntemler ve API'deki sınıflar, düzenleyicide Calendar anahtar kelimesi kullanılarak listelenebilir.

(İsteğe bağlı) Google Cloud projesini güncelleme

Her Google Apps Komut Dosyası projesinin ilişkili bir Google Cloud projesi vardır. Sizin komut dosyası, Google Apps Komut Dosyası'nın otomatik olarak oluşturduğu varsayılan projeyi kullanabilir oluşturuyor. Özel bir Google Cloud projesi kullanmak istiyorsanız aşağıdaki adımları uygulayın kullanarak komut dosyanızla ilişkili projeyi güncelleyin.

  1. Düzenleyicinin sol tarafında Proje Ayarları'nı tıklayın.
  2. Google Cloud Platform (GCP) Project bölümünde Projeyi değiştir seçeneğini tıklayın.
  3. Geliştirici menüsünde bulunan Google Cloud projesinin proje numarasını girin Önizleme Programı'nı tıklayın ve Proje ayarla'yı tıklayın.
  4. Sol tarafta Düzenleyici'yi seçerek kod düzenleyiciye geri dönün.

Komut dosyasına kod ekleyin

Aşağıdaki kod örneğinde durum etkinliklerinin nasıl oluşturulacağı, okunacağı ve listeleneceği gösterilmektedir birincil takviminiz.

  1. Aşağıdakini kod düzenleyiciye yapıştırın.

    /** Creates a focus time event. */
    function createFocusTime() {
      const event = {
        start: { dateTime: '2023-11-14T10:00:00+01:00' },
        end: { dateTime: '2023-11-14T12:00:00+01:00' },
        eventType: 'focusTime',
        focusTimeProperties: {
          chatStatus: 'doNotDisturb',
          autoDeclineMode: 'declineOnlyNewConflictingInvitations',
          declineMessage: 'Declined because I am in focus time.',
        }
      }
      createEvent(event);
    }
    
    /** Creates an out of office event. */
    function createOutOfOffice() {
      const event = {
        start: { dateTime: '2023-11-15T10:00:00+01:00' },
        end: { dateTime: '2023-11-15T18:00:00+01:00' },
        eventType: 'outOfOffice',
        outOfOfficeProperties: {
          autoDeclineMode: 'declineOnlyNewConflictingInvitations',
          declineMessage: 'Declined because I am on vacation.',
        }
      }
      createEvent(event);
    }
    
    /** Creates a working location event. */
    function createWorkingLocation() {
      const event = {
        start: { date: "2023-06-01" },
        end: { date: "2023-06-02" },
        eventType: "workingLocation",
        visibility: "public",
        transparency: "transparent",
        workingLocationProperties: {
          type: 'customLocation',
          customLocation: { label: "a custom location" },
        }
      }
      createEvent(event);
    }
    
    /**
      * Creates a Calendar event.
      * See https://developers.google.com/calendar/api/v3/reference/events/insert
      */
    function createEvent(event) {
      const calendarId = 'primary';
    
      try {
        var response = Calendar.Events.insert(event, calendarId);
        var event = (response.eventType === 'workingLocation') ? parseWorkingLocation(response) : response;
        console.log(event);
      } catch (exception) {
        console.log(exception.message);
      }
    }
    
    /**
      * Reads the event with the given eventId.
      * See https://developers.google.com/calendar/api/v3/reference/events/get
      */
    function readEvent() {
      const calendarId = 'primary';
    
      // Replace with a valid eventId.
      const eventId = "sample-event-id";
    
      try {
        var response = Calendar.Events.get(calendarId, eventId);
        var event = (response.eventType === 'workingLocation') ? parseWorkingLocation(response) : response;
        console.log(event);
      } catch (exception) {
        console.log(exception.message);
      }
    }
    
    /** Lists focus time events. */
    function listFocusTimes() {
      listEvents('focusTime');
    }
    
    /** Lists out of office events. */
    function listOutOfOffices() {
      listEvents('outOfOffice');
    }
    
    /** Lists working location events. */
    function listWorkingLocations() {
      listEvents('workingLocation');
    }
    
    /**
      * Lists events with the given event type.
      * See https://developers.google.com/calendar/api/v3/reference/events/list
      */
    function listEvents(eventType = 'default') {
      const calendarId = 'primary'
    
      // Query parameters for the list request.
      const optionalArgs = {
        eventTypes: [eventType],
        showDeleted: false,
        singleEvents: true,
        timeMax: '2023-04-01T00:00:00+01:00',
        timeMin: '2023-03-27T00:00:00+01:00',
      }
      try {
        var response = Calendar.Events.list(calendarId, optionalArgs);
        response.items.forEach(event =>
          console.log(eventType === 'workingLocation' ? parseWorkingLocation(event) : event));
      } catch (exception) {
        console.log(exception.message);
      }
    }
    
    /**
      * Parses working location properties of an event into a string.
      * See https://developers.google.com/calendar/api/v3/reference/events#resource
      */
    function parseWorkingLocation(event) {
      if (event.eventType != "workingLocation") {
        throw new Error("'" + event.summary + "' is not a working location event.");
      }
    
      var location = 'No Location';
      const workingLocation = event.workingLocationProperties;
      if (workingLocation) {
        if (workingLocation.type === 'homeOffice') {
          location = 'Home';
        }
        if (workingLocation.type === 'officeLocation') {
          location = workingLocation.officeLocation.label;
        }
        if (workingLocation.type === 'customLocation') {
          location = workingLocation.customLocation.label;
        }
      }
      return `${event.start.date}: ${location}`;
    }
    

Kod örneğini çalıştırma

  1. Kod düzenleyicinin üzerinde, açılır menüden çalıştırılacak işlevi seçin. ve Çalıştır'ı tıklayın.
  2. İlk yürütmede erişimi yetkilendirmeniz istenir. İncele ve izin ver Takviminize erişmek için Apps Komut Dosyası.
  3. Komut dosyası yürütme sonuçlarını şurada inceleyebilirsiniz: Pencerenin en altında görünen Yürütme Günlüğü.