Google Directory and Google Calendar connector specifications

Integrate with Google Directory to share employee contact information with your entire organization on any device, intranet, or messenger. Integrate with Google Calendar to manage calendar events.

Version details

Citrix microapps supports the latest G Suite APIs.

Endpoints

Note:

Custom endpoints are not supported.

Google Directory

https://developers.google.com/admin-sdk/directory/

https://www.googleapis.com/admin/directory/v1

/users
/groups

Google Calendar

https://developers.google.com/calendar/overview/

https://www.googleapis.com/admin/directory/v1

/users
/resources
/calendar
/events

Service Actions

Google Directory

  • Create User - Create a new user (Admin)
  • Update User - Update an existing user
  • Delete User - Delete an existing user (Admin)
  • Create event - Create a one-time event. We can create an event to any calendar (even personal) to which the account (used to set up the connector) has access
  • Create recurring event - Create a recurring event
  • Add Attendee - Book a meeting room / Add attendee. For the selected event, you can book a resource - room or add an attendee
  • Load Specific Calendar Events - Loads calendar events

Key Entities

The following are the main business entities that this connector addresses:

Google Directory

  • User
  • Group

Google Calendar

  • Attachments
  • Attendees
  • Buildings
  • Calendars
  • Events
  • Rooms
  • Room Features
  • Room Availability

Entities with Attributes

The following is a full list of entities and their attributes (Google Directory v.0.6.0):

  • user_id: STRING(250), FK(user.id)
  • group_id: STRING(250), FK(group.id)
  • value: STRING(100), PK

group

  • id: STRING(250), PK
  • name: STRING(250)
  • etag: STRING(250)
  • direct_members_count: LONG
  • description: STRING(250)
  • admin_created: BOOLEAN
  • email: STRING(250)

member

  • sapho_id: STRING(100), PK
  • id: STRING(250)
  • etag: STRING(250)
  • role: STRING(100)
  • type: STRING(100)
  • status: STRING(100)
  • email: STRING(250)
  • group_id: STRING(250), FK(group.id)
  • group_member_id: STRING(250), FK(group.id)
  • user_member_id: STRING(250), FK(user.id)

organization_unit

  • org_unit_id: STRING(250), PK
  • etag: STRING(250)
  • name: STRING(250)
  • description: STRING(250)
  • org_unit_path: STRING(250)
  • parent_org_unit_path: STRING(250)
  • parent_org_unit_id: STRING(250), FK(organization_unit.org_unit_id)
  • block_inheritance: BOOLEAN

user

  • id: STRING(250), PK
  • e_tag: STRING(250)
  • given_name: STRING(100)
  • surname: STRING(100)
  • full_name: STRING(100)
  • email: STRING(100)
  • photo_url: STRING(500)
  • admin: BOOLEAN
  • delegated_admin: BOOLEAN
  • last_login_time: DATETIME
  • creation_time: DATETIME
  • deletion_time: DATETIME
  • agreed_to_terms: BOOLEAN
  • suspended: BOOLEAN
  • suspension_reason: STRING(100)
  • chng_pswd_at_next_login: BOOLEAN
  • ip_whitelisted: BOOLEAN
  • thumbnail_photo_etag: STRING(500)
  • customer_id: STRING(100)
  • org_unit_path: STRING(100), FK(organization_unit.org_unit_path)
  • mailbox_setup: BOOLEAN
  • enforced_in_2_sv: BOOLEAN
  • enrolled_in_2_sv: BOOLEAN
  • incl_in_glob_addr_list: BOOLEAN
  • gender_address_me_as: STRING(100)
  • gender_custom_gender: STRING(100)
  • gender_type: STRING(100)
  • note_value: STRING(100)
  • note_content_type: STRING(100)
  • phone: STRING(50)
  • title: STRING(100)
  • location: STRING(100)
  • relation: STRING(100)
  • department: STRING(100)
  • photo: BINARY
  • photo_mime_type: STRING(100)

user_address

  • id: STRING(100), PK
  • index: INTEGER(x32)
  • user_id: STRING(250), FK(user.id)
  • type: STRING(100)
  • custom_type: STRING(250)
  • source_is_structured: BOOLEAN
  • formatted: STRING(250)
  • po_box: STRING(100)
  • extended_address: STRING(250)
  • street_address: STRING(250)
  • locality: STRING(100)
  • region: STRING(100)
  • postal_code: STRING(100)
  • country: STRING(100)
  • primary: BOOLEAN
  • country_code: STRING(100)

user_email

  • id: STRING(100), PK
  • index: INTEGER(x32)
  • user_id: STRING(250), FK(user.id)
  • address: STRING(100)
  • type: STRING(100)
  • custom_type: STRING(100)
  • primary: BOOLEAN

user_external_id

  • id: STRING(100), PK
  • index: INTEGER(x32)
  • user_id: STRING(250), FK(user.id)
  • type: STRING(100)
  • custom_type: STRING(100)
  • value: STRING(100)

user_imaccount

  • id: STRING(100), PK
  • index: INTEGER(x32)
  • user_id: STRING(250), FK(user.id)
  • type: STRING(100)
  • custom_type: STRING(100)
  • primary: BOOLEAN
  • protocol: STRING(100)
  • custom_protocol: STRING(100)
  • im: STRING(100)

user_organization

  • id: STRING(100), PK
  • index: INTEGER(x32)
  • user_id: STRING(250), FK(user.id)
  • name: STRING(100)
  • title: STRING(100)
  • primary: BOOLEAN
  • type: STRING(100)
  • custom_type: STRING(100)
  • department: STRING(100)
  • symbol: STRING(100)
  • location: STRING(100)
  • description: STRING(100)
  • domain: STRING(100)
  • cost_center: STRING(100)
  • full_time_equivalent: INTEGER(x32)

user_phone

  • id: STRING(100), PK
  • index: INTEGER(x32)
  • user_id: STRING(250), FK(user.id)
  • type: STRING(100)
  • custom_type: STRING(100)
  • value: STRING(100)
  • primary: BOOLEAN

user_relation

  • id: STRING(100), PK
  • index: INTEGER(x32)
  • user_id: STRING(250), FK(user.id)
  • type: STRING(100)
  • custom_type: STRING(100)
  • value: STRING(100)

user_website

  • id: STRING(100), PK
  • index: INTEGER(x32)
  • user_id: STRING(250), FK(user.id)
  • value: STRING(100)
  • type: STRING(100)
  • custom_type: STRING(100)
  • primary: BOOLEAN

The following is a full list of entities and their attributes (Google Calendar v.0.1.0):

attachment (List of Attachments to a calendar event)

  • generated_attachment_id: STRING(128), PK
  • file_id: STRING(100)
  • generated_event_id: STRING(128), FK(event.generated_event_id)
  • file_url: STRING(1024)
  • icon_link: STRING(1024)
  • mime_type: STRING(250)
  • title: STRING(250)

attendee (List of Attendees to a calendar event)

  • generated_id: STRING(128), PK
  • attendee_id: STRING(100)
  • generated_event_id: STRING(128), FK(event.generated_event_id)
  • display_name: STRING(250)
  • email: STRING(250)
  • comment: STRING(2000)
  • organizer: BOOLEAN
  • optional: BOOLEAN
  • resource: BOOLEAN
  • response_status: STRING(250)

building (List of Buildings)

  • etag: STRING(250)
  • building_id: STRING(100), PK
  • building_name: STRING(100)
  • description: STRING(250)
  • latitude: FLOAT(prec=10, scale=4)
  • longitude: FLOAT(prec=10, scale=4)

calendar (A collection of all existing calendars)

  • calendar_id: STRING(191), PK
  • summary: STRING(2000)
  • description: STRING(2000)
  • location: STRING(2000)
  • time_zone: STRING(100)

calendar_acl (Calendars’ Access Control List)

  • id: STRING(128), PK
  • acl_id: STRING(100)
  • calendar_id: STRING(191), FK(calendar.calendar_id)
  • room_calendar_id: STRING(191), FK(room.resource_email)
  • resource: BOOLEAN
  • etag: STRING(250)
  • scope_type: STRING(64)
  • scope_value: STRING(100)
  • role: STRING(64)

event (List of Events from a calendar)

  • generated_event_id: STRING(128), PK
  • calendar_id: STRING(191), FK(calendar.calendar_id)
  • user_calendar_id: STRING(191), FK(user_calendar.calendar_id)
  • google_event_id: STRING(1024)
  • i_cal_uid: STRING(250)
  • name: STRING(250)
  • description: STRING(-1)
  • color_id: INTEGER(x32)
  • status: STRING(250)
  • created: DATETIME
  • updated: DATETIME
  • all_day_event: BOOLEAN
  • start_time_original: DATETIME
  • start_time: DATETIME
  • end_time: DATETIME
  • location: STRING(1024)
  • visibility: STRING(250)
  • html_link: STRING(1024)
  • hangout_link: STRING(1024)
  • creator_id: STRING(250)
  • creator_display_name: STRING(250)
  • creator_email: STRING(250)
  • organizer_id: STRING(250)
  • organizer_display_name: STRING(250)
  • organizer_email: STRING(250)
  • multi_day_event: BOOLEAN

room (List of Rooms)

  • resource_id: STRING(100), PK
  • etag: STRING(250)
  • building_id: STRING(100), FK(building.building_id)
  • resource_name: STRING(100)
  • generated_resource_name: STRING(100)
  • resource_type: STRING(100)
  • resource_description: STRING(250)
  • resource_email: STRING(191), FK(calendar.calendar_id)
  • capacity: INTEGER(x32)
  • floor_name: STRING(100)
  • floor_section: STRING(100)
  • resource_category: STRING(100)
  • user_visible_description: STRING(250)
  • feature_list: STRING(2000)

room_availability (List of availability intervals for room calendars)

  • id: STRING(128), PK
  • room_id: STRING(100), FK(room.resource_id)
  • start_time: DATETIME
  • end_time: DATETIME

room_feature (List of Room Features)

  • id: STRING(128), PK
  • room_id: STRING(100), FK(room.resource_id)
  • name: STRING(100)
  • etag: STRING(250)

sync_token (Internal use sync token storage table)

  • token_key: STRING(191), PK
  • token: STRING(128)

user_calendar (The collection of calendars in the user’s calendar list)

  • id: STRING(128), PK
  • user_id: STRING(100)
  • calendar_id: STRING(191), FK(calendar.calendar_id)
  • etag: STRING(250)
  • summary: STRING(2000)
  • description: STRING(2000)
  • location: STRING(2000)
  • time_zone: STRING(100)
  • summary_override: STRING(2000)
  • color_id: STRING(100)
  • background_color: STRING(100)
  • foreground_color: STRING(100)
  • hidden: BOOLEAN
  • selected: BOOLEAN
  • primary: BOOLEAN
  • access_role: STRING(250)
Google Directory and Google Calendar connector specifications