Schedules
Schedule notifications.
Delete schedule
Delete a schedule resource, which will result in no more pushes being sent. If the resource is successfully deleted, the response does not include a body.
DELETE /api/schedules/{schedule_id}
Security:
Path parameters:
- schedule_id stringREQUIREDThe ID of a schedule.
Responses
204
An API request was successful, but there is no response body to return.
401
Authentication information (the app key and secret or bearer token) was either incorrect or missing.
Response body:
- Content-Type:
text/plainErrors returned with 4xx responses. Errors include as much information as possible to help you understand the reason for the failure.
403
Authentication was correct, but the user does not have permission to access the requested API, e.g., if the feature in question is not included in your pricing plan.
Response body:
- Content-Type:
application/jsonErrors returned with 4xx responses. Errors include as much information as possible to help you understand the reason for the failure.
404
The requested resource doesn’t exist.
Response body:
- Content-Type:
application/vnd.urbanairship+jsonErrors returned with 4xx responses. Errors include as much information as possible to help you understand the reason for the failure.
Examples
Example
DELETE /api/schedules/b384ca54-0a1d-9cb3-2dfd-ae5964630e66 HTTP/1.1
Authorization: Basic <master authorization string>
Accept: application/vnd.urbanairship+json; version=3
HTTP/1.1 204 No Content
UrbanAirshipClient client = UrbanAirshipClient.newBuilder()
.setKey("<app key>")
.setSecret("<master secret>")
.build();
ScheduleDeleteRequest request = ScheduleDeleteRequest.newRequest("b384ca54-0a1d-9cb3-2dfd-ae5964630e66");
Response<GenericResponse> response = client.execute(request);
from urbanairship import BasicAuthClient, ScheduledPush
client = BasicAuthClient(
key='<app_key>',
secret='<master_secret>'
)
schedule = ScheduledPush.from_url(client, 'https://go.urbanairship.com/api/schedules/b384ca54-0a1d-9cb3-2dfd-ae5964630e66')
# Cancel schedule
schedule.cancel()
require 'urbanairship'
UA = Urbanairship
airship = UA::Client.new(key: '<app key>', secret: '<master secret>')
schedule = airship.create_scheduled_push
schedule = UA::ScheduledPush.from_url(client: airship, url: 'https://go.urbanairship.com/api/schedules/b384ca54-0a1d-9cb3-2dfd-ae5964630e66')
schedule.cancel
List a specific schedule
Fetch the current definition of a single schedule resource. Returns a single schedule object.
GET /api/schedules/{schedule_id}
Security:
Path parameters:
- schedule_id stringREQUIREDThe ID of a schedule.
Responses
200
A schedule object consists of a schedule, i.e., a future delivery time, an optional name, and a push object.
401
Authentication information (the app key and secret or bearer token) was either incorrect or missing.
Response body:
- Content-Type:
text/plainErrors returned with 4xx responses. Errors include as much information as possible to help you understand the reason for the failure.
403
Authentication was correct, but the user does not have permission to access the requested API, e.g., if the feature in question is not included in your pricing plan.
Response body:
- Content-Type:
application/jsonErrors returned with 4xx responses. Errors include as much information as possible to help you understand the reason for the failure.
404
The requested resource doesn’t exist.
Response body:
- Content-Type:
application/vnd.urbanairship+jsonErrors returned with 4xx responses. Errors include as much information as possible to help you understand the reason for the failure.
Examples
Example
GET /api/schedules/5cde3564-ead8-9743-63af-821e12337812 HTTP/1.1
Authorization: Basic <master authorization string>
Accept: application/vnd.urbanairship+json; version=3
HTTP/1.1 200 OK
Content-Type: application/vnd.urbanairship+json; version=3
{
"name": "I would like to subscribe to your newsletter",
"schedule": {
"scheduled_time": "2020-04-01T18:45:30"
},
"push": {
"audience": {
"tag": [
"intriguing",
"ideas" ]
},
"notification": {
"alert": "Check your inbox!"
},
"device_types": [ "ios", "android" ]
}
}
UrbanAirshipClient client = UrbanAirshipClient.newBuilder()
.setKey("<app key>")
.setSecret("<master secret>")
.build();
ScheduleListingRequest request = ScheduleListingRequest.newRequest("5cde3564-ead8-9743-63af-821e12337812");
Response<ListAllSchedulesResponse> response = client.execute(request);
SchedulePayloadResponse schedule = response.getBody().get().getSchedules().get(0);
// Get the schedule's name
Optional<String> name = schedule.getName();
// Get the push IDs
Set<String> pushIds = schedule.getPushIds();
// Get the scheduled time
Schedule sched = schedule.getSchedule();
// Get the associated push payload
PushPayload payload = schedule.getPushPayload();
// Get the URL
Optional<String> url = schedule.getUrl();
require 'urbanairship'
UA = Urbanairship
airship = UA::Client.new(key: '<app key>', secret: '<master secret>')
schedule = airship.create_scheduled_push
scheduled_push = UA::ScheduledPush.new(airship)
schedule_details = scheduled_push.list(schedule_id: '5cde3564-ead8-9743-63af-821e12337812')
puts(schedule_details)
List schedules
List all existing schedules. Returns an array of schedule objects in the schedules attribute.
GET /api/schedules
Security:
Query parameters:
- start stringAn optional string ID of the starting element for paginating results.
- limit integerAn optional integer as maximum number of elements to return. The default limit is 200 Schedule Objects per request. Set the limit to 200 or fewer in your API calls.
Responses
200
Returned on success, with the JSON representation of the scheduled pushes in the body of the response.
Response body:
- Content-Type:
application/vnd.urbanairship+json; version=3Type:
object
401
Authentication information (the app key and secret or bearer token) was either incorrect or missing.
Response body:
- Content-Type:
text/plainErrors returned with 4xx responses. Errors include as much information as possible to help you understand the reason for the failure.
403
Authentication was correct, but the user does not have permission to access the requested API, e.g., if the feature in question is not included in your pricing plan.
Response body:
- Content-Type:
application/jsonErrors returned with 4xx responses. Errors include as much information as possible to help you understand the reason for the failure.
Examples
Example
GET /api/schedules HTTP/1.1
Authorization: Basic <master authorization string>
Accept: application/vnd.urbanairship+json; version=3
HTTP/1.1 200 OK
Count: 2
Data-Attribute: schedules
Content-Type: application/vnd.urbanairship+json; version=3
{
"ok": true,
"count": 2,
"total_count": 4,
"next_page": "https://go.urbanairship.com/api/schedules/?start=5c69320c-3e91-5241-fad3-248269eed104&limit=2&order=asc",
"schedules": [
{
"url": "http://go.urbanairship/api/schedules/2d69320c-3c91-5241-fac4-248269eed109",
"schedule": { },
"push": { }
},
{
"url": "http://go.urbanairship/api/schedules/2d69320c-3c91-5241-fac4-248269eed10A",
"schedule": { },
"push": { }
}
]
}
UrbanAirshipClient client = UrbanAirshipClient.newBuilder()
.setKey("<app key>")
.setSecret("<master secret>")
.build();
ScheduleListingRequest request = ScheduleListingRequest.newRequest();
Response<ListAllSchedulesResponse> response = client.execute(request);
List<SchedulePayloadResponse> schedules = response.getBody().get().getSchedules();
from urbanairship import BasicAuthClient, ScheduledList
client = BasicAuthClient(
key='<app_key>',
secret='<master_secret>'
)
for schedule in ScheduledList(client):
print(
schedule.name, schedule.url, schedule.push_ids,
schedule.schedule, schedule.push
)
require 'urbanairship'
UA = Urbanairship
airship = UA::Client.new(key: '<app key>', secret: '<master secret>')
scheduled_push_list = UA::ScheduledPushList.new(client: airship)
scheduled_push_list.each do |schedule|
puts(schedule)
end
Pause a schedule
Pause a recurring scheduled message, preventing Airship from sending messages on a recurring scheduled message interval. Use the /resume endpoint to resume a schedule. The pause operation cannot be completed for recurring schedules that have schedule end times in the past.
POST /api/schedules/{schedule_id}/pause
Paused schedules bear a "paused": true boolean.
Security:
Path parameters:
- schedule_id stringREQUIREDThe ID of the schedule you want to pause.
Request body:
A pause request is empty.
Content-Type:
application/jsonType: object
Responses
204
An API request was successful, but there is no response body to return.
400
Returned if the schedule end time for a recurring schedule is in the past.
401
Authentication information (the app key and secret or bearer token) was either incorrect or missing.
Response body:
- Content-Type:
text/plainErrors returned with 4xx responses. Errors include as much information as possible to help you understand the reason for the failure.
403
Authentication was correct, but the user does not have permission to access the requested API, e.g., if the feature in question is not included in your pricing plan.
Response body:
- Content-Type:
application/jsonErrors returned with 4xx responses. Errors include as much information as possible to help you understand the reason for the failure.
404
The requested resource doesn’t exist.
Response body:
- Content-Type:
application/vnd.urbanairship+jsonErrors returned with 4xx responses. Errors include as much information as possible to help you understand the reason for the failure.
500
Occurs if a schedule fails to pause. The error includes a list of
failed_triggers, detailing the schedule triggers that caused this operation to fail.Response body:
- Content-Type:OBJECT PROPERTIES
application/json- error string
A description of the error.
- error_code integer
An error code representing the HTTP status and a more specific Airship error, if known.
- failed_triggers array[object]
- ok boolean
If false, an error occurred.
Examples
Example
POST /api/schedules/5cde3564-ead8-9743-63af-821e12337812/pause HTTP/1.1
Authorization: Basic <master authorization string>
Accept: application/vnd.urbanairship+json; version=3
UrbanAirshipClient client = UrbanAirshipClient.newBuilder()
.setKey("<app key>")
.setSecret("<master secret>")
.build();
ScheduleStatusRequest pauseRequest = ScheduleStatusRequest.pauseScheduleRequest("68b2d71f-1c10-4592-bd96-2725aee0ae57");
Response<GenericResponse> pauseResponse = client.execute(pauseRequest);
from urbanairship import BasicAuthClient, ScheduledPush
client = BasicAuthClient(
key='<app_key>',
secret='<master_secret>'
)
sched = ScheduledPush(client)
sched.url = "http://go.urbanairship/api/schedules/5cde3564-ead8-9743-63af-821e12337812"
sched.pause()
Resume a schedule
Resume a recurring schedule that you previously paused, beginning with the next scheduled interval. The resume operation cannot be completed for recurring schedules that have schedule end times in the past.
POST /api/schedules/{schedule_id}/resume
Paused schedules bear a "paused": true boolean.
Security:
Path parameters:
- schedule_id stringREQUIREDThe ID of the schedule you want to resume.
Request body:
A resume request is empty.
Content-Type:
application/jsonType: object
Responses
204
An API request was successful, but there is no response body to return.
400
Returned if the schedule end time is in the past.
401
Authentication information (the app key and secret or bearer token) was either incorrect or missing.
Response body:
- Content-Type:
text/plainErrors returned with 4xx responses. Errors include as much information as possible to help you understand the reason for the failure.
403
Authentication was correct, but the user does not have permission to access the requested API, e.g., if the feature in question is not included in your pricing plan.
Response body:
- Content-Type:
application/jsonErrors returned with 4xx responses. Errors include as much information as possible to help you understand the reason for the failure.
404
The requested resource doesn’t exist.
Response body:
- Content-Type:
application/vnd.urbanairship+jsonErrors returned with 4xx responses. Errors include as much information as possible to help you understand the reason for the failure.
500
Occurs if a schedule fails to resume. The error includes a list of
failed_triggers, detailing the specific schedule IDs that caused the operation to fail.Response body:
- Content-Type:OBJECT PROPERTIES
application/json- error string
A description of the error.
- error_code integer
An error code representing the HTTP status and a more specific Airship error, if known.
- failed_triggers array[object]
- ok boolean
If false, an error occurred.
Examples
Example
POST /api/schedules/5cde3564-ead8-9743-63af-821e12337812/resume HTTP/1.1
Authorization: Basic <master authorization string>
Accept: application/vnd.urbanairship+json; version=3
UrbanAirshipClient client = UrbanAirshipClient.newBuilder()
.setKey("<app key>")
.setSecret("<master secret>")
.build();
ScheduleStatusRequest resumeRequest = ScheduleStatusRequest.resumeScheduleRequest("68b2d71f-1c10-4592-bd96-2725aee0ae57");
Response<GenericResponse> resumeResponse = client.execute(resumeRequest);
from urbanairship import BasicAuthClient, ScheduledPush
client = BasicAuthClient(
key='<app_key>',
secret='<master_secret>'
)
sched = ScheduledPush(client)
sched.url = "http://go.urbanairship/api/schedules/5cde3564-ead8-9743-63af-821e12337812"
sched.resume()
Schedule a notification
Scheduled notifications are created by POSTing to the schedule URI. The body of the request must be one of a single schedule object or an array of one or more schedule objects.
POST /api/schedules
Security:
Request body:
A single schedule object or an array of schedule objects. For Local Time Delivery, include no more than 100 Schedule Objects in your batch request.
Content-Type:
One ofapplication/json- array<Schedule Object>
A schedule object consists of a schedule, i.e., a future delivery time, an optional name, and a push object.
Max items: 1000
A schedule object consists of a schedule, i.e., a future delivery time, an optional name, and a push object.
Responses
201
The response body will contain an array of response objects with the created resource URIs.
Response body:
- Content-Type:
application/vnd.urbanairship+json; version=3Type:
object
400
There was a parsing or validation error in the request. Bad Request errors typically include
pathandlocationin the response to help you find the cause of the error.Response body:
- Content-Type:
application/jsonErrors returned with 4xx responses. Errors include as much information as possible to help you understand the reason for the failure.
401
Authentication information (the app key and secret or bearer token) was either incorrect or missing.
Response body:
- Content-Type:
text/plainErrors returned with 4xx responses. Errors include as much information as possible to help you understand the reason for the failure.
403
Authentication was correct, but the user does not have permission to access the requested API, e.g., if the feature in question is not included in your pricing plan.
Response body:
- Content-Type:
application/jsonErrors returned with 4xx responses. Errors include as much information as possible to help you understand the reason for the failure.
404
The requested resource doesn’t exist.
Response body:
- Content-Type:
application/vnd.urbanairship+jsonErrors returned with 4xx responses. Errors include as much information as possible to help you understand the reason for the failure.
406
Return when the client requests a version of the API that cannot be satisfied, because no compatible version is currently deployed.
Response body:
- Content-Type:
application/jsonErrors returned with 4xx responses. Errors include as much information as possible to help you understand the reason for the failure.
413
Returned when the request is too large to be processed.
Response body:
- Content-Type:
application/jsonErrors returned with 4xx responses. Errors include as much information as possible to help you understand the reason for the failure.
Examples
Example
POST /api/schedules HTTP/1.1
Authorization: Basic <master authorization string>
Accept: application/vnd.urbanairship+json; version=3
Content-Type: application/json
[
{
"name": "Morning People",
"schedule": {
"scheduled_time": "2020-06-03T09:15:00"
},
"push": {
"audience": { "tag": "earlyBirds" },
"notification": { "alert": "Good Day Sunshine" },
"device_types": [ "ios", "android" ]
}
},
{
"name": "Everybody Else",
"schedule": {
"best_time": {
"send_date": "2020-06-03"
}
},
"push": {
"audience": { "tag": "normalPeople" },
"notification": { "alert": "Stay Up Late" },
"device_types": [ "ios", "android" ]
}
}
]
UrbanAirshipClient client = UrbanAirshipClient.newBuilder()
.setKey("<app key>")
.setSecret("<master secret>")
.build();
SchedulePayload schedulePayload = SchedulePayload.newBuilder()
.setName("Morning People")
.setSchedule(Schedule.newBuilder()
.setScheduledTimestamp(DateTime.parse("2020-06-03T09:15:00Z"))
.build())
.setPushPayload(PushPayload.newBuilder()
.setDeviceTypes(DeviceTypeData.of(DeviceType.IOS, DeviceType.ANDROID))
.setNotification(Notifications.alert("Good Day Sunshine"))
.setAudience(Selectors.tag("earlyBirds"))
.build())
.build();
ScheduleRequest scheduleRequest = ScheduleRequest.newRequest(schedulePayload);
Response<ScheduleResponse> response = client.execute(scheduleRequest);
from datetime import datetime
from urbanairship import (
BasicAuthClient, ScheduledPush, Push,
tag, notification, scheduled_time
)
client = BasicAuthClient(
key='<app_key>',
secret='<master_secret>'
)
# Create the push payload
push = Push(client)
push.audience = tag('earlyBirds')
push.notification = notification(alert='Good Day Sunshine')
push.device_types = ['ios', 'android']
# Create the schedule
sched = ScheduledPush(client)
sched.name = 'Morning People'
sched.schedule = scheduled_time(datetime(2020, 6, 3, 9, 15, 0))
sched.push = push
# Send the scheduled push
response = sched.send()
print('Created schedule. URL:', response.schedule_url)
require 'urbanairship'
UA = Urbanairship
airship = UA::Client.new(key: '<app key>', secret: '<master secret>')
push = airship.create_push
push.audience = UA.tag('earlyBirds')
push.notification = UA.notification(alert: 'Morning People')
push.device_types = UA.device_types(['ios','android'])
schedule = airship.create_scheduled_push
schedule.push = push
schedule.name = "Morning People"
schedule.schedule = UA.scheduled_time(Time.now.utc + 60)
response = schedule.send_push
print ("Created schedule. url: " + response.schedule_url)
Example schedule with localizations
POST /api/schedules HTTP/1.1
Authorization: Basic <master authorization string>
Accept: application/vnd.urbanairship+json; version=3
Content-Type: application/json
[
{
"name": "Greetings",
"schedule": {
"best_time": {
"send_date": "2020-11-15"
}
},
"push": {
"device_types": [
"ios",
"android"
],
"audience": {
"tag": "needs_a_greeting",
"group": "new_customer"
},
"notification": {
"alert": "Hi!"
},
"localizations": [
{
"language": "de",
"country": "AT",
"notification": {
"alert": "Grüss Gott"
}
},
{
"language": "de",
"country": "DE",
"notification": {
"alert": "Guten Tag"
}
}
]
}
}
]
HTTP/1.1 201 Created
Data-Attribute: schedule_urls
Content-Type: application/vnd.urbanairship+json; version=3
{
"ok": true,
"operation_id": "efb18e92-9a60-6689-45c2-82fedab36399",
"schedule_urls": [
"https://go.urbanairship.com/api/schedules/eac2ace6-349a-41a2-b874-5496d7bf0100",
"https://go.urbanairship.com/api/schedules/6c7c9bf5-cb2b-47cb-b27f-f85981391c4e"
],
"schedule_ids": [
"eac2ace6-349a-41a2-b874-5496d7bf0100",
"6c7c9bf5-cb2b-47cb-b27f-f85981391c4e"
],
"schedules": [
{
"url": "https://go.urbanairship.com/api/schedules/eac2ace6-349a-41a2-b874-5496d7bf0100",
"schedule": {
"scheduled_time": "2020-06-03T09:15:00"
},
"name": "Morning People",
"push": {
"audience": { "tag": "earlyBirds" },
"notification": { "alert": "Good Day Sunshine" },
"device_types": [ "ios", "android" ]
},
"push_ids": [ "83046227-9b06-4114-9f23-0df349792bbd" ]
}
{
"url": "https://go.urbanairship.com/api/schedules/6c7c9bf5-cb2b-47cb-b27f-f85981391c4e",
"schedule": {
"best_time": {
"send_date": "2020-06-03"
}
},
"name": "Everybody Else",
"push": {
"audience": { "tag": "normalPeople" },
"notification": { "alert": "Stay Up Late" },
"device_types": [ "ios", "android" ]
},
"push_ids": [ "8438e81-bb31-82a9-5feb-e7fd5b21ca7e" ]
}
]
}
UrbanAirshipClient client = UrbanAirshipClient.newBuilder()
.setKey("<app key>")
.setSecret("<master secret>")
.build();
Localization one = Localization.newBuilder()
.setCountry("AT")
.setLanguage("de")
.setNotification(Notifications.alert("Grüss Gott"))
.build();
Localization two = Localization.newBuilder()
.setCountry("DE")
.setLanguage("de")
.setNotification(Notifications.alert("Guten Tag"))
.build();
SchedulePayload schedulePayload = SchedulePayload.newBuilder()
.setName("Greetings")
.setSchedule(Schedule.newBuilder()
.setBestTime(BestTime.newBuilder()
.setSendDate(DateTime.parse("2020-11-15T00:00:00Z"))
.build())
.build())
.setPushPayload(PushPayload.newBuilder()
.setDeviceTypes(DeviceTypeData.of(DeviceType.IOS, DeviceType.ANDROID))
.setNotification(Notifications.alert("Hi!"))
.setAudience(Selectors.tagWithGroup("needs_a_greeting", "new_customer"))
.addLocalization(one)
.addLocalization(two)
.build())
.build();
ScheduleRequest scheduleRequest = ScheduleRequest.newRequest(schedulePayload);
Response<ScheduleResponse> response = client.execute(scheduleRequest);
from datetime import datetime
from urbanairship import (
BasicAuthClient, ScheduledPush, Push,
tag_group, notification, best_time,
localization
)
client = BasicAuthClient(
key='<app_key>',
secret='<master_secret>'
)
# Create the push payload
push = Push(client)
push.audience = tag_group('new_customer', 'needs_a_greeting')
push.notification = notification(alert='Hi!')
push.device_types = ['ios', 'android']
push.localizations = [
localization(
country='AT',
language='de',
notification=notification(alert='Grüss Gott')
),
localization(
country='DE',
language='de',
notification=notification(alert='Guten Tag')
)
]
# Create the schedule
sched = ScheduledPush(client)
sched.name = 'Greetings'
sched.schedule = best_time(send_date=datetime(2020, 11, 15))
sched.push = push
# Send the scheduled push
response = sched.send()
print('Created schedule. URL:', response.schedule_url)
require 'urbanairship'
UA = Urbanairship
airship = UA::Client.new(key: '<app key>', secret: '<master secret>')
push = airship.create_push
push.audience = UA.tag('needs_a_greeting', group:'new_customer')
push.notification = UA.notification(alert: 'Hi!')
push.device_types = UA.device_types(['ios', 'android'])
push.localizations = {
"language": "de",
"country": "AT",
"notification": {
"alert": "Grüss Gott"
}
}
schedule = airship.create_scheduled_push
schedule.push = push
schedule.name = "Greetings"
schedule.schedule = UA.scheduled_time(Time.now.utc + 60)
response = schedule.send_push
print ("Created schedule. url: " + response.schedule_url)
Update schedule
Update the state of a single schedule resource. The body must contain a single schedule object. A PUT cannot be used to create a new schedule; it can only be used to update an existing one. A push to local time schedule cannot be updated once it has begun sending pushes to a time zone.
PUT /api/schedules/{schedule_id}
Security:
Path parameters:
- schedule_id stringREQUIREDThe ID of a schedule.
Request body:
A single schedule object.
Content-Type:
application/jsonA schedule object consists of a schedule, i.e., a future delivery time, an optional name, and a push object.
Responses
200
Returned if the scheduled push has been successfully updated.
Response body:
- Content-Type:
application/vnd.urbanairship+json; version=3Type:
object
400
There was a parsing or validation error in the request. Bad Request errors typically include
pathandlocationin the response to help you find the cause of the error.Response body:
- Content-Type:
application/jsonErrors returned with 4xx responses. Errors include as much information as possible to help you understand the reason for the failure.
401
Authentication information (the app key and secret or bearer token) was either incorrect or missing.
Response body:
- Content-Type:
text/plainErrors returned with 4xx responses. Errors include as much information as possible to help you understand the reason for the failure.
403
Authentication was correct, but the user does not have permission to access the requested API, e.g., if the feature in question is not included in your pricing plan.
Response body:
- Content-Type:
application/jsonErrors returned with 4xx responses. Errors include as much information as possible to help you understand the reason for the failure.
404
The requested resource doesn’t exist.
Response body:
- Content-Type:
application/vnd.urbanairship+jsonErrors returned with 4xx responses. Errors include as much information as possible to help you understand the reason for the failure.
409
Returned if the local time scheduled push is in progress.
413
Returned when the request is too large to be processed.
Response body:
- Content-Type:
application/jsonErrors returned with 4xx responses. Errors include as much information as possible to help you understand the reason for the failure.
Examples
Example
PUT /api/schedules/5cde3564-ead8-9743-63af-821e12337812 HTTP/1.1
Authorization: Basic <master authorization string>
Accept: application/vnd.urbanairship+json; version=3
Content-Type: application/json
{
"name": "I would like to subscribe to your newsletter",
"schedule": {
"scheduled_time": "2020-04-01T18:45:30"
},
"push": {
"audience": {
"tag": [
"intriguing",
"ideas",
"thought_leadership"
]
},
"notification": {
"alert": "Check your inbox!"
},
"device_types": [ "ios", "android" ]
}
}
HTTP/1.1 200 OK
Content-Length: 123
Content-Type: application/vnd.urbanairship+json; version=3
{
"ok": true,
"operation_id": "7c56d013-5599-d66d-6086-6205115d85e2",
"schedule_urls": [ "https://go.urbanairship.com/api/schedules/0af1dead-e769-4b78-879a-7c4bb52d7c9e" ],
"schedules": [
{
"url": "https://go.urbanairship.com/api/schedules/0af1dead-e769-4b78-879a-7c4bb52d7c9e",
"schedule": {
"scheduled_time": "2020-04-01T18:45:30"
},
"name": "I would like to subscribe to your newsletter",
"push": {
"audience": {"tag": ["intriguing", "ideas", "thought_leadership"] },
"notification": {"alert": "Check your inbox!"},
"device_types": [ "ios", "android" ]
},
"push_ids": [ "48fb8e8a-ee51-4e2a-9a47-9fab9b13d846" ]
}
]
}
UrbanAirshipClient client = UrbanAirshipClient.newBuilder()
.setKey("<app key>")
.setSecret("<master secret>")
.build();
SchedulePayload schedulePayload = SchedulePayload.newBuilder()
.setName("I would like to subscribe to your newsletter")
.setSchedule(Schedule.newBuilder()
.setScheduledTimestamp(DateTime.parse("2020-04-01T18:45:00Z"))
.build())
.setPushPayload(PushPayload.newBuilder()
.setDeviceTypes(DeviceTypeData.of(DeviceType.IOS, DeviceType.ANDROID))
.setNotification(Notifications.alert("Check your inbox!"))
.setAudience(Selectors.tag("intriguing"))
.build())
.build();
ScheduleRequest scheduleRequest = ScheduleRequest.newUpdateRequest(schedulePayload, "5cde3564-ead8-9743-63af-821e12337812");
Response<ScheduleResponse> response = client.execute(scheduleRequest);
from datetime import datetime
from urbanairship import (
BasicAuthClient, ScheduledPush, Push,
tag, notification, scheduled_time
)
client = BasicAuthClient(
key='<app_key>',
secret='<master_secret>'
)
schedule = ua.ScheduledPush.from_url(client, 'https://go.urbanairship.com/api/schedules/5cde3564-ead8-9743-63af-821e12337812')
# change scheduled time to tomorrow
schedule.schedule = scheduled_time(datetime.datetime.utcnow() + datetime.timedelta(days=1))
resp = schedule.update()
require 'urbanairship'
UA = Urbanairship
airship = UA::Client.new(key: '<app key>', secret: '<master secret>')
schedule = airship.create_scheduled_push
schedule = UA::ScheduledPush.from_url(client: airship, url: 'https://go.urbanairship.com/api/schedules/5cde3564-ead8-9743-63af-821e12337812')
# change scheduled time to tomorrow
schedule.schedule = UA.scheduled_time(Time.now.utc + (60 * 60 * 24))
schedule.update