calendlyr 0.6.0 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +7 -8
- data/CHANGELOG.md +2 -2
- data/README.md +46 -127
- data/calendlyr.gemspec +0 -1
- data/docs/resources/activity_log/list_activity_log_entries.md +34 -0
- data/docs/resources/availabilities/availability_rule.md +5 -0
- data/docs/resources/availabilities/user_availability_schedule.md +50 -0
- data/docs/resources/availabilities/user_busy_time.md +28 -0
- data/docs/resources/data_compliance.md +19 -0
- data/docs/resources/event_types/available_time.md +21 -0
- data/docs/resources/event_types/event_type.md +55 -0
- data/docs/resources/event_types/membership.md +29 -0
- data/docs/resources/event_types/profile.md +13 -0
- data/docs/resources/events/cancellation.md +18 -0
- data/docs/resources/events/event.md +62 -0
- data/docs/resources/events/guest.md +5 -0
- data/docs/resources/events/invitee.md +28 -0
- data/docs/resources/events/invitee_no_show.md +49 -0
- data/docs/resources/groups/group.md +56 -0
- data/docs/resources/groups/relationship.md +54 -0
- data/docs/resources/organizations/invitation.md +65 -0
- data/docs/resources/organizations/membership.md +58 -0
- data/docs/resources/organizations/organization.md +149 -0
- data/docs/resources/pagination.md +21 -0
- data/docs/resources/routing_forms/routing_form.md +48 -0
- data/docs/resources/routing_forms/submission.md +40 -0
- data/docs/resources/scheduling_link.md +26 -0
- data/docs/resources/share.md +28 -0
- data/docs/resources/user.md +111 -0
- data/docs/resources/webhooks/invitee_payload.md +42 -0
- data/docs/resources/webhooks/payload.md +5 -0
- data/docs/resources/webhooks/subscription.md +96 -0
- data/lib/calendlyr/client.rb +18 -2
- data/lib/calendlyr/collection.rb +2 -2
- data/lib/calendlyr/error.rb +42 -1
- data/lib/calendlyr/object.rb +6 -2
- data/lib/calendlyr/objects/activity_log.rb +11 -0
- data/lib/calendlyr/objects/availabilities/rule.rb +4 -0
- data/lib/calendlyr/objects/availabilities/user_busy_time.rb +7 -0
- data/lib/calendlyr/objects/availabilities/user_schedule.rb +13 -0
- data/lib/calendlyr/objects/event.rb +11 -0
- data/lib/calendlyr/objects/event_type.rb +15 -0
- data/lib/calendlyr/objects/event_types/available_time.rb +4 -0
- data/lib/calendlyr/objects/event_types/membership.rb +11 -0
- data/lib/calendlyr/objects/event_types/profile.rb +7 -0
- data/lib/calendlyr/objects/events/cancellation.rb +4 -0
- data/lib/calendlyr/objects/events/guest.rb +4 -0
- data/lib/calendlyr/objects/events/invitee.rb +11 -0
- data/lib/calendlyr/objects/events/invitee_no_show.rb +7 -0
- data/lib/calendlyr/objects/group.rb +15 -0
- data/lib/calendlyr/objects/groups/relationship.rb +15 -0
- data/lib/calendlyr/objects/organization.rb +67 -0
- data/lib/calendlyr/objects/organizations/invitation.rb +15 -0
- data/lib/calendlyr/objects/organizations/membership.rb +15 -0
- data/lib/calendlyr/objects/routing_form.rb +11 -0
- data/lib/calendlyr/objects/routing_forms/submission.rb +7 -0
- data/lib/calendlyr/objects/scheduling_link.rb +9 -0
- data/lib/calendlyr/objects/share.rb +9 -0
- data/lib/calendlyr/objects/user.rb +31 -0
- data/lib/calendlyr/objects/webhooks/invitee_payload.rb +15 -0
- data/lib/calendlyr/objects/webhooks/payload.rb +4 -0
- data/lib/calendlyr/objects/webhooks/subscription.rb +23 -0
- data/lib/calendlyr/resource.rb +2 -2
- data/lib/calendlyr/resources/availability.rb +19 -0
- data/lib/calendlyr/resources/data_compliance.rb +4 -0
- data/lib/calendlyr/resources/event.rb +40 -0
- data/lib/calendlyr/resources/event_type.rb +28 -0
- data/lib/calendlyr/resources/group.rb +22 -0
- data/lib/calendlyr/resources/organization.rb +40 -0
- data/lib/calendlyr/resources/outgoing_communication.rb +8 -0
- data/lib/calendlyr/resources/routing_form.rb +22 -0
- data/lib/calendlyr/resources/{scheduling_links.rb → scheduling_link.rb} +2 -2
- data/lib/calendlyr/resources/share.rb +8 -0
- data/lib/calendlyr/resources/user.rb +11 -0
- data/lib/calendlyr/resources/webhook.rb +25 -0
- data/lib/calendlyr/version.rb +1 -1
- data/lib/calendlyr.rb +70 -18
- data/test/calendlyr/objects/activity_log_test.rb +26 -0
- data/test/calendlyr/objects/availabilities/rule_test.rb +24 -0
- data/test/calendlyr/objects/availabilities/user_busy_time_test.rb +21 -0
- data/test/calendlyr/objects/availabilities/user_schedule_test.rb +26 -0
- data/test/calendlyr/objects/event_test.rb +32 -0
- data/test/calendlyr/objects/event_type_test.rb +43 -0
- data/test/calendlyr/objects/event_types/available_time_test.rb +20 -0
- data/test/calendlyr/objects/event_types/membership_test.rb +32 -0
- data/test/calendlyr/objects/event_types/profile_test.rb +23 -0
- data/test/calendlyr/objects/events/cancellation_test.rb +16 -0
- data/test/calendlyr/objects/events/guest_test.rb +16 -0
- data/test/calendlyr/objects/events/invitee_no_show_test.rb +23 -0
- data/test/calendlyr/objects/events/invitee_test.rb +35 -0
- data/test/calendlyr/objects/group_test.rb +40 -0
- data/test/calendlyr/objects/groups/relationship_test.rb +43 -0
- data/test/calendlyr/objects/organization_test.rb +157 -0
- data/test/calendlyr/objects/organizations/invitation_test.rb +34 -0
- data/test/calendlyr/objects/organizations/membership_test.rb +38 -0
- data/test/calendlyr/objects/routing_form_test.rb +26 -0
- data/test/calendlyr/objects/routing_forms/submission_test.rb +22 -0
- data/test/calendlyr/objects/scheduling_link_test.rb +17 -0
- data/test/calendlyr/objects/share_test.rb +19 -0
- data/test/calendlyr/objects/user_test.rb +81 -0
- data/test/calendlyr/objects/webhooks/invite_payload_test.rb +42 -0
- data/test/calendlyr/objects/webhooks/payload_test.rb +16 -0
- data/test/calendlyr/objects/webhooks/subscription_test.rb +42 -0
- data/test/calendlyr/resource_test.rb +12 -3
- data/test/calendlyr/resources/availabilities/user_busy_times_test.rb +31 -0
- data/test/calendlyr/resources/availabilities/user_schedules_test.rb +37 -0
- data/test/calendlyr/resources/data_compliance_test.rb +11 -0
- data/test/calendlyr/resources/event_types/membership_test.rb +22 -0
- data/test/calendlyr/resources/event_types_test.rb +55 -10
- data/test/calendlyr/resources/events/invitee_test.rb +31 -0
- data/test/calendlyr/resources/events_test.rb +22 -10
- data/test/calendlyr/resources/groups_test.rb +26 -0
- data/test/calendlyr/resources/organizations_test.rb +36 -100
- data/test/calendlyr/resources/outgoing_communications_test.rb +16 -0
- data/test/calendlyr/resources/scheduling_links_test.rb +1 -1
- data/test/calendlyr/resources/users_test.rb +9 -33
- data/test/calendlyr/resources/webhooks_test.rb +22 -13
- data/test/fixtures/activity_log/list.json +38 -0
- data/test/fixtures/availabilities/user_busy_times_list.json +39 -0
- data/test/fixtures/availabilities/user_schedules_list.json +93 -0
- data/test/fixtures/availabilities/user_schedules_retrieve.json +22 -0
- data/test/fixtures/data_compliance/delete_scheduled_event_data.json +1 -0
- data/test/fixtures/event_invitees/list.json +6 -6
- data/test/fixtures/event_invitees/retrieve.json +3 -3
- data/test/fixtures/event_type_available_times/list.json +22 -0
- data/test/fixtures/event_type_hosts/list.json +76 -0
- data/test/fixtures/event_types/create_one_off.json +45 -0
- data/test/fixtures/event_types/list.json +18 -4
- data/test/fixtures/event_types/retrieve.json +13 -2
- data/test/fixtures/events/cancel_invitee.json +8 -0
- data/test/fixtures/events/create_invitee_no_show.json +7 -0
- data/test/fixtures/events/delete_invitee_no_show.json +1 -0
- data/test/fixtures/events/retrieve_invitee_no_show.json +7 -0
- data/test/fixtures/group_relationships/list.json +83 -0
- data/test/fixtures/group_relationships/retrieve.json +29 -0
- data/test/fixtures/groups/list.json +19 -0
- data/test/fixtures/groups/retrieve.json +9 -0
- data/test/fixtures/objects/activity_log.json +24 -0
- data/test/fixtures/objects/availabilities/rule.json +10 -0
- data/test/fixtures/objects/availabilities/user_busy_time.json +10 -0
- data/test/fixtures/objects/availabilities/user_schedule.json +69 -0
- data/test/fixtures/objects/availability_rule.json +10 -0
- data/test/fixtures/objects/event.json +36 -0
- data/test/fixtures/objects/event_type.json +91 -0
- data/test/fixtures/objects/event_type_host.json +65 -0
- data/test/fixtures/objects/event_types/available_time.json +6 -0
- data/test/fixtures/objects/event_types/membership.json +65 -0
- data/test/fixtures/objects/event_types/profile.json +5 -0
- data/test/fixtures/objects/events/cancellation.json +6 -0
- data/test/fixtures/objects/events/guest.json +5 -0
- data/test/fixtures/objects/events/invitee.json +46 -0
- data/test/fixtures/objects/events/invitee_no_show.json +5 -0
- data/test/fixtures/objects/group.json +7 -0
- data/test/fixtures/objects/groups/relationship.json +27 -0
- data/test/fixtures/objects/organization.json +8 -0
- data/test/fixtures/objects/organizations/invitation.json +10 -0
- data/test/fixtures/objects/organizations/membership.json +18 -0
- data/test/fixtures/objects/routing_form.json +28 -0
- data/test/fixtures/objects/routing_forms/submission.json +27 -0
- data/test/fixtures/objects/scheduling_links/event_type.json +5 -0
- data/test/fixtures/objects/share.json +43 -0
- data/test/fixtures/objects/user.json +13 -0
- data/test/fixtures/objects/webhooks/invite_payload.json +83 -0
- data/test/fixtures/objects/webhooks/payload.json +66 -0
- data/test/fixtures/objects/webhooks/subscription.json +15 -0
- data/test/fixtures/organization_memberships/list.json +29 -0
- data/test/fixtures/organization_memberships/retrieve.json +20 -0
- data/test/fixtures/organizations/list_invitations.json +4 -4
- data/test/fixtures/organizations/list_memberships.json +12 -9
- data/test/fixtures/organizations/retrieve_invitation.json +3 -3
- data/test/fixtures/organizations/retrieve_membership.json +3 -3
- data/test/fixtures/outgoing_communications/list.json +26 -0
- data/test/fixtures/resources/401.json +2 -2
- data/test/fixtures/resources/403.json +1 -1
- data/test/fixtures/resources/403_payment_required.json +4 -0
- data/test/fixtures/resources/424.json +4 -0
- data/test/fixtures/routing_forms/list.json +39 -0
- data/test/fixtures/routing_forms/list_routing_form_submission.json +38 -0
- data/test/fixtures/routing_forms/retrieve.json +30 -0
- data/test/fixtures/routing_forms/retrieve_routing_form_submission.json +29 -0
- data/test/fixtures/shares/create.json +45 -0
- data/test/fixtures/user_availability_schedules/list.json +93 -0
- data/test/fixtures/user_availability_schedules/retrieve.json +22 -0
- data/test/fixtures/user_busy_times/list.json +39 -0
- data/test/fixtures/users/reload.json +5 -4
- data/test/fixtures/users/retrieve.json +5 -4
- data/test/fixtures/webhooks/create.json +4 -4
- data/test/fixtures/webhooks/list.json +4 -4
- data/test/fixtures/webhooks/retrieve.json +4 -4
- data/test/fixtures/webhooks/sample.json +105 -0
- metadata +159 -62
- data/lib/calendlyr/objects/event_invitees.rb +0 -4
- data/lib/calendlyr/objects/event_types.rb +0 -4
- data/lib/calendlyr/objects/events.rb +0 -4
- data/lib/calendlyr/objects/invitations.rb +0 -11
- data/lib/calendlyr/objects/memberships.rb +0 -7
- data/lib/calendlyr/objects/organizations.rb +0 -35
- data/lib/calendlyr/objects/scheduling_links.rb +0 -4
- data/lib/calendlyr/objects/users.rb +0 -19
- data/lib/calendlyr/objects/webhooks.rb +0 -11
- data/lib/calendlyr/resources/event_invitees.rb +0 -12
- data/lib/calendlyr/resources/event_types.rb +0 -12
- data/lib/calendlyr/resources/events.rb +0 -12
- data/lib/calendlyr/resources/organizations.rb +0 -33
- data/lib/calendlyr/resources/users.rb +0 -11
- data/lib/calendlyr/resources/webhooks.rb +0 -21
- data/test/calendlyr/resources/event_invitees_test.rb +0 -29
- 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 = "
|
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(
|
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/
|
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/
|
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/
|
53
|
-
assert_equal "
|
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(
|
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/
|
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(
|
11
|
+
webhooks = client.webhooks.list(organization: organization_uri, scope: scope)
|
12
12
|
|
13
13
|
assert_equal Calendlyr::Collection, webhooks.class
|
14
|
-
assert_equal Calendlyr::
|
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/
|
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(
|
24
|
-
assert client.organization.create_webhook(
|
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 = "
|
28
|
+
webhook_uuid = "abc123"
|
29
29
|
stub(path: "webhook_subscriptions/#{webhook_uuid}", response: {body: fixture_file("webhooks/retrieve"), status: 200})
|
30
|
-
stub(path: "users/
|
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::
|
33
|
+
assert_equal Calendlyr::Webhooks::Subscription, webhook.class
|
34
34
|
assert_equal "user", webhook.scope
|
35
|
-
assert_equal webhook.associated_user, client.users.retrieve(
|
36
|
-
assert_equal webhook.associated_organization, client.users.retrieve(
|
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 = "
|
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
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{}
|
@@ -1,10 +1,10 @@
|
|
1
1
|
{
|
2
2
|
"collection": [
|
3
3
|
{
|
4
|
-
"cancel_url": "https://calendly.com/cancellations/
|
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/
|
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/
|
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/
|
42
|
+
"uri": "https://api.calendly.com/scheduled_events/abc123/invitees/abc123",
|
43
43
|
"canceled": false,
|
44
44
|
"payment": {
|
45
|
-
"external_id": "
|
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/
|
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/
|
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/
|
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": "
|
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.
|
15
|
-
"updated_at": "2019-08-07T06:05:04.
|
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":
|
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.
|
14
|
-
"updated_at": "2019-08-07T06:05:04.
|
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,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
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{}
|