Google Workspace 부가기능은 사용자가 캘린더 및 Calendar 일정을 보거나 수정할 때 맞춤 인터페이스를 제공할 수 있습니다.
이를 통해 사용자에게 관련 정보를 추가로 제공하고, 작업을 자동화하고, 서드 파티 시스템을 Google Calendar에 연결할 수 있습니다.
Google Calendar용 부가기능 인터페이스를 빌드할 때 홈페이지를 제공할 수 있습니다. 여러 호스트에 동일한 홈페이지를 사용하거나 Google Calendar용 홈페이지를 특별히 디자인할 수 있습니다.
사용자가 캘린더 일정을 열 때 표시되는 인터페이스를 부가기능에서 정의할 수도 있습니다.
부가기능 UI 액세스
열리는 방식에 따라 Google Workspace 부가기능은 홈페이지 인터페이스, Google Calendar 일정 인터페이스, 첨부파일 선택 인터페이스 또는 이 세 가지를 모두 정의할 수 있습니다.
사용자가 Calendar 일정을 열고 부가기능 아이콘을 클릭하거나 사용자가 일정을 열 때 부가기능이 열려 있으면 부가기능이 해당하는 eventOpenTrigger 함수를 실행합니다 (있는 경우). 이 함수는 부가기능의 Calendar 일정 인터페이스를 빌드하고 표시를 위해 Google Calendar로 반환합니다.
부가기능이 eventAttachmentTrigger 함수를 정의하는 경우 사용자가 캘린더 일정을 수정하는 동안 첨부파일 추가를 클릭하면 부가기능이 첨부파일 제공자로 표시됩니다. 부가기능이 선택되면 eventAttachmentTrigger 함수가 부가기능의 첨부파일 선택 인터페이스를 빌드하고 표시를 위해 Google Calendar에 반환합니다.
부가기능 캘린더 인터페이스 빌드
다음 단계에 따라 Google Workspace 부가기능으로 Google Calendar를 확장할 수 있습니다.
부가기능에 캘린더 전용 홈페이지를 사용할지 결정합니다.
사용자가 캘린더 일정을 수정하는 동안 맞춤 인터페이스를 제공할지 여부도 결정합니다.
어떤 경우든 부가기능의 스크립트 프로젝트에 홈페이지 트리거 함수의 이름을 제공해야 합니다. 이 함수는 필요할 때 Google Calendar 홈페이지를 빌드하기 위해 자동으로 호출됩니다. 이 함수를 구현하여 홈페이지를 구성하는 단일 Card 또는 Card 객체 배열을 빌드하고 반환해야 합니다. 홈페이지 트리거 함수에는 클라이언트의 플랫폼과 같은 일반적인 정보가 포함된 이벤트 객체가 매개변수로 전달됩니다. 이벤트 객체 데이터를 사용하여 홈페이지 구성을 맞춤설정할 수 있습니다.
캘린더 일정 인터페이스 확장
Google Calendar는 컨텍스트 트리거를 사용하여 사용자가 Calendar 일정을 수정할 때 표시할 인터페이스(있는 경우)를 결정합니다. 트리거가 실행되면 부가기능 매니페스트의 calendar.eventOpenTrigger 필드에 지정된 컨텍스트 트리거 함수가 실행됩니다.
사용자가 Calendar 일정을 열면 이벤트 객체가 생성되어 calendar.eventOpenTrigger 컨텍스트 트리거 함수에 전달됩니다. 트리거 함수는 이 이벤트 객체의 정보를 사용하여 부가기능 카드를 구성하거나 부가기능 동작을 제어하는 방법을 결정할 수 있습니다. 이벤트 객체는 부가기능이 처음 열릴 때와 사용자가 대화형 위젯을 클릭하거나 선택할 때도 생성되어 homepageTrigger 함수에 전달됩니다.
이벤트 객체의 전체 구조는 이벤트 객체에 설명되어 있습니다.
Calendar가 부가기능의 호스트 앱으로 작동하는 경우 컨텍스트 트리거 및 위젯 상호작용 이벤트 객체에는 Calendar 관련 클라이언트 정보를 전달하는 Calendar 이벤트 객체 필드가 포함됩니다.
사용자가 캘린더 일정을 변경한 경우 이에 따라 애드온의 캘린더 일정 인터페이스를 업데이트합니다.
Google Calendar에 연결된 회의 시스템과 같은 서드 파티 시스템과 캘린더 일정 데이터를 동기화합니다.
Calendar 일정의 데이터 (예: 참석자 목록)를 조정해야 하는 경우 부가기능의 calendar.currentEventAccess 매니페스트 필드를 WRITE 또는 READ_WRITE로 설정해야 합니다. 또한 부가기능에 https://www.googleapis.com/auth/calendar.addons.current.event.write범위가 있어야 합니다.
회의 솔루션 추가
회의 솔루션은 사용자가 Google Calendar 일정에 연결할 수 있는 서드 파티 회의 옵션을 나타냅니다. 서드 파티 회의 개요 문서에서는 새로운 회의 솔루션을 추가하는 부가기능을 빌드하는 방법을 자세히 설명합니다. 이 유형의 확장 프로그램에는 UI를 빌드할 필요가 없습니다. 추가된 솔루션은 Google Calendar 일정 UI의 드롭다운 메뉴에 옵션으로 표시됩니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-08-29(UTC)"],[[["\u003cp\u003eGoogle Workspace add-ons can customize interfaces for viewing and editing Google Calendar events, enabling task automation and third-party system connections.\u003c/p\u003e\n"],["\u003cp\u003eAdd-ons can offer a homepage and a dedicated interface for interacting with calendar events, triggered by user actions.\u003c/p\u003e\n"],["\u003cp\u003eAdd-on interfaces are built using Card objects and event objects, which provide contextual information about the user's interaction.\u003c/p\u003e\n"],["\u003cp\u003eWhen a calendar event is opened or updated, specific triggers execute functions defined in the add-on manifest to dynamically update the interface or synchronize data.\u003c/p\u003e\n"],["\u003cp\u003eAdd-ons can integrate third-party conferencing solutions into Google Calendar, offering users additional options for online meetings.\u003c/p\u003e\n"]]],["Google Workspace add-ons customize Calendar interfaces by providing homepages and event-specific interfaces. Add-ons utilize trigger functions like `calendar.homepageTrigger` for the homepage and `eventOpenTrigger` for event interfaces. An `eventAttachmentTrigger` can also be defined to act as an attachment provider. Add-ons can be built with a Calendar-specific homepage or a common one and may use the event object parameter to tailor the UI. The `eventUpdateTrigger` can update events when attendees are changed or a different conferencing solution is selected. Add-ons may have a conferencing solution.\n"],null,["# Building Google Calendar interfaces\n\nGoogle Workspace add-ons can provide customized\ninterfaces when the user is viewing or editing calendars and Calendar events.\nThis lets you provide the user with additional relevant information, automate\ntasks, and connect third-party systems to Google Calendar.\n\nWhen building an add-on interface for Google Calendar, you can provide a\n[homepage](/workspace/add-ons/concepts/homepages). You can use the same\nhomepage for multiple hosts, or design a specific one for Google Calendar.\n\nYour add-on can also define an interface that appears when the user has\na Calendar event open.\n\nAccessing the add-on UI\n-----------------------\n\nDepending on how it's opened, a Google Workspace add-on can define a homepage interface, a Google Calendar event interface, an attachment selection interface, or all three:\n\n- If a user clicks the add-on icon while in a calendar view, the add-on executes the corresponding [`calendar.homepageTrigger`](/apps-script/manifest/calendar-addons#Calendar.FIELDS.homepageTrigger) function (if present). This function builds and returns a homepage card to Calendar for display. If no [`calendar.homepageTrigger`](/apps-script/manifest/calendar-addons#Calendar.FIELDS.homepageTrigger) function is defined, a generic homepage card is displayed instead.\n- If the user opens a Calendar event and then clicks the add-on icon, or the add-on is open when the user opens an event, the add-on executes the corresponding [`eventOpenTrigger`](/apps-script/manifest/calendar-addons#Calendar.FIELDS.eventOpenTrigger) function (if present). This function builds the add-on's Calendar event interface and returns to Google Calendar for display.\n- If the add-on defines an [`eventAttachmentTrigger`](/apps-script/manifest/calendar-addons#Calendar.FIELDS.eventAttachmentTrigger) function, the add-on appears as an attachment provider when the user clicks **Add attachment** while editing a Calendar event. When the add-on is selected, the [`eventAttachmentTrigger`](/apps-script/manifest/calendar-addons#Calendar.FIELDS.eventAttachmentTrigger) function builds the add-on's attachment selection interface and returns it to Google Calendar for display.\n\nBuilding the add-on Calendar interface\n--------------------------------------\n\nYou can extend Google Calendar with a\nGoogle Workspace add-on by following these steps:\n\n1. Decide whether you want your add-on to have a Calendar-specific [homepage](/workspace/add-ons/concepts/homepages). Also decide if you want to provide a custom interface while the user is editing Calendar events.\n2. Add the appropriate [`addOns.common`](/apps-script/manifest/addons#AddOns.FIELDS.common) and [`addOns.calendar`](/apps-script/manifest/addons#AddOns.FIELDS.calendar) fields to the add-on script project [manifest](/workspace/add-ons/concepts/workspace-manifests), including any [scopes](/workspace/add-ons/concepts/workspace-scopes#calendar_scopes) required.\n3. If you are providing a Calendar-specific [homepage](/workspace/add-ons/concepts/homepages), implement the [`calendar.homepageTrigger`](/apps-script/manifest/calendar-addons#Calendar.FIELDS.homepageTrigger) function to build this interface. You can also choose to use the [`common.homepageTrigger`](/apps-script/manifest/addons#Common.FIELDS.homepageTrigger) interface for multiple Google Workspace hosts.\n4. If you are providing a Calendar event interface, you must implement a [`calendar.eventOpenTrigger`](/apps-script/manifest/calendar-addons#Calendar.FIELDS.eventOpenTrigger) function to build this interface. See [Extending the Calendar event interface](#extending_the_calendar_event_interface) for details.\n5. Implement the associated callback functions needed to respond to the user's UI interactions, such as button clicks.\n\n### Calendar homepages\n\nGoogle Calendar supports displaying Google Workspace add-on [homepages](/workspace/add-ons/concepts/homepages).\nTo show your add-on's common homepage in Google Calendar, simply make sure there\nis an [`addOns.calendar`](/apps-script/manifest/addons#AddOns.FIELDS.calendar)\nfield in the add-on's manifest.\n\nAlternatively, add a\n[`calendar.homepageTrigger`](/apps-script/manifest/calendar-addons#Calendar.FIELDS.homepageTrigger)\nto the add-on manifest to provide a Calendar-specific homepage.\n\nIn either case, you must provide the name of a homepage trigger function in your\nadd-on's script project. This function is automatically called to build the\nGoogle Calendar homepage when it is needed. You must implement this function to build\nand return a single\n[`Card`](/apps-script/reference/card-service/card) or an array of\n[`Card`](/apps-script/reference/card-service/card)\nobjects that make up the homepage. The homepage trigger function is passed an\n[event object](/workspace/add-ons/concepts/event-objects)\nas a parameter that contains some general information such as the client's\nplatform. You can use the event object data to tailor the construction of the\nhomepage.\n\n### Extending the Calendar event interface\n\nGoogle Calendar relies on a contextual trigger to determine what interface\n(if any) to display when the user edits a Calendar event. When the trigger\nfires, it executes the contextual trigger function specified by the\n[`calendar.eventOpenTrigger`](/apps-script/manifest/calendar-addons#Calendar.FIELDS.eventOpenTrigger)\nfield in the add-on [manifest](/workspace/add-ons/concepts/workspace-manifests).\n\nYou must implement the function named in the\n[`calendar.eventOpenTrigger`](/apps-script/manifest/calendar-addons#Calendar.FIELDS.eventOpenTrigger)\nfield. This function accepts an [event object](#calendar_event_objects) as an\nargument and must return either a single\n[`Card`](/apps-script/reference/card-service/card) object or an array of\n[`Card`](/apps-script/reference/card-service/card) objects for Calendar to\ndisplay while the user has the event open.\n\n### Event objects\n\nAn [event object](/workspace/add-ons/concepts/event-objects) is created and\npassed to the\n[`calendar.eventOpenTrigger`](/apps-script/manifest/calendar-addons#Calendar.FIELDS.eventOpenTrigger)\ncontextual trigger function when a user opens\na Calendar event. The trigger function can use the information in this event\nobject to determine how to construct add-on cards or control the add-on\nbehavior. Event objects are also created and passed to\n[`homepageTrigger`](/apps-script/manifest/calendar-addons#Calendar.FIELDS.homepageTrigger)\nfunctions when an add-on is first opened, and when the user clicks or selects\ninteractive widgets.\n| **Note:** The term \"event\" in \"event object\" refers to an action taken by the user in the add-on UI and its associated response, not a Calendar event. To keep the distinction clear, events in Calendar are always referred to as \"Calendar events\" in this documentation.\n\nThe full structure of event objects is described in\n[Event objects](/workspace/add-ons/concepts/event-objects).\nWhen Calendar is the acting host app of the add-on, contextual trigger and\nwidget interaction event objects include the\n[Calendar event object](/workspace/add-ons/concepts/event-objects#calendar_event_object)\nfield that carries Calendar-specific client information.\n\n### Updating Calendar events\n\nIn addition to the contextual\n[`calendar.eventOpenTrigger`](/apps-script/manifest/calendar-addons#Calendar.FIELDS.eventOpenTrigger)\nthat fires when a user opens\na Calendar event for editing, you can also define an\n[`calendar.eventUpdateTrigger`](/apps-script/manifest/calendar-addons#Calendar.FIELDS.eventUpdateTrigger)\nthat fires when the user updates and saves a Calendar event. This trigger only\nfires if the user makes one or more of the following edits:\n\n- Adds one or more attendees.\n- Removes one or more attendees.\n- Adds or switches to a different conferencing solution.\n\nWhen this trigger fires, it executes the\ntrigger function specified by the\n[`calendar.eventUpdateTrigger`](/apps-script/manifest/calendar-addons#Calendar.FIELDS.eventUpdateTrigger)\nmanifest field. The function is executed before the Calendar event edit is\nsaved.\n\nThe [`calendar.eventUpdateTrigger`](/apps-script/manifest/calendar-addons#Calendar.FIELDS.eventUpdateTrigger)\nis typically used to do one or more of the following:\n\n- Update the add-on's Calendar event interface in response to user changes to the Calendar event.\n- Sync Calendar event data with a third-party system, such as a conferencing system that is connected to Google Calendar.\n\nIf you need your add-on to make adjustments to a Calendar event's data (such\nas its attendee list), you must set the add-on\n[`calendar.currentEventAccess`](/apps-script/manifest/calendar-addons#Calendar.FIELDS.currentEventAccess)\nmanifest field to `WRITE` or `READ_WRITE`. This also\nrequires the add-on to have the\n`https://www.googleapis.com/auth/calendar.addons.current.event.write`\n[scope](/workspace/add-ons/concepts/workspace-scopes#calendar_scopes).\n\nAdding conferencing solutions\n-----------------------------\n\n| **Note:** Adding conference solutions is only of use to developers that want to integrate a third-party conference system they maintain into Google Calendar. This functionality was previously released in beta as *Calendar conferencing add-ons*, but now is available in Google Workspace add-ons.\n\n[Conferencing solutions](/workspace/add-ons/calendar/conferencing/overview#conference_solutions)\nrepresent a third-party conference options that users can attach to\nGoogle Calendar events. The\n[Third-party conferencing overview](/workspace/add-ons/calendar/conferencing/overview)\ndocumentation provides details on how to build an add-on that adds new\nconferencing solutions. It isn't necessary to build a UI for this type of\nextension; added solutions simply appear as options in the drop-down menu of\nthe Google Calendar event UI."]]