calendlyr 0.6.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (209) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +7 -8
  3. data/CHANGELOG.md +2 -2
  4. data/README.md +46 -127
  5. data/calendlyr.gemspec +0 -1
  6. data/docs/resources/activity_log/list_activity_log_entries.md +34 -0
  7. data/docs/resources/availabilities/availability_rule.md +5 -0
  8. data/docs/resources/availabilities/user_availability_schedule.md +50 -0
  9. data/docs/resources/availabilities/user_busy_time.md +28 -0
  10. data/docs/resources/data_compliance.md +19 -0
  11. data/docs/resources/event_types/available_time.md +21 -0
  12. data/docs/resources/event_types/event_type.md +55 -0
  13. data/docs/resources/event_types/membership.md +29 -0
  14. data/docs/resources/event_types/profile.md +13 -0
  15. data/docs/resources/events/cancellation.md +18 -0
  16. data/docs/resources/events/event.md +62 -0
  17. data/docs/resources/events/guest.md +5 -0
  18. data/docs/resources/events/invitee.md +28 -0
  19. data/docs/resources/events/invitee_no_show.md +49 -0
  20. data/docs/resources/groups/group.md +56 -0
  21. data/docs/resources/groups/relationship.md +54 -0
  22. data/docs/resources/organizations/invitation.md +65 -0
  23. data/docs/resources/organizations/membership.md +58 -0
  24. data/docs/resources/organizations/organization.md +149 -0
  25. data/docs/resources/pagination.md +21 -0
  26. data/docs/resources/routing_forms/routing_form.md +48 -0
  27. data/docs/resources/routing_forms/submission.md +40 -0
  28. data/docs/resources/scheduling_link.md +26 -0
  29. data/docs/resources/share.md +28 -0
  30. data/docs/resources/user.md +111 -0
  31. data/docs/resources/webhooks/invitee_payload.md +42 -0
  32. data/docs/resources/webhooks/payload.md +5 -0
  33. data/docs/resources/webhooks/subscription.md +96 -0
  34. data/lib/calendlyr/client.rb +18 -2
  35. data/lib/calendlyr/collection.rb +2 -2
  36. data/lib/calendlyr/error.rb +42 -1
  37. data/lib/calendlyr/object.rb +6 -2
  38. data/lib/calendlyr/objects/activity_log.rb +11 -0
  39. data/lib/calendlyr/objects/availabilities/rule.rb +4 -0
  40. data/lib/calendlyr/objects/availabilities/user_busy_time.rb +7 -0
  41. data/lib/calendlyr/objects/availabilities/user_schedule.rb +13 -0
  42. data/lib/calendlyr/objects/event.rb +11 -0
  43. data/lib/calendlyr/objects/event_type.rb +15 -0
  44. data/lib/calendlyr/objects/event_types/available_time.rb +4 -0
  45. data/lib/calendlyr/objects/event_types/membership.rb +11 -0
  46. data/lib/calendlyr/objects/event_types/profile.rb +7 -0
  47. data/lib/calendlyr/objects/events/cancellation.rb +4 -0
  48. data/lib/calendlyr/objects/events/guest.rb +4 -0
  49. data/lib/calendlyr/objects/events/invitee.rb +11 -0
  50. data/lib/calendlyr/objects/events/invitee_no_show.rb +7 -0
  51. data/lib/calendlyr/objects/group.rb +15 -0
  52. data/lib/calendlyr/objects/groups/relationship.rb +15 -0
  53. data/lib/calendlyr/objects/organization.rb +67 -0
  54. data/lib/calendlyr/objects/organizations/invitation.rb +15 -0
  55. data/lib/calendlyr/objects/organizations/membership.rb +15 -0
  56. data/lib/calendlyr/objects/routing_form.rb +11 -0
  57. data/lib/calendlyr/objects/routing_forms/submission.rb +7 -0
  58. data/lib/calendlyr/objects/scheduling_link.rb +9 -0
  59. data/lib/calendlyr/objects/share.rb +9 -0
  60. data/lib/calendlyr/objects/user.rb +31 -0
  61. data/lib/calendlyr/objects/webhooks/invitee_payload.rb +15 -0
  62. data/lib/calendlyr/objects/webhooks/payload.rb +4 -0
  63. data/lib/calendlyr/objects/webhooks/subscription.rb +23 -0
  64. data/lib/calendlyr/resource.rb +2 -2
  65. data/lib/calendlyr/resources/availability.rb +19 -0
  66. data/lib/calendlyr/resources/data_compliance.rb +4 -0
  67. data/lib/calendlyr/resources/event.rb +40 -0
  68. data/lib/calendlyr/resources/event_type.rb +28 -0
  69. data/lib/calendlyr/resources/group.rb +22 -0
  70. data/lib/calendlyr/resources/organization.rb +40 -0
  71. data/lib/calendlyr/resources/outgoing_communication.rb +8 -0
  72. data/lib/calendlyr/resources/routing_form.rb +22 -0
  73. data/lib/calendlyr/resources/{scheduling_links.rb → scheduling_link.rb} +2 -2
  74. data/lib/calendlyr/resources/share.rb +8 -0
  75. data/lib/calendlyr/resources/user.rb +11 -0
  76. data/lib/calendlyr/resources/webhook.rb +25 -0
  77. data/lib/calendlyr/version.rb +1 -1
  78. data/lib/calendlyr.rb +70 -18
  79. data/test/calendlyr/objects/activity_log_test.rb +26 -0
  80. data/test/calendlyr/objects/availabilities/rule_test.rb +24 -0
  81. data/test/calendlyr/objects/availabilities/user_busy_time_test.rb +21 -0
  82. data/test/calendlyr/objects/availabilities/user_schedule_test.rb +26 -0
  83. data/test/calendlyr/objects/event_test.rb +32 -0
  84. data/test/calendlyr/objects/event_type_test.rb +43 -0
  85. data/test/calendlyr/objects/event_types/available_time_test.rb +20 -0
  86. data/test/calendlyr/objects/event_types/membership_test.rb +32 -0
  87. data/test/calendlyr/objects/event_types/profile_test.rb +23 -0
  88. data/test/calendlyr/objects/events/cancellation_test.rb +16 -0
  89. data/test/calendlyr/objects/events/guest_test.rb +16 -0
  90. data/test/calendlyr/objects/events/invitee_no_show_test.rb +23 -0
  91. data/test/calendlyr/objects/events/invitee_test.rb +35 -0
  92. data/test/calendlyr/objects/group_test.rb +40 -0
  93. data/test/calendlyr/objects/groups/relationship_test.rb +43 -0
  94. data/test/calendlyr/objects/organization_test.rb +157 -0
  95. data/test/calendlyr/objects/organizations/invitation_test.rb +34 -0
  96. data/test/calendlyr/objects/organizations/membership_test.rb +38 -0
  97. data/test/calendlyr/objects/routing_form_test.rb +26 -0
  98. data/test/calendlyr/objects/routing_forms/submission_test.rb +22 -0
  99. data/test/calendlyr/objects/scheduling_link_test.rb +17 -0
  100. data/test/calendlyr/objects/share_test.rb +19 -0
  101. data/test/calendlyr/objects/user_test.rb +81 -0
  102. data/test/calendlyr/objects/webhooks/invite_payload_test.rb +42 -0
  103. data/test/calendlyr/objects/webhooks/payload_test.rb +16 -0
  104. data/test/calendlyr/objects/webhooks/subscription_test.rb +42 -0
  105. data/test/calendlyr/resource_test.rb +12 -3
  106. data/test/calendlyr/resources/availabilities/user_busy_times_test.rb +31 -0
  107. data/test/calendlyr/resources/availabilities/user_schedules_test.rb +37 -0
  108. data/test/calendlyr/resources/data_compliance_test.rb +11 -0
  109. data/test/calendlyr/resources/event_types/membership_test.rb +22 -0
  110. data/test/calendlyr/resources/event_types_test.rb +55 -10
  111. data/test/calendlyr/resources/events/invitee_test.rb +31 -0
  112. data/test/calendlyr/resources/events_test.rb +22 -10
  113. data/test/calendlyr/resources/groups_test.rb +26 -0
  114. data/test/calendlyr/resources/organizations_test.rb +36 -100
  115. data/test/calendlyr/resources/outgoing_communications_test.rb +16 -0
  116. data/test/calendlyr/resources/scheduling_links_test.rb +1 -1
  117. data/test/calendlyr/resources/users_test.rb +9 -33
  118. data/test/calendlyr/resources/webhooks_test.rb +22 -13
  119. data/test/fixtures/activity_log/list.json +38 -0
  120. data/test/fixtures/availabilities/user_busy_times_list.json +39 -0
  121. data/test/fixtures/availabilities/user_schedules_list.json +93 -0
  122. data/test/fixtures/availabilities/user_schedules_retrieve.json +22 -0
  123. data/test/fixtures/data_compliance/delete_scheduled_event_data.json +1 -0
  124. data/test/fixtures/event_invitees/list.json +6 -6
  125. data/test/fixtures/event_invitees/retrieve.json +3 -3
  126. data/test/fixtures/event_type_available_times/list.json +22 -0
  127. data/test/fixtures/event_type_hosts/list.json +76 -0
  128. data/test/fixtures/event_types/create_one_off.json +45 -0
  129. data/test/fixtures/event_types/list.json +18 -4
  130. data/test/fixtures/event_types/retrieve.json +13 -2
  131. data/test/fixtures/events/cancel_invitee.json +8 -0
  132. data/test/fixtures/events/create_invitee_no_show.json +7 -0
  133. data/test/fixtures/events/delete_invitee_no_show.json +1 -0
  134. data/test/fixtures/events/retrieve_invitee_no_show.json +7 -0
  135. data/test/fixtures/group_relationships/list.json +83 -0
  136. data/test/fixtures/group_relationships/retrieve.json +29 -0
  137. data/test/fixtures/groups/list.json +19 -0
  138. data/test/fixtures/groups/retrieve.json +9 -0
  139. data/test/fixtures/objects/activity_log.json +24 -0
  140. data/test/fixtures/objects/availabilities/rule.json +10 -0
  141. data/test/fixtures/objects/availabilities/user_busy_time.json +10 -0
  142. data/test/fixtures/objects/availabilities/user_schedule.json +69 -0
  143. data/test/fixtures/objects/availability_rule.json +10 -0
  144. data/test/fixtures/objects/event.json +36 -0
  145. data/test/fixtures/objects/event_type.json +91 -0
  146. data/test/fixtures/objects/event_type_host.json +65 -0
  147. data/test/fixtures/objects/event_types/available_time.json +6 -0
  148. data/test/fixtures/objects/event_types/membership.json +65 -0
  149. data/test/fixtures/objects/event_types/profile.json +5 -0
  150. data/test/fixtures/objects/events/cancellation.json +6 -0
  151. data/test/fixtures/objects/events/guest.json +5 -0
  152. data/test/fixtures/objects/events/invitee.json +46 -0
  153. data/test/fixtures/objects/events/invitee_no_show.json +5 -0
  154. data/test/fixtures/objects/group.json +7 -0
  155. data/test/fixtures/objects/groups/relationship.json +27 -0
  156. data/test/fixtures/objects/organization.json +8 -0
  157. data/test/fixtures/objects/organizations/invitation.json +10 -0
  158. data/test/fixtures/objects/organizations/membership.json +18 -0
  159. data/test/fixtures/objects/routing_form.json +28 -0
  160. data/test/fixtures/objects/routing_forms/submission.json +27 -0
  161. data/test/fixtures/objects/scheduling_links/event_type.json +5 -0
  162. data/test/fixtures/objects/share.json +43 -0
  163. data/test/fixtures/objects/user.json +13 -0
  164. data/test/fixtures/objects/webhooks/invite_payload.json +83 -0
  165. data/test/fixtures/objects/webhooks/payload.json +66 -0
  166. data/test/fixtures/objects/webhooks/subscription.json +15 -0
  167. data/test/fixtures/organization_memberships/list.json +29 -0
  168. data/test/fixtures/organization_memberships/retrieve.json +20 -0
  169. data/test/fixtures/organizations/list_invitations.json +4 -4
  170. data/test/fixtures/organizations/list_memberships.json +12 -9
  171. data/test/fixtures/organizations/retrieve_invitation.json +3 -3
  172. data/test/fixtures/organizations/retrieve_membership.json +3 -3
  173. data/test/fixtures/outgoing_communications/list.json +26 -0
  174. data/test/fixtures/resources/401.json +2 -2
  175. data/test/fixtures/resources/403.json +1 -1
  176. data/test/fixtures/resources/403_payment_required.json +4 -0
  177. data/test/fixtures/resources/424.json +4 -0
  178. data/test/fixtures/routing_forms/list.json +39 -0
  179. data/test/fixtures/routing_forms/list_routing_form_submission.json +38 -0
  180. data/test/fixtures/routing_forms/retrieve.json +30 -0
  181. data/test/fixtures/routing_forms/retrieve_routing_form_submission.json +29 -0
  182. data/test/fixtures/shares/create.json +45 -0
  183. data/test/fixtures/user_availability_schedules/list.json +93 -0
  184. data/test/fixtures/user_availability_schedules/retrieve.json +22 -0
  185. data/test/fixtures/user_busy_times/list.json +39 -0
  186. data/test/fixtures/users/reload.json +5 -4
  187. data/test/fixtures/users/retrieve.json +5 -4
  188. data/test/fixtures/webhooks/create.json +4 -4
  189. data/test/fixtures/webhooks/list.json +4 -4
  190. data/test/fixtures/webhooks/retrieve.json +4 -4
  191. data/test/fixtures/webhooks/sample.json +105 -0
  192. metadata +159 -62
  193. data/lib/calendlyr/objects/event_invitees.rb +0 -4
  194. data/lib/calendlyr/objects/event_types.rb +0 -4
  195. data/lib/calendlyr/objects/events.rb +0 -4
  196. data/lib/calendlyr/objects/invitations.rb +0 -11
  197. data/lib/calendlyr/objects/memberships.rb +0 -7
  198. data/lib/calendlyr/objects/organizations.rb +0 -35
  199. data/lib/calendlyr/objects/scheduling_links.rb +0 -4
  200. data/lib/calendlyr/objects/users.rb +0 -19
  201. data/lib/calendlyr/objects/webhooks.rb +0 -11
  202. data/lib/calendlyr/resources/event_invitees.rb +0 -12
  203. data/lib/calendlyr/resources/event_types.rb +0 -12
  204. data/lib/calendlyr/resources/events.rb +0 -12
  205. data/lib/calendlyr/resources/organizations.rb +0 -33
  206. data/lib/calendlyr/resources/users.rb +0 -11
  207. data/lib/calendlyr/resources/webhooks.rb +0 -21
  208. data/test/calendlyr/resources/event_invitees_test.rb +0 -29
  209. data/test/fixtures/resources/409.json +0 -4
@@ -4,13 +4,13 @@ require "test_helper"
4
4
 
5
5
  class UsersResourceTest < Minitest::Test
6
6
  def test_retrieve
7
- user_uuid = "AAAAAAAAAAAAAAAA"
7
+ user_uuid = "abc123"
8
8
  response = {body: fixture_file("users/retrieve"), status: 200}
9
9
  stub(path: "users/#{user_uuid}", response: response)
10
- user = client.users.retrieve(user_uuid: user_uuid)
10
+ user = client.users.retrieve(uuid: user_uuid)
11
11
 
12
12
  assert_equal Calendlyr::User, user.class
13
- assert_equal "https://api.calendly.com/users/AAAAAAAAAAAAAAAA", user.uri
13
+ assert_equal "https://api.calendly.com/users/abc123", user.uri
14
14
  assert_equal "John Doe", user.name
15
15
  assert_equal "acmesales", user.slug
16
16
  assert_equal "test@example.com", user.email
@@ -22,7 +22,7 @@ class UsersResourceTest < Minitest::Test
22
22
  me = client.me
23
23
 
24
24
  assert_equal Calendlyr::User, me.class
25
- assert_equal "https://api.calendly.com/users/AAAAAAAAAAAAAAAA", me.uri
25
+ assert_equal "https://api.calendly.com/users/abc123", me.uri
26
26
  assert_equal "John Doe", me.name
27
27
  assert_equal "acmesales", me.slug
28
28
  assert_equal "test@example.com", me.email
@@ -49,43 +49,19 @@ class UsersResourceTest < Minitest::Test
49
49
  organization = client.organization
50
50
 
51
51
  assert_equal Calendlyr::Organization, organization.class
52
- assert_equal "https://api.calendly.com/organizations/AAAAAAAAAAAAAAAA", organization.uri
53
- assert_equal "AAAAAAAAAAAAAAAA", organization.uuid
54
- end
55
-
56
- def test_event_types
57
- me = client.me
58
-
59
- stub(path: "event_types?user=#{me.uri}&organization=#{me.organization.uri}", response: {body: fixture_file("event_types/list"), status: 200})
60
- event_types = client.me.event_types
61
-
62
- assert_equal Calendlyr::Collection, event_types.class
63
- assert_equal Calendlyr::EventType, event_types.data.first.class
64
- assert_equal 1, event_types.count
65
- assert_equal "sNjq4TvMDfUHEl7zHRR0k0E1PCEJWvdi", event_types.next_page_token
66
- end
67
-
68
- def test_events
69
- me = client.me
70
-
71
- stub(path: "scheduled_events?user=#{me.uri}&organization=#{me.organization.uri}", response: {body: fixture_file("events/list"), status: 200})
72
- events = client.me.events
73
-
74
- assert_equal Calendlyr::Collection, events.class
75
- assert_equal Calendlyr::Event, events.data.first.class
76
- assert_equal 1, events.count
77
- assert_equal "sNjq4TvMDfUHEl7zHRR0k0E1PCEJWvdi", events.next_page_token
52
+ assert_equal "https://api.calendly.com/organizations/abc123", organization.uri
53
+ assert_equal "abc123", organization.uuid
78
54
  end
79
55
 
80
56
  def test_memberships
81
57
  me = client.me
82
58
 
83
59
  stub(path: "organization_memberships?user=#{me.uri}&organization=#{me.organization.uri}", response: {body: fixture_file("organizations/list_memberships"), status: 200})
84
- memberships = client.me.memberships(organization_uri: me.organization.uri)
60
+ memberships = client.me.memberships(organization: me.organization.uri)
85
61
 
86
62
  assert_equal Calendlyr::Collection, memberships.class
87
- assert_equal Calendlyr::Membership, memberships.data.first.class
88
- assert_equal 1, memberships.count
63
+ assert_equal Calendlyr::Organizations::Membership, memberships.data.first.class
64
+ assert_equal 1, memberships.data.count
89
65
  assert_equal "sNjq4TvMDfUHEl7zHRR0k0E1PCEJWvdi", memberships.next_page_token
90
66
  end
91
67
  end
@@ -4,42 +4,51 @@ require "test_helper"
4
4
 
5
5
  class WebhooksResourceTest < Minitest::Test
6
6
  def test_list
7
- organization_uri = "https://api.calendly.com/organizations/AAAAAAAAAAAAAAAA"
7
+ organization_uri = "https://api.calendly.com/organizations/abc123"
8
8
  scope = "user"
9
9
  response = {body: fixture_file("webhooks/list"), status: 200}
10
10
  stub(path: "webhook_subscriptions?organization=#{organization_uri}&scope=#{scope}", response: response)
11
- webhooks = client.webhooks.list(organization_uri: organization_uri, scope: scope)
11
+ webhooks = client.webhooks.list(organization: organization_uri, scope: scope)
12
12
 
13
13
  assert_equal Calendlyr::Collection, webhooks.class
14
- assert_equal Calendlyr::Webhook, webhooks.data.first.class
15
- assert_equal 1, webhooks.count
14
+ assert_equal Calendlyr::Webhooks::Subscription, webhooks.data.first.class
15
+ assert_equal 1, webhooks.data.count
16
16
  assert_equal "sNjq4TvMDfUHEl7zHRR0k0E1PCEJWvdi", webhooks.next_page_token
17
17
  end
18
18
 
19
19
  def test_create
20
- body = {url: "https://blah.foo/bar", events: ["invitee.created"], organization: "https://api.calendly.com/organizations/AAAAAAAAAAAAAAAA", scope: "user", user: "https://api.calendly.com/users/AAAAAAAAAAAAAAAA"}
20
+ body = {url: "https://blah.foo/bar", events: ["invitee.created"], organization: "https://api.calendly.com/organizations/abc123", scope: "user", user: "https://api.calendly.com/users/abc123"}
21
21
  stub(method: :post, path: "webhook_subscriptions", body: body, response: {body: fixture_file("webhooks/create"), status: 201})
22
22
 
23
- assert client.webhooks.create(url: body[:url], events: body[:events], organization_uri: body[:organization], scope: body[:scope], user_uri: body[:user])
24
- assert client.organization.create_webhook(url: body[:url], events: body[:events], scope: body[:scope], user_uri: body[:user])
23
+ assert client.webhooks.create(**body)
24
+ assert client.organization.create_webhook(**body)
25
25
  end
26
26
 
27
27
  def test_retrieve
28
- webhook_uuid = "AAAAAAAAAAAAAAAA"
28
+ webhook_uuid = "abc123"
29
29
  stub(path: "webhook_subscriptions/#{webhook_uuid}", response: {body: fixture_file("webhooks/retrieve"), status: 200})
30
- stub(path: "users/AAAAAAAAAAAAAAAA", response: {body: fixture_file("users/retrieve"), status: 200})
30
+ stub(path: "users/abc123", response: {body: fixture_file("users/retrieve"), status: 200})
31
31
  webhook = client.webhooks.retrieve(webhook_uuid: webhook_uuid)
32
32
 
33
- assert_equal Calendlyr::Webhook, webhook.class
33
+ assert_equal Calendlyr::Webhooks::Subscription, webhook.class
34
34
  assert_equal "user", webhook.scope
35
- assert_equal webhook.associated_user, client.users.retrieve(user_uuid: "AAAAAAAAAAAAAAAA")
36
- assert_equal webhook.associated_organization, client.users.retrieve(user_uuid: "AAAAAAAAAAAAAAAA").organization
35
+ assert_equal webhook.associated_user, client.users.retrieve(uuid: "abc123")
36
+ assert_equal webhook.associated_organization, client.users.retrieve(uuid: "abc123").organization
37
+ assert_equal webhook.active?, true
37
38
  end
38
39
 
39
40
  def test_delete
40
- webhook_uuid = "AAAAAAAAAAAAAAAA"
41
+ webhook_uuid = "abc123"
41
42
  response = {body: fixture_file("webhooks/delete")}
42
43
  stub(method: :delete, path: "webhook_subscriptions/#{webhook_uuid}", response: response)
43
44
  assert client.webhooks.delete(webhook_uuid: webhook_uuid)
44
45
  end
46
+
47
+ def test_sample_webhook_data
48
+ stub(path: "sample_webhook_data?event=invitee.created&scope=organization&organization=https://api.calendly.com/organizations/abc123", response: {body: fixture_file("webhooks/sample"), status: 200})
49
+ webhook_data = client.webhooks.sample_webhook_data(event: "invitee.created", scope: "organization", organization: "https://api.calendly.com/organizations/abc123")
50
+
51
+ assert_equal Calendlyr::Object, webhook_data.class
52
+ assert_equal "invitee.created", webhook_data.event
53
+ end
45
54
  end
@@ -0,0 +1,38 @@
1
+ {
2
+ "collection": [
3
+ {
4
+ "occurred_at": "2020-01-02T03:04:05.678Z",
5
+ "uri": "https://api.calendly.com/activity_log_entries/ALFKJELNCLKSJDLKFJGELKJ",
6
+ "namespace": "User",
7
+ "action": "Add",
8
+ "actor": {
9
+ "uri": "https://api.calendly.com/users/SDLKJENFJKD123",
10
+ "type": "User",
11
+ "organization": {
12
+ "uri": "https://api.calendly.com/organizations/LKJENFLKE293847",
13
+ "role": "Owner"
14
+ },
15
+ "group": {
16
+ "uri": "https://api.calendly.com/groups/123987DJLKJEF",
17
+ "name": "Development",
18
+ "role": "Admin"
19
+ },
20
+ "display_name": "Test User",
21
+ "alternative_identifier": "testuser@example.com"
22
+ },
23
+ "fully_qualified_name": "User.Add",
24
+ "details": {},
25
+ "organization": "https://api.calendly.com/organizations/AAAAAAAAAAAAAAA"
26
+ }
27
+ ],
28
+ "pagination": {
29
+ "count": 20,
30
+ "next_page": "https://api.calendly.com/activity_log?page_token=sNjq4TvMDfUHEl7zHRR0k0E1PCEJWvdi",
31
+ "next_page_token": "sNjq4TvMDfUHEl7zHRR0k0E1PCEJWvdi",
32
+ "previous_page": "https://api.calendly.com/activity_log?page_token=dGhpcyBpcyBvbmx5IGFuIGV4YW1wbGUgc3RyaW5n",
33
+ "previous_page_token": "dGhpcyBpcyBvbmx5IGFuIGV4YW1wbGUgc3RyaW5n"
34
+ },
35
+ "last_event_time": "2020-01-02T03:04:05.678Z",
36
+ "total_count": 1,
37
+ "exceeds_max_total_count": false
38
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "collection": [
3
+ {
4
+ "type": "calendly",
5
+ "start_time": "2020-01-02T20:00:00.000000Z",
6
+ "end_time": "2020-01-02T20:30:00.000000Z",
7
+ "buffered_start_time": "2020-01-02T19:30:00.000000Z",
8
+ "buffered_end_time": "2020-01-02T21:00:00.000000Z",
9
+ "event": {
10
+ "uri": "https://api.calendly.com/scheduled_events/abc123"
11
+ }
12
+ },
13
+ {
14
+ "type": "calendly",
15
+ "start_time": "2020-01-05T20:00:00.000000Z",
16
+ "end_time": "2020-01-05T20:30:00.000000Z",
17
+ "buffered_start_time": "2020-01-05T19:30:00.000000Z",
18
+ "buffered_end_time": "2020-01-05T21:00:00.000000Z",
19
+ "event": {
20
+ "uri": "https://api.calendly.com/scheduled_events/abc12345"
21
+ }
22
+ },
23
+ {
24
+ "type": "reserved",
25
+ "start_time": "2020-01-07T17:00:00.000000Z",
26
+ "end_time": "2020-01-07T17:30:00.000000Z"
27
+ },
28
+ {
29
+ "type": "reserved",
30
+ "start_time": "2020-01-07T18:00:00.000000Z",
31
+ "end_time": "2020-01-07T18:30:00.000000Z"
32
+ },
33
+ {
34
+ "type": "external",
35
+ "start_time": "2020-01-07T20:00:00.000000Z",
36
+ "end_time": "2020-01-07T20:30:00.000000Z"
37
+ }
38
+ ]
39
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "collection": [
3
+ {
4
+ "uri": "https://api.calendly.com/user_availability_schedule/abc123",
5
+ "default": true,
6
+ "name": "Working Hours",
7
+ "user": "https://api.calendly.com/users/abc123",
8
+ "timezone": "America/New_York",
9
+ "rules": [
10
+ {
11
+ "type": "wday",
12
+ "intervals": [
13
+ {
14
+ "from": "08:30",
15
+ "to": "09:30"
16
+ }
17
+ ],
18
+ "wday": "sunday",
19
+ "date": "2022-12-31"
20
+ }
21
+ ]
22
+ },
23
+ {
24
+ "uri": "https://api.calendly.com/user_availability_schedule/abc456",
25
+ "default": false,
26
+ "name": "Evening Hours",
27
+ "user": "https://api.calendly.com/users/abc123",
28
+ "timezone": "America/New_York",
29
+ "rules": [
30
+ {
31
+ "type": "wday",
32
+ "intervals": [
33
+ {
34
+ "from": "08:30",
35
+ "to": "17:00"
36
+ }
37
+ ],
38
+ "wday": "monday"
39
+ },
40
+ {
41
+ "type": "wday",
42
+ "intervals": [
43
+ {
44
+ "from": "08:30",
45
+ "to": "17:00"
46
+ }
47
+ ],
48
+ "wday": "tuesday"
49
+ },
50
+ {
51
+ "type": "wday",
52
+ "intervals": [],
53
+ "wday": "wednesday"
54
+ },
55
+ {
56
+ "type": "wday",
57
+ "intervals": [
58
+ {
59
+ "from": "08:30",
60
+ "to": "17:00"
61
+ }
62
+ ],
63
+ "wday": "thursday"
64
+ },
65
+ {
66
+ "type": "wday",
67
+ "intervals": [
68
+ {
69
+ "from": "08:30",
70
+ "to": "17:00"
71
+ }
72
+ ],
73
+ "wday": "friday"
74
+ },
75
+ {
76
+ "type": "wday",
77
+ "intervals": [],
78
+ "wday": "saturday"
79
+ },
80
+ {
81
+ "type": "date",
82
+ "intervals": [
83
+ {
84
+ "from": "08:30",
85
+ "to": "09:30"
86
+ }
87
+ ],
88
+ "date": "2028-12-31"
89
+ }
90
+ ]
91
+ }
92
+ ]
93
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "resource": {
3
+ "uri": "https://api.calendly.com/user_availability_schedule/abc123",
4
+ "default": true,
5
+ "name": "Working Hours",
6
+ "user": "https://api.calendly.com/users/abc123",
7
+ "timezone": "America/New_York",
8
+ "rules": [
9
+ {
10
+ "type": "wday",
11
+ "intervals": [
12
+ {
13
+ "from": "08:30",
14
+ "to": "09:30"
15
+ }
16
+ ],
17
+ "wday": "sunday",
18
+ "date": "2022-12-31"
19
+ }
20
+ ]
21
+ }
22
+ }
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "collection": [
3
3
  {
4
- "cancel_url": "https://calendly.com/cancellations/AAAAAAAAAAAAAAAA",
4
+ "cancel_url": "https://calendly.com/cancellations/abc123",
5
5
  "created_at": "2020-11-23T17:51:18.327602Z",
6
6
  "email": "test@example.com",
7
- "event": "https://api.calendly.com/scheduled_events/AAAAAAAAAAAAAAAA",
7
+ "event": "https://api.calendly.com/scheduled_events/abc123",
8
8
  "name": "John Doe",
9
9
  "new_invitee": null,
10
10
  "old_invitee": null,
@@ -25,7 +25,7 @@
25
25
  "question": "Question with Checkboxes answer type"
26
26
  }
27
27
  ],
28
- "reschedule_url": "https://calendly.com/reschedulings/AAAAAAAAAAAAAAAA",
28
+ "reschedule_url": "https://calendly.com/reschedulings/abc123",
29
29
  "rescheduled": false,
30
30
  "status": "active",
31
31
  "text_reminder_number": null,
@@ -39,10 +39,10 @@
39
39
  "salesforce_uuid": null
40
40
  },
41
41
  "updated_at": "2020-11-23T17:51:18.341657Z",
42
- "uri": "https://api.calendly.com/scheduled_events/AAAAAAAAAAAAAAAA/invitees/AAAAAAAAAAAAAAAA",
42
+ "uri": "https://api.calendly.com/scheduled_events/abc123/invitees/abc123",
43
43
  "canceled": false,
44
44
  "payment": {
45
- "external_id": "ch_AAAAAAAAAAAAAAAAAAAAAAAA",
45
+ "external_id": "ch_abc123",
46
46
  "provider": "stripe",
47
47
  "amount": 1234.56,
48
48
  "currency": "USD",
@@ -53,6 +53,6 @@
53
53
  ],
54
54
  "pagination": {
55
55
  "count": 1,
56
- "next_page": "https://calendly.com/scheduled_events/AAAAAAAAAAAAAAAA/invitees?count=1&page_token=sNjq4TvMDfUHEl7zHRR0k0E1PCEJWvdi"
56
+ "next_page": "https://calendly.com/scheduled_events/abc123/invitees?count=1&page_token=sNjq4TvMDfUHEl7zHRR0k0E1PCEJWvdi"
57
57
  }
58
58
  }
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "resource": {
3
- "cancel_url": "https://calendly.com/cancellations/AAAAAAAAAAAAAAAA",
3
+ "cancel_url": "https://calendly.com/cancellations/abc123",
4
4
  "created_at": "2020-01-01T20:30:00Z",
5
5
  "email": "email@example.com",
6
- "reschedule_url": "https://calendly.com/reschedulings/AAAAAAAAAAAAAAAA",
6
+ "reschedule_url": "https://calendly.com/reschedulings/abc123",
7
7
  "event": "https://api.calendly.com/scheduled_events/ABCDABCDABCDABCD",
8
8
  "name": "John Doe",
9
9
  "status": "active",
@@ -29,7 +29,7 @@
29
29
  ],
30
30
  "canceled": false,
31
31
  "payment": {
32
- "external_id": "ch_AAAAAAAAAAAAAAAAAAAAAAAA",
32
+ "external_id": "ch_abc123",
33
33
  "provider": "stripe",
34
34
  "amount": 1234.56,
35
35
  "currency": "USD",
@@ -0,0 +1,22 @@
1
+ {
2
+ "collection": [
3
+ {
4
+ "status": "available",
5
+ "invitees_remaining": 2,
6
+ "start_time": "2020-01-02T20:00:00.000000Z",
7
+ "scheduling_url": "https://calendly.com/acmesales/discovery-call/2020-01-02T20:00:00Z?month=2020-01&date=2020-01-02"
8
+ },
9
+ {
10
+ "status": "available",
11
+ "invitees_remaining": 1,
12
+ "start_time": "2020-01-03T15:00:00.000000Z",
13
+ "scheduling_url": "https://calendly.com/acmesales/discovery-call/2020-01-03T15:00:00Z?month=2020-01&date=2020-01-03"
14
+ },
15
+ {
16
+ "status": "available",
17
+ "invitees_remaining": 3,
18
+ "start_time": "2020-01-07T23:00:00.000000Z",
19
+ "scheduling_url": "https://calendly.com/acmesales/discovery-call/2020-01-07T23:00:00Z?month=2020-01&date=2020-01-07"
20
+ }
21
+ ]
22
+ }
@@ -0,0 +1,76 @@
1
+ {
2
+ "collection": [
3
+ {
4
+ "uri": "https://api.calendly.com/event_type_memberships/AAAAAAAAAAAAAAAA",
5
+ "event_type": {
6
+ "uri": "https://api.calendly.com/event_types/AAAAAAAAAAAAAAAA",
7
+ "name": "15 Minute Meeting",
8
+ "active": true,
9
+ "slug": "acmesales",
10
+ "scheduling_url": "https://calendly.com/acmesales",
11
+ "duration": 30,
12
+ "kind": "solo",
13
+ "pooling_type": "round_robin",
14
+ "type": "StandardEventType",
15
+ "color": "#fff200",
16
+ "created_at": "2019-01-02T03:04:05.678123Z",
17
+ "updated_at": "2019-08-07T06:05:04.321123Z",
18
+ "internal_note": "Internal note",
19
+ "description_plain": "15 Minute Meeting",
20
+ "description_html": "<p>15 Minute Meeting</p>",
21
+ "profile": {
22
+ "type": "User",
23
+ "name": "Tamara Jones",
24
+ "owner": "https://api.calendly.com/users/AAAAAAAAAAAAAAAA"
25
+ },
26
+ "secret": true,
27
+ "booking_method": "poll",
28
+ "custom_questions": [
29
+ {
30
+ "name": "string",
31
+ "type": "string",
32
+ "position": 0,
33
+ "enabled": true,
34
+ "required": true,
35
+ "answer_choices": [
36
+ "string"
37
+ ],
38
+ "include_other": true
39
+ }
40
+ ],
41
+ "deleted_at": "2019-01-02T03:04:05.678123Z",
42
+ "admin_managed": true,
43
+ "locations": [
44
+ {
45
+ "kind": "inbound_call",
46
+ "phone_number": 380934567654,
47
+ "additional_info": "Additional information about location"
48
+ }
49
+ ],
50
+ "position": 0
51
+ },
52
+ "member": {
53
+ "uri": "https://api.calendly.com/users/AAAAAAAAAAAAAAAA",
54
+ "name": "John Doe",
55
+ "slug": "acmesales",
56
+ "email": "test@example.com",
57
+ "scheduling_url": "https://calendly.com/acmesales",
58
+ "timezone": "America/New York",
59
+ "avatar_url": "https://01234567890.cloudfront.net/uploads/user/avatar/0123456/a1b2c3d4.png",
60
+ "created_at": "2019-01-02T03:04:05.678123Z",
61
+ "updated_at": "2019-08-07T06:05:04.321123Z",
62
+ "current_organization": "https://api.calendly.com/organizations/AAAAAAAAAAAAAAAA",
63
+ "resource_type": "User"
64
+ },
65
+ "updated_at": "2019-01-02T03:04:05.678123Z",
66
+ "created_at": "2019-01-02T03:04:05.678123Z"
67
+ }
68
+ ],
69
+ "pagination": {
70
+ "count": 20,
71
+ "next_page": "https://api.calendly.com/event_types?count=1&page_token=sNjq4TvMDfUHEl7zHRR0k0E1PCEJWvdi",
72
+ "previous_page": "https://api.calendly.com/event_types?count=1&page_token=VJs2rfDYeY8ahZpq0QI1O114LJkNjd7H",
73
+ "next_page_token": "sNjq4TvMDfUHEl7zHRR0k0E1PCEJWvdi",
74
+ "previous_page_token": "VJs2rfDYeY8ahZpq0QI1O114LJkNjd7H"
75
+ }
76
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "resource": {
3
+ "uri": "https://api.calendly.com/event_types/AAAAAAAAAAAAAAAA",
4
+ "name": "15 Minute Meeting",
5
+ "active": true,
6
+ "slug": "acmesales",
7
+ "scheduling_url": "https://calendly.com/acmesales",
8
+ "duration": 30,
9
+ "kind": "solo",
10
+ "pooling_type": "round_robin",
11
+ "type": "StandardEventType",
12
+ "color": "#fff200",
13
+ "created_at": "2019-01-02T03:04:05.678123Z",
14
+ "updated_at": "2019-08-07T06:05:04.321123Z",
15
+ "internal_note": "Internal note",
16
+ "description_plain": "15 Minute Meeting",
17
+ "description_html": "<p>15 Minute Meeting</p>",
18
+ "profile": {
19
+ "type": "User",
20
+ "name": "Tamara Jones",
21
+ "owner": "https://api.calendly.com/users/AAAAAAAAAAAAAAAA"
22
+ },
23
+ "secret": true,
24
+ "booking_method": "poll",
25
+ "custom_questions": [
26
+ {
27
+ "name": "string",
28
+ "type": "string",
29
+ "position": 0,
30
+ "enabled": true,
31
+ "required": true,
32
+ "answer_choices": [
33
+ "string"
34
+ ],
35
+ "include_other": true
36
+ }
37
+ ],
38
+ "deleted_at": "2019-01-02T03:04:05.678123Z",
39
+ "admin_managed": true,
40
+ "locations": [
41
+ {}
42
+ ],
43
+ "position": 0
44
+ }
45
+ }
@@ -4,6 +4,7 @@
4
4
  "uri": "https://api.calendly.com/event_types/AAAAAAAAAAAAAAAA",
5
5
  "name": "15 Minute Meeting",
6
6
  "active": true,
7
+ "booking_method": "instant",
7
8
  "slug": "acmesales",
8
9
  "scheduling_url": "https://calendly.com/acmesales",
9
10
  "duration": 30,
@@ -11,8 +12,8 @@
11
12
  "pooling_type": "round_robin",
12
13
  "type": "StandardEventType",
13
14
  "color": "#fff200",
14
- "created_at": "2019-01-02T03:04:05.678Z",
15
- "updated_at": "2019-08-07T06:05:04.321Z",
15
+ "created_at": "2019-01-02T03:04:05.678123Z",
16
+ "updated_at": "2019-08-07T06:05:04.321123Z",
16
17
  "internal_note": "Internal note",
17
18
  "description_plain": "15 Minute Meeting",
18
19
  "description_html": "<p>15 Minute Meeting</p>",
@@ -22,6 +23,16 @@
22
23
  "owner": "https://api.calendly.com/users/AAAAAAAAAAAAAAAA"
23
24
  },
24
25
  "secret": true,
26
+ "deleted_at": null,
27
+ "admin_managed": false,
28
+ "locations": [
29
+ {
30
+ "kind": "inbound_call",
31
+ "phone_number": 380934567654,
32
+ "additional_info": "Additional information about location"
33
+ }
34
+ ],
35
+ "position": 0,
25
36
  "custom_questions": [
26
37
  {
27
38
  "name": "Company Name",
@@ -82,7 +93,10 @@
82
93
  }
83
94
  ],
84
95
  "pagination": {
85
- "count": 1,
86
- "next_page": "https://api.calendly.com/event_types?count=1&page_token=sNjq4TvMDfUHEl7zHRR0k0E1PCEJWvdi"
96
+ "count": 20,
97
+ "next_page": "https://api.calendly.com/event_types?count=1&page_token=sNjq4TvMDfUHEl7zHRR0k0E1PCEJWvdi",
98
+ "previous_page": "https://api.calendly.com/event_types?count=1&page_token=VJs2rfDYeY8ahZpq0QI1O114LJkNjd7H",
99
+ "next_page_token": "sNjq4TvMDfUHEl7zHRR0k0E1PCEJWvdi",
100
+ "previous_page_token": "VJs2rfDYeY8ahZpq0QI1O114LJkNjd7H"
87
101
  }
88
102
  }
@@ -3,6 +3,7 @@
3
3
  "uri": "https://api.calendly.com/event_types/AAAAAAAAAAAAAAAA",
4
4
  "name": "15 Minute Meeting",
5
5
  "active": true,
6
+ "booking_method": "instant",
6
7
  "slug": "acmesales",
7
8
  "scheduling_url": "https://calendly.com/acmesales",
8
9
  "duration": 30,
@@ -10,8 +11,8 @@
10
11
  "pooling_type": "round_robin",
11
12
  "type": "StandardEventType",
12
13
  "color": "#fff200",
13
- "created_at": "2019-01-02T03:04:05.678Z",
14
- "updated_at": "2019-08-07T06:05:04.321Z",
14
+ "created_at": "2019-01-02T03:04:05.678123Z",
15
+ "updated_at": "2019-08-07T06:05:04.321123Z",
15
16
  "internal_note": "Internal note",
16
17
  "description_plain": "15 Minute Meeting",
17
18
  "description_html": "<p>15 Minute Meeting</p>",
@@ -21,6 +22,16 @@
21
22
  "owner": "https://api.calendly.com/users/AAAAAAAAAAAAAAAA"
22
23
  },
23
24
  "secret": true,
25
+ "deleted_at": null,
26
+ "admin_managed": false,
27
+ "locations": [
28
+ {
29
+ "kind": "inbound_call",
30
+ "phone_number": 380934567654,
31
+ "additional_info": "Additional information about location"
32
+ }
33
+ ],
34
+ "position": 0,
24
35
  "custom_questions": [
25
36
  {
26
37
  "name": "Company Name",
@@ -0,0 +1,8 @@
1
+ {
2
+ "resource": {
3
+ "canceled_by": "string",
4
+ "reason": "string",
5
+ "canceler_type": "host",
6
+ "created_at": "2019-01-02T03:04:05.678123Z"
7
+ }
8
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "resource": {
3
+ "uri": "https://api.calendly.com/invitee_no_shows/639fa667-4c1b-4b20-93b5-1b1969d67dc6",
4
+ "invitee": "https://api.calendly.com/scheduled_events/GBGBDCAADAEDCRZ2/invitees/7c1dbe46-bd84-42e2-9b97-05e2fb379bfe",
5
+ "created_at": "2019-01-02T03:04:05.678123Z"
6
+ }
7
+ }