일정에 사용자 초대하기

이벤트 만들기

주최자의 Google Calendar에 대한 쓰기 액세스 권한이 있으면 Events: insert 메서드를 사용하여 이벤트를 추가할 수 있습니다.

이 메서드는 초대 추가 설정과 관계없이 주최자의 캘린더에 이벤트를 직접 추가합니다.

참석자 추가

이 메서드를 사용하면 이벤트의 attendees 속성에 참석자의 이메일 주소를 추가하여 동일한 이벤트에 참석자를 추가할 수도 있습니다. 주최자가 이벤트에 적용한 모든 향후 변경사항은 참석자에게 전파됩니다.

참석자는 주최자의 이메일 주소에서 초대를 받게 됩니다. Google Calendar 사용자는 Google Calendar 설정의 일정 설정에 따라 이메일 또는 캘린더를 통해 초대를 받습니다.

  • From everyone 설정이 있는 경우 일정이 캘린더에 직접 추가됩니다.
  • 사용자에게 Only if the sender is known 설정이 있으면 이전에 주최자와 상호작용한 적이 있거나 주최자가 같은 조직에 있거나 주최자가 Google 연락처에 있다면 일정이 캘린더에 직접 추가됩니다. 주최자를 모르는 경우 아는 사람임을 클릭하거나 초대 이메일에서 또는 미정을 클릭하여 회신요청을 보낼 수 있습니다. 그러면 일정이 캘린더에 추가됩니다.
  • 사용자에게 When I respond in email 설정이 있는 경우 사용자가 초대 이메일에서 , 미정 또는 아니요를 클릭하여 회신할 때까지 모든 초대가 캘린더에 추가되지 않습니다.

Google Calendar에 초대를 추가하는 방법에 관한 자세한 내용은 Calendar에서 초대 관리를 참고하세요.

attendees[].responseStatus 속성을 사용하여 참석자의 응답을 needsAction 이외의 값으로 설정하면 안 됩니다. 참석자의 응답을 미리 채워도 사용자의 캘린더에 일정이 자동으로 추가되지는 않습니다.

참석자의 캘린더에 직접 일정 표시

참석자의 설정에 따라 Google Calendar 참석자의 캘린더에 직접 일정을 표시하려면 참석자의 참석 여부를 설정하거나 참석자의 캘린더에서 직접 일정의 사본을 가져올 수 있습니다. 두 방법 모두 참석자의 캘린더에 대한 쓰기 액세스 권한이 필요합니다. 그렇지 않으면 참석자의 연락처에 주최자를 추가하는 것이 좋습니다. 이 경우 참석자의 연락처에 대한 쓰기 액세스 권한이 필요할 수 있습니다.

참석자의 참석 여부 설정

일정에 참석자의 회신요청을 설정하려면 다음 단계를 따르세요.

  1. Google Calendar 주최자의 캘린더에서 일정을 만들고 참석자를 추가합니다 (위 참고).
  2. Events: update 메서드를 사용하여 참석자의 회신요청accepted 또는 tentative로 설정합니다. 참석자의 캘린더에 대한 쓰기 액세스 권한이 있어야 합니다. 참석자의 캘린더에 이벤트가 표시되기까지 약간의 지연이 있을 수 있습니다. Events: update 메서드를 사용하는 방법 자세히 알아보기

이 메서드는 참석자의 캘린더에 이벤트를 추가하지만, 참석자에게 이전에 알 수 없는 주소에서 초대가 전송되었다는 배너가 이메일에 계속 표시될 수 있습니다.

참석자의 캘린더에 직접 일정의 사본 가져오기

일정의 사본을 참석자의 캘린더로 가져오려면 다음 단계를 따르세요.

  1. 주최자의 Google Calendar에 대한 쓰기 액세스 권한이 있으면 Events: import 메서드를 사용하여 일정의 사본을 가져옵니다.
  2. Events: import를 사용하여 참석자의 캘린더에 동일한 일정의 사본을 하나 더 가져옵니다. 참석자의 캘린더에 대한 쓰기 액세스 권한이 있어야 합니다. 주최자와 참석자의 사본에 동일한 이벤트 ID(iCalUID)를 사용하고 참석자의 사본에 주최자를 지정해야 합니다.

이 방법을 사용하면 참석자가 자신의 캘린더에서 일정을 볼 수 있지만 Google Calendar에서 보낸 초대 이메일을 받지 못합니다.

참석자의 연락처에 주최자 추가

참석자의 사용자 인증 정보가 없는 경우 참석자의 Google 연락처에 주최자의 이메일 주소를 미리 추가하여 참석자의 캘린더에 직접 일정을 표시하도록 안내할 수 있습니다. 새로 만든 연락처가 적용되기까지 약간의 지연이 있을 수 있습니다.

  • Google Calendar 사용자에게 Google 주소록에 주최자를 추가해 달라고 요청합니다.
  • 참석자가 조직에 속한 경우 조직의 관리자에게 프로그래매틱 방식으로 사용자의 연락처에 이메일 주소를 추가해 달라고 요청할 수 있습니다. 관리자에게 도메인 전체 위임을 사용 설정하고 사용자를 가장한 다음 People: createContact 메서드를 사용하여 각 사용자의 연락처를 만들어 달라고 요청하세요. 이렇게 하면 이러한 이메일 주소에서 보낸 향후 초대가 사용자의 캘린더에 자동으로 표시됩니다.
  • 참석자의 연락처에 액세스할 수 있는 경우 People: createContact 메서드를 사용하여 주최자의 이메일 주소를 참석자의 연락처에 추가할 수도 있습니다.

이메일 주소에서 사용자 초대

주최자의 Google Calendar에 대한 쓰기 액세스 권한이 없거나 주최자의 이메일 주소를 노출하지 않으려면 iCalendar 프로토콜(RFC-5545)을 사용하여 .ICS 파일을 통해 이메일로 사용자를 초대합니다.

참석자가 Only if the sender is known 설정을 사용하는 Google Calendar 사용자이며 이전에 본인이 아는 주소와 상호작용하거나 해당 주소를 기록한 적이 없는 경우에는 이 발신자를 알고 있습니다를 클릭하거나 일정 참석 여부를 회신할 때까지 캘린더에 초대가 추가되지 않습니다.

또는 Google Calendar 사용자가 일정을 업데이트하지 않고 일회성으로 더 쉽게 추가할 수 있도록 하려면 사용자가 직접 추가할 수 있도록 미리 채워진 이벤트가 포함된 링크를 제공하면 됩니다. 이 메서드는 사용자의 캘린더에 고유한 이벤트를 만들며, 이 이벤트는 사용자 캘린더에 대한 액세스 권한이 없으면 업데이트할 수 없습니다.

다음 링크 템플릿을 사용합니다.


https://calendar.google.com/calendar/r/eventedit?action=TEMPLATE&dates=20230325T224500Z%2F20230326T001500Z&stz=Europe/Brussels&etz=Europe/Brussels&details=EVENT_DESCRIPTION_HERE&location=EVENT_LOCATION_HERE&text=EVENT_TITLE_HERE

다음 정보를 업데이트하면 됩니다.

  • 시작일과 종료일, 시간: ISO 8601 형식을 사용합니다. 위의 예에서 20230325T224500Z20230326T001500Z를 바꿉니다.
  • 시작 및 종료 시간대: IANA 시간대 데이터베이스 이름 형식으로 지정합니다. stzetz 필드에 시간대를 입력합니다.
  • 이벤트 설명: URL로 인코딩되어야 합니다.
  • 이벤트 위치: URL로 인코딩되어야 합니다.
  • 이벤트 제목: URL로 인코딩되어야 합니다.

예시

사용자가 비즈니스의 약속을 예약할 수 있도록 약속 예약 서비스를 빌드하는 예를 생각해 보겠습니다. 사용자가 약속을 예약할 때 서비스에서 예약자의 Google Calendar와 비즈니스의 Google Calendar에 일정을 추가하려고 합니다.

최상의 사용자 환경을 위해 비즈니스가 캘린더에 대한 쓰기 액세스 권한을 부여하는 것이 좋습니다. 그러면 비즈니스의 캘린더에 직접 이벤트를 추가하고 (이벤트 만들기) 예약자를 해당 이벤트에 초대할 수 있습니다(참석자 추가). 예약자가 캘린더에서 일정을 보고 알림을 받을 수 있도록 예약한 후 바로 이메일을 확인하고 일정 참석 여부를 라고 응답하세요. 일정 참석 여부를 회신하면 해당 사용자에게 알림 설정에 따라 Google Calendar의 일정 알림이 전송됩니다.

예약자의 캘린더에 일정을 직접 추가하려면 예약자에게 초대장을 받을 이메일 주소를 연락처에 추가하도록 알립니다. 또는 예약자에게 캘린더에 대한 쓰기 액세스 권한을 요청하여 프로그래매틱 방식으로 대신 회신을 요청하고 (참석자의 참석 여부 설정) 확인된 예약에 대한 이메일 알림을 보냅니다.

비즈니스에서 이메일 주소를 노출하지 않으려는 경우 사용자별 이메일 주소를 사용하여 이메일을 통해 예약자에게 이벤트를 전송합니다(이메일 주소에서 사용자 초대).

이벤트 전파

다음 다이어그램은 이러한 작동 방식을 설명합니다. 먼저 Jack이 자신의 기본 캘린더에 일정을 만들어 주최자 사본을 소유합니다. 그런 다음 첼로 수업 그룹의 보조 캘린더와 이벤트 설정 Only if the sender is known가 있는 수잔을 초대합니다. 참석자의 사본은 Cello 수업 그룹 보조 캘린더와 수잔의 캘린더(Jack을 아는 경우)에 생성되고, 수잔이 Jack을 아는 경우(그렇지 않은 경우 참석 여부를 회신하거나 Jack을 아는 것으로 표시할 때) 생성됩니다. 수잔이 응답하면 회신요청 변경사항이 주최자에게 다시 전파되어 주최자의 사본이 수잔의 응답으로 업데이트됩니다. 주최자의 이벤트 사본에 적용된 변경사항은 다른 참석자에게 전파됩니다.

이벤트/참석자 역학 관계를 보여주는 다이어그램

공유 이벤트 속성

일정이 만들어진 캘린더는 주최자 캘린더입니다. 이 캘린더는 ID, 시작 및 종료 시간, 요약, 설명 등 공유된 이벤트 정보를 소유합니다. 주최자 캘린더에서 이 정보가 업데이트되면 변경사항이 참석자 사본에 전파됩니다.

비공개 이벤트 속성

모든 일정 사본 간에 모든 정보가 공유되는 것은 아닙니다. 알림, colorId, 투명도 또는 extendedProperties.private 속성과 같은 일부 속성은 비공개 속성입니다. 이러한 속성은 주최자 캘린더가 아닌 참석자의 설정에 의해 제어됩니다.

참석자는 일정의 공유 속성을 변경할 수도 있습니다. 그러나 이러한 변경사항은 자체 사본에만 반영되며 주최자가 변경하면 손실될 수 있습니다.

참석자에서 주최자에게 다시 전파되는 이벤트 변경사항은 참석자의 응답 상태이며 이 상태는 attendees[].responseStatus 속성에 저장됩니다.