캘린더 및 일정

이 가이드에서는 캘린더, 일정 및 서로의 관계에 대해 설명합니다.

캘린더

캘린더 관련 이벤트와 추가 메타데이터의 모음 요약, 기본 시간대, 위치 등을 예로 들 수 있습니다. 각 캘린더는 이메일 주소인 ID로 구성됩니다. 캘린더 소유자는 여러 명일 수 있습니다.

이벤트

이벤트 는 특정 날짜 또는 시간 범위와 연결된 객체입니다. 이벤트는 고유 ID로 식별됩니다. 시작 및 이벤트에는 요약, 설명, 위치, 상태, 알림, 첨부파일 등

이벤트 유형

Google 캘린더는 단일 일정과 반복 일정을 지원합니다.

  • 단일 이벤트는 고유한 발생을 나타냅니다.
  • 반복 이벤트는 여러 번의 발생을 정의합니다.

일정은 시간 지정 또는 종일일 수도 있습니다.

  • 시간이 지정된 이벤트는 두 특정 시점 사이에 발생합니다. 시간이 지정된 이벤트 start.dateTimeend.dateTime 필드를 사용하여 발생할 수 있습니다
  • 종일 일정은 하루 전체 또는 연속으로 여러 날에 걸쳐 있습니다. 하루 종일 이벤트는 start.dateend.date 필드를 사용하여 발생 시점을 지정합니다. 시간대 필드는 종일 일정에 의미가 없습니다.

주최자

일정에는 기본 사본이 포함된 캘린더인 단일 주최자가 있습니다. 있습니다. 이벤트에는 여러 개의 참석자입니다. 참석자는 일반적으로 초대된 사용자의 기본 캘린더입니다.

다음 다이어그램은 캘린더 이벤트 및 기타 관련 요소:

기본 캘린더 및 다른 캘린더

기본 캘린더는 단일 캘린더와 연결된 특별한 유형의 캘린더입니다. 사용자 계정을 만들 수 있습니다. 이 캘린더는 새 사용자 계정마다 자동으로 생성됩니다. ID는 일반적으로 사용자의 기본 이메일 주소와 일치합니다. 이 기본 캘린더를 삭제하거나 '소유하지 않을' 수 없습니다. 작성자: 있습니다. 하지만 다른 사용자와 계속 공유할 수는 있습니다.

기본 캘린더 이외에도 다른 캘린더 수정, 삭제, 공유할 수 있는 캘린더 데이터를 공유할 수 있습니다

캘린더 및 캘린더 목록

Calendars 컬렉션 는 기존의 모든 캘린더를 나타냅니다. 가상 머신을 만들고 삭제하는 데 사용할 수 있습니다. 있습니다. 또한 모든 프로젝트에서 공유되는 전역 속성을 가져오거나 설정할 수 있습니다. 캘린더 액세스 권한이 있는 사용자 예를 들어 캘린더의 제목과 기본값을 시간대는 전역 속성입니다.

CalendarList는 사용자가 목록에 추가한 모든 캘린더 항목의 컬렉션 (표시된 (웹 UI의 왼쪽 패널에 있음) 이를 사용하여 기존 사용자 목록에서 캘린더 간에 이동합니다. 또한 이를 사용하여 사용자별 캘린더 속성의 값(예: 기본 알림) 다른 사용자마다 다른 색상을 사용할 수 있으므로 전경 색상을 예로 들 수 있습니다. 일정을 설정할 수 있습니다.

다음 표에서는 두 컬렉션의 작업 의미를 비교합니다.

작업 캘린더 CalendarList
insert 새 보조 캘린더를 만듭니다. 이 캘린더는 기본적으로 만든 사용자의 캘린더 목록에 추가되었습니다. 사용자 목록에 기존 캘린더를 삽입합니다.
delete 보조 캘린더를 삭제합니다. 사용자 목록에서 캘린더를 삭제합니다.
get 캘린더 메타데이터를 검색합니다. 예: 있습니다. 메타데이터 사용자별 맞춤설정을 검색합니다. 알림을 설정할 수 있습니다.
patch/update 캘린더 메타데이터를 수정합니다. 사용자별 캘린더 속성을 수정합니다.

반복 일정

주간 회의나 생일, 공휴일 등입니다. 시작 시간과 종료 시간이 다르다는 것 외에는 이러한 반복 이벤트는 동일한 경우가 많습니다

정의된 일정에 따라 반복되는 일정을 반복 일정이라고 합니다. 단일 이벤트는 반복되지 않으며 한 번만 발생합니다.

반복 규칙

반복 일정의 일정은 두 부분으로 정의됩니다.

  • 시작 및 끝 필드 (첫 번째 일치하는 항목을 정의하는 것처럼 독립형 단일 이벤트일 뿐)

  • 반복 필드 (시간 경과에 따라 이벤트를 반복하는 방법을 정의함)

반복 필드에는 하나 또는 여러 개의 문자열을 나타내는 문자열 배열이 포함됩니다. RFC에 정의된 RRULE, RDATE 또는 EXDATE 속성 5545입니다.

RRULE 속성은 다음 항목에 관한 일반 규칙을 정의하므로 가장 중요합니다. 일정을 반복합니다. 여러 구성요소로 이루어져 있습니다. 그중 일부는 다음과 같습니다.

  • FREQ: 이벤트가 반복되어야 하는 빈도입니다 (예: DAILY 또는 WEEKLY). 필수 항목입니다.

  • INTERVAL: FREQ와 함께 작동하여 이벤트 빈도를 지정합니다. 반복되어야 합니다. 예를 들어 FREQ=DAILY;INTERVAL=2는 2일이 걸렸습니다.

  • COUNT — 이 이벤트가 반복되어야 하는 횟수입니다.

  • UNTIL - 이벤트가 반복되어야 하는 날짜 또는 날짜/시간입니다 (해당 날짜 포함).

  • BYDAY: 이벤트가 반복되어야 하는 요일입니다 (SU, MO, TU 등). 기타 유사한 구성요소에는 BYMONTH, BYYEARDAY, BYHOUR입니다.

RDATE 속성은 이벤트가 실행될 때 추가 날짜 또는 날짜/시간을 지정합니다. 발생합니다. 예를 들면 RDATE;VALUE=DATE:19970101,19970120입니다. RRULE에 포함되지 않는 추가 어커런스를 추가하는 데 사용합니다.

EXDATE 속성은 RDATE와 비슷하지만 날짜 또는 날짜-시간을 지정합니다. 이벤트가 발생해서는 안 되는 시점입니다. 즉, 이러한 반복 횟수는 제외되었습니다. 반복 규칙에 의해 생성된 유효한 인스턴스를 가리켜야 합니다.

EXDATERDATE에는 시간대를 지정할 수 있으며 날짜 (날짜-시간 아님)여야 합니다. 사용할 수 있습니다.

각 속성은 반복 입력란에서 여러 번 나타날 수 있습니다. 반복은 모든 RRULERDATE 규칙의 합집합에서 개의 항목이 모든 EXDATE개의 규칙에 의해 제외되었습니다.

다음은 반복 이벤트의 몇 가지 예입니다.

  1. 시작되는 이벤트로, 매주 화요일과 금요일 오전 6시부터 오전 7시까지 진행됩니다. 2015년 9월 15일부터 시작하여 9월 29일 5번째 발생한 후에 중지됩니다.

    ...
    "start": {
     "dateTime": "2015-09-15T06:00:00+02:00",
     "timeZone": "Europe/Zurich"
    },
    "end": {
     "dateTime": "2015-09-15T07:00:00+02:00",
     "timeZone": "Europe/Zurich"
    },
    "recurrence": [
     "RRULE:FREQ=WEEKLY;COUNT=5;BYDAY=TU,FR"
    ],
    …
    
  2. 2015년 6월 1일에 시작하여 3일마다 반복되는 종일 일정 6월 10일을 제외하고 6월 9일과 11일을 포함한 한 달 동안

    ...
    "start": {
     "date": "2015-06-01"
    },
    "end": {
     "date": "2015-06-02"
    },
    "recurrence": [
     "EXDATE;VALUE=DATE:20150610",
     "RDATE;VALUE=DATE:20150609,20150611",
     "RRULE:FREQ=DAILY;UNTIL=20150628;INTERVAL=3"
    ],
    …
    

인스턴스 및 예외

반복 일정은 여러 인스턴스(특정 항목)로 구성됩니다. 확인할 수 있습니다. 이러한 인스턴스는 그 자체로 이벤트 역할을 합니다.

이벤트를 반복적으로 수정하면 반복 일정 (및 해당 모든 인스턴스) 또는 개별 인스턴스만 설정할 수 있습니다. 상위 반복 일정과 다른 인스턴스를 예외라고 합니다.

예를 들어 예외에는 요약, 시작 시간, 또는 해당 인스턴스에만 초대된 추가 참석자에 대한 정보를 제공할 수 있습니다. 또한 반복 일정을 삭제하지 않고 인스턴스 전체를 (인스턴스 취소는 이벤트에 반영됨 status)을 입력합니다.

다음을 통해 반복 일정 및 인스턴스를 사용하는 방법의 예 Google Calendar API는 여기에서 찾을 수 있습니다.

시간대

시간대는 균일한 표준 시간을 준수하는 리전을 지정합니다. Google Calendar API에서 IANA 시간대 식별자.

캘린더 및 일정의 시간대를 설정할 수 있습니다. 다음 섹션 이 설정의 효과를 설명합니다.

캘린더 시간대

캘린더의 시간대는 다음과 같은 이유로 기본 시간대라고도 합니다. 쿼리 결과에 미치는 영향을 보여줍니다. 캘린더의 시간대가 인코더-디코더에 의해 events.get()님, events.list()events.instances() 메서드를 사용합니다.

쿼리 결과 시간대 변환
결과 get()님, list()instances() 메서드는 timeZone 매개변수 값으로 사용됩니다. 이 매개변수를 생략하면 이러한 메서드는 모두 캘린더를 사용합니다. 시간대를 선택합니다.
종일 일정을 시간 괄호로 묶은 쿼리와 일치
list()instances() method를 사용하면 시작 및 종료 시간 필터를 지정할 수 있으며, 지정된 범위에 속하는 인스턴스를 반환합니다. 캘린더 시간대 종일 이벤트의 시작 시간과 종료 시간을 계산하여 필터 사양 내에 있는지 여부

일정 시간대

이벤트 인스턴스에는 시작 시간과 종료 시간이 있습니다. 이 시간의 사양을 시간대가 포함될 수 있습니다. 시간대는 다음과 같이 여러 가지 방법으로 지정할 수 있습니다. 다음 은 모두 동일한 시간을 지정합니다.

  • dateTime 필드에 시간대 오프셋을 포함합니다(예: 2017-01-25T09:00:00-0500).
  • 오프셋 없이 시간을 지정합니다 (예: 2017-01-25T09:00:00). timeZone 필드는 비워 둡니다. 이렇게 하면 기본 시간대가 암시적으로 사용됩니다.
  • 오프셋 없이 시간을 지정합니다(예: 2017-01-25T09:00:00). 단, 시간대를 지정하려면 timeZone 필드를 사용하세요.

원하는 경우 이벤트 시간을 UTC로 지정할 수도 있습니다.

  • UTC로 시간을 지정하거나(2017-01-25T14:00:00Z) 0 오프셋(2017-01-25T14:00:00+0000)을 사용합니다.

이벤트 시간의 내부 표현은 모든 경우에 동일합니다. timeZone 필드를 설정하면 캘린더를 사용하여 일정 시간대를 설정하는 경우 UI:

이벤트의 시간대를 보여주는 스크린샷

반복 일정 시간대

반복 일정의 경우 항상 단일 시간대를 지정해야 합니다. 이벤트 반복을 확장하는 데 필요합니다.