일정에 사용자 초대하기

이벤트 만들기

주최자의 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 캘린더에 일정을 추가하려고 합니다.

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

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

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

이벤트 전파

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

이벤트/참석자의 역학을 보여주는 다이어그램

공유된 이벤트 속성

일정이 생성된 캘린더는 주최자 캘린더입니다. 이 캘린더는 ID, 시작 및 종료 시간, 요약, 설명을 포함한 공유 일정 정보를 소유합니다. 이 정보가 주최자 캘린더에서 업데이트되면 변경사항이 참석자 사본에 적용됩니다.

비공개 이벤트 속성

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

또한 참석자는 이벤트의 공유 속성을 변경할 수 있습니다. 하지만 이러한 변경사항은 자체 사본에만 반영되며 주최자가 변경하면 변경사항이 삭제될 수 있습니다.

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