published on Wednesday, Mar 25, 2026 by Pulumi
published on Wednesday, Mar 25, 2026 by Pulumi
A v3 schedule determines the time periods that users are on call using flexible rotation configurations. This resource uses the PagerDuty v3 Schedules API, which supports per-event assignment strategies and RFC 5545 recurrence rules.
Note: This resource requires the
flexible-schedules-early-accessearly access flag on your PagerDuty account. The requiredX-Early-Accessheader is sent automatically by the provider.
Example Usage
Rotating member assignment
import * as pulumi from "@pulumi/pulumi";
import * as pagerduty from "@pulumi/pagerduty";
const example = new pagerduty.User("example", {
name: "Earline Greenholt",
email: "earline@example.com",
});
const exampleSchedulev2 = new pagerduty.Schedulev2("example", {
name: "Engineering On-Call",
timeZone: "America/New_York",
description: "Managed by Pulumi",
rotations: [{
events: [{
name: "Weekday Business Hours",
startTime: "2026-06-01T09:00:00Z",
endTime: "2026-06-01T17:00:00Z",
effectiveSince: "2026-06-01T09:00:00Z",
recurrences: ["RRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR"],
assignmentStrategies: [{
type: "rotating_member_assignment_strategy",
shiftsPerMember: 1,
members: [{
type: "user_member",
userId: example.id,
}],
}],
}],
}],
});
import pulumi
import pulumi_pagerduty as pagerduty
example = pagerduty.User("example",
name="Earline Greenholt",
email="earline@example.com")
example_schedulev2 = pagerduty.Schedulev2("example",
name="Engineering On-Call",
time_zone="America/New_York",
description="Managed by Pulumi",
rotations=[{
"events": [{
"name": "Weekday Business Hours",
"start_time": "2026-06-01T09:00:00Z",
"end_time": "2026-06-01T17:00:00Z",
"effective_since": "2026-06-01T09:00:00Z",
"recurrences": ["RRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR"],
"assignment_strategies": [{
"type": "rotating_member_assignment_strategy",
"shifts_per_member": 1,
"members": [{
"type": "user_member",
"user_id": example.id,
}],
}],
}],
}])
package main
import (
"github.com/pulumi/pulumi-pagerduty/sdk/v4/go/pagerduty"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := pagerduty.NewUser(ctx, "example", &pagerduty.UserArgs{
Name: pulumi.String("Earline Greenholt"),
Email: pulumi.String("earline@example.com"),
})
if err != nil {
return err
}
_, err = pagerduty.NewSchedulev2(ctx, "example", &pagerduty.Schedulev2Args{
Name: pulumi.String("Engineering On-Call"),
TimeZone: pulumi.String("America/New_York"),
Description: pulumi.String("Managed by Pulumi"),
Rotations: pagerduty.Schedulev2RotationArray{
&pagerduty.Schedulev2RotationArgs{
Events: pagerduty.Schedulev2RotationEventArray{
&pagerduty.Schedulev2RotationEventArgs{
Name: pulumi.String("Weekday Business Hours"),
StartTime: pulumi.String("2026-06-01T09:00:00Z"),
EndTime: pulumi.String("2026-06-01T17:00:00Z"),
EffectiveSince: pulumi.String("2026-06-01T09:00:00Z"),
Recurrences: pulumi.StringArray{
pulumi.String("RRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR"),
},
AssignmentStrategies: pagerduty.Schedulev2RotationEventAssignmentStrategyArray{
&pagerduty.Schedulev2RotationEventAssignmentStrategyArgs{
Type: pulumi.String("rotating_member_assignment_strategy"),
ShiftsPerMember: pulumi.Int(1),
Members: pagerduty.Schedulev2RotationEventAssignmentStrategyMemberArray{
&pagerduty.Schedulev2RotationEventAssignmentStrategyMemberArgs{
Type: pulumi.String("user_member"),
UserId: example.ID(),
},
},
},
},
},
},
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Pagerduty = Pulumi.Pagerduty;
return await Deployment.RunAsync(() =>
{
var example = new Pagerduty.User("example", new()
{
Name = "Earline Greenholt",
Email = "earline@example.com",
});
var exampleSchedulev2 = new Pagerduty.Schedulev2("example", new()
{
Name = "Engineering On-Call",
TimeZone = "America/New_York",
Description = "Managed by Pulumi",
Rotations = new[]
{
new Pagerduty.Inputs.Schedulev2RotationArgs
{
Events = new[]
{
new Pagerduty.Inputs.Schedulev2RotationEventArgs
{
Name = "Weekday Business Hours",
StartTime = "2026-06-01T09:00:00Z",
EndTime = "2026-06-01T17:00:00Z",
EffectiveSince = "2026-06-01T09:00:00Z",
Recurrences = new[]
{
"RRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR",
},
AssignmentStrategies = new[]
{
new Pagerduty.Inputs.Schedulev2RotationEventAssignmentStrategyArgs
{
Type = "rotating_member_assignment_strategy",
ShiftsPerMember = 1,
Members = new[]
{
new Pagerduty.Inputs.Schedulev2RotationEventAssignmentStrategyMemberArgs
{
Type = "user_member",
UserId = example.Id,
},
},
},
},
},
},
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.pagerduty.User;
import com.pulumi.pagerduty.UserArgs;
import com.pulumi.pagerduty.Schedulev2;
import com.pulumi.pagerduty.Schedulev2Args;
import com.pulumi.pagerduty.inputs.Schedulev2RotationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new User("example", UserArgs.builder()
.name("Earline Greenholt")
.email("earline@example.com")
.build());
var exampleSchedulev2 = new Schedulev2("exampleSchedulev2", Schedulev2Args.builder()
.name("Engineering On-Call")
.timeZone("America/New_York")
.description("Managed by Pulumi")
.rotations(Schedulev2RotationArgs.builder()
.events(Schedulev2RotationEventArgs.builder()
.name("Weekday Business Hours")
.startTime("2026-06-01T09:00:00Z")
.endTime("2026-06-01T17:00:00Z")
.effectiveSince("2026-06-01T09:00:00Z")
.recurrences("RRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR")
.assignmentStrategies(Schedulev2RotationEventAssignmentStrategyArgs.builder()
.type("rotating_member_assignment_strategy")
.shiftsPerMember(1)
.members(Schedulev2RotationEventAssignmentStrategyMemberArgs.builder()
.type("user_member")
.userId(example.id())
.build())
.build())
.build())
.build())
.build());
}
}
resources:
example:
type: pagerduty:User
properties:
name: Earline Greenholt
email: earline@example.com
exampleSchedulev2:
type: pagerduty:Schedulev2
name: example
properties:
name: Engineering On-Call
timeZone: America/New_York
description: Managed by Pulumi
rotations:
- events:
- name: Weekday Business Hours
startTime: 2026-06-01T09:00:00Z
endTime: 2026-06-01T17:00:00Z
effectiveSince: 2026-06-01T09:00:00Z
recurrences:
- RRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR
assignmentStrategies:
- type: rotating_member_assignment_strategy
shiftsPerMember: 1
members:
- type: user_member
userId: ${example.id}
Every-member assignment (all members on-call simultaneously)
import * as pulumi from "@pulumi/pulumi";
import * as pagerduty from "@pulumi/pagerduty";
const primary = new pagerduty.User("primary", {
name: "Alice",
email: "alice@example.com",
});
const secondary = new pagerduty.User("secondary", {
name: "Bob",
email: "bob@example.com",
});
const allHands = new pagerduty.Schedulev2("all_hands", {
name: "Weekend All-Hands On-Call",
timeZone: "UTC",
rotations: [{
events: [{
name: "Weekend Coverage",
startTime: "2026-06-06T00:00:00Z",
endTime: "2026-06-07T23:59:00Z",
effectiveSince: "2026-06-06T00:00:00Z",
recurrences: ["RRULE:FREQ=WEEKLY;BYDAY=SA,SU"],
assignmentStrategies: [{
type: "every_member_assignment_strategy",
members: [
{
type: "user_member",
userId: primary.id,
},
{
type: "user_member",
userId: secondary.id,
},
],
}],
}],
}],
});
import pulumi
import pulumi_pagerduty as pagerduty
primary = pagerduty.User("primary",
name="Alice",
email="alice@example.com")
secondary = pagerduty.User("secondary",
name="Bob",
email="bob@example.com")
all_hands = pagerduty.Schedulev2("all_hands",
name="Weekend All-Hands On-Call",
time_zone="UTC",
rotations=[{
"events": [{
"name": "Weekend Coverage",
"start_time": "2026-06-06T00:00:00Z",
"end_time": "2026-06-07T23:59:00Z",
"effective_since": "2026-06-06T00:00:00Z",
"recurrences": ["RRULE:FREQ=WEEKLY;BYDAY=SA,SU"],
"assignment_strategies": [{
"type": "every_member_assignment_strategy",
"members": [
{
"type": "user_member",
"user_id": primary.id,
},
{
"type": "user_member",
"user_id": secondary.id,
},
],
}],
}],
}])
package main
import (
"github.com/pulumi/pulumi-pagerduty/sdk/v4/go/pagerduty"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
primary, err := pagerduty.NewUser(ctx, "primary", &pagerduty.UserArgs{
Name: pulumi.String("Alice"),
Email: pulumi.String("alice@example.com"),
})
if err != nil {
return err
}
secondary, err := pagerduty.NewUser(ctx, "secondary", &pagerduty.UserArgs{
Name: pulumi.String("Bob"),
Email: pulumi.String("bob@example.com"),
})
if err != nil {
return err
}
_, err = pagerduty.NewSchedulev2(ctx, "all_hands", &pagerduty.Schedulev2Args{
Name: pulumi.String("Weekend All-Hands On-Call"),
TimeZone: pulumi.String("UTC"),
Rotations: pagerduty.Schedulev2RotationArray{
&pagerduty.Schedulev2RotationArgs{
Events: pagerduty.Schedulev2RotationEventArray{
&pagerduty.Schedulev2RotationEventArgs{
Name: pulumi.String("Weekend Coverage"),
StartTime: pulumi.String("2026-06-06T00:00:00Z"),
EndTime: pulumi.String("2026-06-07T23:59:00Z"),
EffectiveSince: pulumi.String("2026-06-06T00:00:00Z"),
Recurrences: pulumi.StringArray{
pulumi.String("RRULE:FREQ=WEEKLY;BYDAY=SA,SU"),
},
AssignmentStrategies: pagerduty.Schedulev2RotationEventAssignmentStrategyArray{
&pagerduty.Schedulev2RotationEventAssignmentStrategyArgs{
Type: pulumi.String("every_member_assignment_strategy"),
Members: pagerduty.Schedulev2RotationEventAssignmentStrategyMemberArray{
&pagerduty.Schedulev2RotationEventAssignmentStrategyMemberArgs{
Type: pulumi.String("user_member"),
UserId: primary.ID(),
},
&pagerduty.Schedulev2RotationEventAssignmentStrategyMemberArgs{
Type: pulumi.String("user_member"),
UserId: secondary.ID(),
},
},
},
},
},
},
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Pagerduty = Pulumi.Pagerduty;
return await Deployment.RunAsync(() =>
{
var primary = new Pagerduty.User("primary", new()
{
Name = "Alice",
Email = "alice@example.com",
});
var secondary = new Pagerduty.User("secondary", new()
{
Name = "Bob",
Email = "bob@example.com",
});
var allHands = new Pagerduty.Schedulev2("all_hands", new()
{
Name = "Weekend All-Hands On-Call",
TimeZone = "UTC",
Rotations = new[]
{
new Pagerduty.Inputs.Schedulev2RotationArgs
{
Events = new[]
{
new Pagerduty.Inputs.Schedulev2RotationEventArgs
{
Name = "Weekend Coverage",
StartTime = "2026-06-06T00:00:00Z",
EndTime = "2026-06-07T23:59:00Z",
EffectiveSince = "2026-06-06T00:00:00Z",
Recurrences = new[]
{
"RRULE:FREQ=WEEKLY;BYDAY=SA,SU",
},
AssignmentStrategies = new[]
{
new Pagerduty.Inputs.Schedulev2RotationEventAssignmentStrategyArgs
{
Type = "every_member_assignment_strategy",
Members = new[]
{
new Pagerduty.Inputs.Schedulev2RotationEventAssignmentStrategyMemberArgs
{
Type = "user_member",
UserId = primary.Id,
},
new Pagerduty.Inputs.Schedulev2RotationEventAssignmentStrategyMemberArgs
{
Type = "user_member",
UserId = secondary.Id,
},
},
},
},
},
},
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.pagerduty.User;
import com.pulumi.pagerduty.UserArgs;
import com.pulumi.pagerduty.Schedulev2;
import com.pulumi.pagerduty.Schedulev2Args;
import com.pulumi.pagerduty.inputs.Schedulev2RotationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var primary = new User("primary", UserArgs.builder()
.name("Alice")
.email("alice@example.com")
.build());
var secondary = new User("secondary", UserArgs.builder()
.name("Bob")
.email("bob@example.com")
.build());
var allHands = new Schedulev2("allHands", Schedulev2Args.builder()
.name("Weekend All-Hands On-Call")
.timeZone("UTC")
.rotations(Schedulev2RotationArgs.builder()
.events(Schedulev2RotationEventArgs.builder()
.name("Weekend Coverage")
.startTime("2026-06-06T00:00:00Z")
.endTime("2026-06-07T23:59:00Z")
.effectiveSince("2026-06-06T00:00:00Z")
.recurrences("RRULE:FREQ=WEEKLY;BYDAY=SA,SU")
.assignmentStrategies(Schedulev2RotationEventAssignmentStrategyArgs.builder()
.type("every_member_assignment_strategy")
.members(
Schedulev2RotationEventAssignmentStrategyMemberArgs.builder()
.type("user_member")
.userId(primary.id())
.build(),
Schedulev2RotationEventAssignmentStrategyMemberArgs.builder()
.type("user_member")
.userId(secondary.id())
.build())
.build())
.build())
.build())
.build());
}
}
resources:
primary:
type: pagerduty:User
properties:
name: Alice
email: alice@example.com
secondary:
type: pagerduty:User
properties:
name: Bob
email: bob@example.com
allHands:
type: pagerduty:Schedulev2
name: all_hands
properties:
name: Weekend All-Hands On-Call
timeZone: UTC
rotations:
- events:
- name: Weekend Coverage
startTime: 2026-06-06T00:00:00Z
endTime: 2026-06-07T23:59:00Z
effectiveSince: 2026-06-06T00:00:00Z
recurrences:
- RRULE:FREQ=WEEKLY;BYDAY=SA,SU
assignmentStrategies:
- type: every_member_assignment_strategy
members:
- type: user_member
userId: ${primary.id}
- type: user_member
userId: ${secondary.id}
Create Schedulev2 Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new Schedulev2(name: string, args: Schedulev2Args, opts?: CustomResourceOptions);@overload
def Schedulev2(resource_name: str,
args: Schedulev2Args,
opts: Optional[ResourceOptions] = None)
@overload
def Schedulev2(resource_name: str,
opts: Optional[ResourceOptions] = None,
time_zone: Optional[str] = None,
description: Optional[str] = None,
name: Optional[str] = None,
rotations: Optional[Sequence[Schedulev2RotationArgs]] = None,
teams: Optional[Sequence[str]] = None)func NewSchedulev2(ctx *Context, name string, args Schedulev2Args, opts ...ResourceOption) (*Schedulev2, error)public Schedulev2(string name, Schedulev2Args args, CustomResourceOptions? opts = null)
public Schedulev2(String name, Schedulev2Args args)
public Schedulev2(String name, Schedulev2Args args, CustomResourceOptions options)
type: pagerduty:Schedulev2
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
- The unique name of the resource.
- args Schedulev2Args
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args Schedulev2Args
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args Schedulev2Args
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args Schedulev2Args
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args Schedulev2Args
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var schedulev2Resource = new Pagerduty.Index.Schedulev2("schedulev2Resource", new()
{
TimeZone = "string",
Description = "string",
Name = "string",
Rotations = new[]
{
new Pagerduty.Inputs.Schedulev2RotationArgs
{
Events = new[]
{
new Pagerduty.Inputs.Schedulev2RotationEventArgs
{
EffectiveSince = "string",
EndTime = "string",
Name = "string",
Recurrences = new[]
{
"string",
},
StartTime = "string",
AssignmentStrategies = new[]
{
new Pagerduty.Inputs.Schedulev2RotationEventAssignmentStrategyArgs
{
Type = "string",
Members = new[]
{
new Pagerduty.Inputs.Schedulev2RotationEventAssignmentStrategyMemberArgs
{
Type = "string",
UserId = "string",
},
},
ShiftsPerMember = 0,
},
},
EffectiveUntil = "string",
Id = "string",
},
},
Id = "string",
},
},
Teams = new[]
{
"string",
},
});
example, err := pagerduty.NewSchedulev2(ctx, "schedulev2Resource", &pagerduty.Schedulev2Args{
TimeZone: pulumi.String("string"),
Description: pulumi.String("string"),
Name: pulumi.String("string"),
Rotations: pagerduty.Schedulev2RotationArray{
&pagerduty.Schedulev2RotationArgs{
Events: pagerduty.Schedulev2RotationEventArray{
&pagerduty.Schedulev2RotationEventArgs{
EffectiveSince: pulumi.String("string"),
EndTime: pulumi.String("string"),
Name: pulumi.String("string"),
Recurrences: pulumi.StringArray{
pulumi.String("string"),
},
StartTime: pulumi.String("string"),
AssignmentStrategies: pagerduty.Schedulev2RotationEventAssignmentStrategyArray{
&pagerduty.Schedulev2RotationEventAssignmentStrategyArgs{
Type: pulumi.String("string"),
Members: pagerduty.Schedulev2RotationEventAssignmentStrategyMemberArray{
&pagerduty.Schedulev2RotationEventAssignmentStrategyMemberArgs{
Type: pulumi.String("string"),
UserId: pulumi.String("string"),
},
},
ShiftsPerMember: pulumi.Int(0),
},
},
EffectiveUntil: pulumi.String("string"),
Id: pulumi.String("string"),
},
},
Id: pulumi.String("string"),
},
},
Teams: pulumi.StringArray{
pulumi.String("string"),
},
})
var schedulev2Resource = new Schedulev2("schedulev2Resource", Schedulev2Args.builder()
.timeZone("string")
.description("string")
.name("string")
.rotations(Schedulev2RotationArgs.builder()
.events(Schedulev2RotationEventArgs.builder()
.effectiveSince("string")
.endTime("string")
.name("string")
.recurrences("string")
.startTime("string")
.assignmentStrategies(Schedulev2RotationEventAssignmentStrategyArgs.builder()
.type("string")
.members(Schedulev2RotationEventAssignmentStrategyMemberArgs.builder()
.type("string")
.userId("string")
.build())
.shiftsPerMember(0)
.build())
.effectiveUntil("string")
.id("string")
.build())
.id("string")
.build())
.teams("string")
.build());
schedulev2_resource = pagerduty.Schedulev2("schedulev2Resource",
time_zone="string",
description="string",
name="string",
rotations=[{
"events": [{
"effective_since": "string",
"end_time": "string",
"name": "string",
"recurrences": ["string"],
"start_time": "string",
"assignment_strategies": [{
"type": "string",
"members": [{
"type": "string",
"user_id": "string",
}],
"shifts_per_member": 0,
}],
"effective_until": "string",
"id": "string",
}],
"id": "string",
}],
teams=["string"])
const schedulev2Resource = new pagerduty.Schedulev2("schedulev2Resource", {
timeZone: "string",
description: "string",
name: "string",
rotations: [{
events: [{
effectiveSince: "string",
endTime: "string",
name: "string",
recurrences: ["string"],
startTime: "string",
assignmentStrategies: [{
type: "string",
members: [{
type: "string",
userId: "string",
}],
shiftsPerMember: 0,
}],
effectiveUntil: "string",
id: "string",
}],
id: "string",
}],
teams: ["string"],
});
type: pagerduty:Schedulev2
properties:
description: string
name: string
rotations:
- events:
- assignmentStrategies:
- members:
- type: string
userId: string
shiftsPerMember: 0
type: string
effectiveSince: string
effectiveUntil: string
endTime: string
id: string
name: string
recurrences:
- string
startTime: string
id: string
teams:
- string
timeZone: string
Schedulev2 Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The Schedulev2 resource accepts the following input properties:
- Time
Zone string - The time zone of the schedule (IANA format, e.g.
America/New_York). - Description string
- A description of the schedule. Maximum 1024 characters.
- Name string
- The name of the schedule. Maximum 255 characters.
- Rotations List<Schedulev2Rotation>
- One or more rotation blocks. Rotations documented below.
- Teams List<string>
- List of team IDs to associate with this schedule.
- Time
Zone string - The time zone of the schedule (IANA format, e.g.
America/New_York). - Description string
- A description of the schedule. Maximum 1024 characters.
- Name string
- The name of the schedule. Maximum 255 characters.
- Rotations
[]Schedulev2Rotation
Args - One or more rotation blocks. Rotations documented below.
- Teams []string
- List of team IDs to associate with this schedule.
- time
Zone String - The time zone of the schedule (IANA format, e.g.
America/New_York). - description String
- A description of the schedule. Maximum 1024 characters.
- name String
- The name of the schedule. Maximum 255 characters.
- rotations List<Schedulev2Rotation>
- One or more rotation blocks. Rotations documented below.
- teams List<String>
- List of team IDs to associate with this schedule.
- time
Zone string - The time zone of the schedule (IANA format, e.g.
America/New_York). - description string
- A description of the schedule. Maximum 1024 characters.
- name string
- The name of the schedule. Maximum 255 characters.
- rotations Schedulev2Rotation[]
- One or more rotation blocks. Rotations documented below.
- teams string[]
- List of team IDs to associate with this schedule.
- time_
zone str - The time zone of the schedule (IANA format, e.g.
America/New_York). - description str
- A description of the schedule. Maximum 1024 characters.
- name str
- The name of the schedule. Maximum 255 characters.
- rotations
Sequence[Schedulev2Rotation
Args] - One or more rotation blocks. Rotations documented below.
- teams Sequence[str]
- List of team IDs to associate with this schedule.
- time
Zone String - The time zone of the schedule (IANA format, e.g.
America/New_York). - description String
- A description of the schedule. Maximum 1024 characters.
- name String
- The name of the schedule. Maximum 255 characters.
- rotations List<Property Map>
- One or more rotation blocks. Rotations documented below.
- teams List<String>
- List of team IDs to associate with this schedule.
Outputs
All input properties are implicitly available as output properties. Additionally, the Schedulev2 resource produces the following output properties:
- Id string
- The provider-assigned unique ID for this managed resource.
- Id string
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
- id string
- The provider-assigned unique ID for this managed resource.
- id str
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
Look up Existing Schedulev2 Resource
Get an existing Schedulev2 resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: Schedulev2State, opts?: CustomResourceOptions): Schedulev2@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
description: Optional[str] = None,
name: Optional[str] = None,
rotations: Optional[Sequence[Schedulev2RotationArgs]] = None,
teams: Optional[Sequence[str]] = None,
time_zone: Optional[str] = None) -> Schedulev2func GetSchedulev2(ctx *Context, name string, id IDInput, state *Schedulev2State, opts ...ResourceOption) (*Schedulev2, error)public static Schedulev2 Get(string name, Input<string> id, Schedulev2State? state, CustomResourceOptions? opts = null)public static Schedulev2 get(String name, Output<String> id, Schedulev2State state, CustomResourceOptions options)resources: _: type: pagerduty:Schedulev2 get: id: ${id}- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Description string
- A description of the schedule. Maximum 1024 characters.
- Name string
- The name of the schedule. Maximum 255 characters.
- Rotations List<Schedulev2Rotation>
- One or more rotation blocks. Rotations documented below.
- Teams List<string>
- List of team IDs to associate with this schedule.
- Time
Zone string - The time zone of the schedule (IANA format, e.g.
America/New_York).
- Description string
- A description of the schedule. Maximum 1024 characters.
- Name string
- The name of the schedule. Maximum 255 characters.
- Rotations
[]Schedulev2Rotation
Args - One or more rotation blocks. Rotations documented below.
- Teams []string
- List of team IDs to associate with this schedule.
- Time
Zone string - The time zone of the schedule (IANA format, e.g.
America/New_York).
- description String
- A description of the schedule. Maximum 1024 characters.
- name String
- The name of the schedule. Maximum 255 characters.
- rotations List<Schedulev2Rotation>
- One or more rotation blocks. Rotations documented below.
- teams List<String>
- List of team IDs to associate with this schedule.
- time
Zone String - The time zone of the schedule (IANA format, e.g.
America/New_York).
- description string
- A description of the schedule. Maximum 1024 characters.
- name string
- The name of the schedule. Maximum 255 characters.
- rotations Schedulev2Rotation[]
- One or more rotation blocks. Rotations documented below.
- teams string[]
- List of team IDs to associate with this schedule.
- time
Zone string - The time zone of the schedule (IANA format, e.g.
America/New_York).
- description str
- A description of the schedule. Maximum 1024 characters.
- name str
- The name of the schedule. Maximum 255 characters.
- rotations
Sequence[Schedulev2Rotation
Args] - One or more rotation blocks. Rotations documented below.
- teams Sequence[str]
- List of team IDs to associate with this schedule.
- time_
zone str - The time zone of the schedule (IANA format, e.g.
America/New_York).
- description String
- A description of the schedule. Maximum 1024 characters.
- name String
- The name of the schedule. Maximum 255 characters.
- rotations List<Property Map>
- One or more rotation blocks. Rotations documented below.
- teams List<String>
- List of team IDs to associate with this schedule.
- time
Zone String - The time zone of the schedule (IANA format, e.g.
America/New_York).
Supporting Types
Schedulev2Rotation, Schedulev2RotationArgs
- Events
List<Schedulev2Rotation
Event> - One or more event blocks defining on-call periods within this rotation. Events documented below.
- Id string
- The ID of the schedule.
rotation.*.id- The ID of each rotation.rotation.*.event.*.id- The ID of each event within a rotation.
- Events
[]Schedulev2Rotation
Event - One or more event blocks defining on-call periods within this rotation. Events documented below.
- Id string
- The ID of the schedule.
rotation.*.id- The ID of each rotation.rotation.*.event.*.id- The ID of each event within a rotation.
- events
List<Schedulev2Rotation
Event> - One or more event blocks defining on-call periods within this rotation. Events documented below.
- id String
- The ID of the schedule.
rotation.*.id- The ID of each rotation.rotation.*.event.*.id- The ID of each event within a rotation.
- events
Schedulev2Rotation
Event[] - One or more event blocks defining on-call periods within this rotation. Events documented below.
- id string
- The ID of the schedule.
rotation.*.id- The ID of each rotation.rotation.*.event.*.id- The ID of each event within a rotation.
- events
Sequence[Schedulev2Rotation
Event] - One or more event blocks defining on-call periods within this rotation. Events documented below.
- id str
- The ID of the schedule.
rotation.*.id- The ID of each rotation.rotation.*.event.*.id- The ID of each event within a rotation.
- events List<Property Map>
- One or more event blocks defining on-call periods within this rotation. Events documented below.
- id String
- The ID of the schedule.
rotation.*.id- The ID of each rotation.rotation.*.event.*.id- The ID of each event within a rotation.
Schedulev2RotationEvent, Schedulev2RotationEventArgs
- Effective
Since string - When this event configuration begins producing shifts (ISO-8601 UTC). The API adjusts past values to the current time.
- End
Time string - The shift end time in ISO-8601 format. The v3 API normalizes this to UTC.
- Name string
- The name of the event. Maximum 255 characters.
- Recurrences List<string>
- List of RFC 5545 recurrence rule strings. Must contain exactly one
RRULEentry. May optionally include one or moreEXDATEentries (dates to exclude) and one or moreRDATEentries (additional dates to include). Example:["RRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR"]. You can generate RRULE strings interactively using tools like RRULE Tool. - Start
Time string - The shift start time in ISO-8601 format (e.g.
2026-06-01T09:00:00Z). The v3 API normalizes this to UTC. - Assignment
Strategies List<Schedulev2RotationEvent Assignment Strategy> - A block defining how on-call responsibility is assigned. Assignment strategy documented below.
- Effective
Until string - When this event configuration stops producing shifts (ISO-8601 UTC). Omit for an indefinite schedule.
- Id string
- The ID of the schedule.
rotation.*.id- The ID of each rotation.rotation.*.event.*.id- The ID of each event within a rotation.
- Effective
Since string - When this event configuration begins producing shifts (ISO-8601 UTC). The API adjusts past values to the current time.
- End
Time string - The shift end time in ISO-8601 format. The v3 API normalizes this to UTC.
- Name string
- The name of the event. Maximum 255 characters.
- Recurrences []string
- List of RFC 5545 recurrence rule strings. Must contain exactly one
RRULEentry. May optionally include one or moreEXDATEentries (dates to exclude) and one or moreRDATEentries (additional dates to include). Example:["RRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR"]. You can generate RRULE strings interactively using tools like RRULE Tool. - Start
Time string - The shift start time in ISO-8601 format (e.g.
2026-06-01T09:00:00Z). The v3 API normalizes this to UTC. - Assignment
Strategies []Schedulev2RotationEvent Assignment Strategy - A block defining how on-call responsibility is assigned. Assignment strategy documented below.
- Effective
Until string - When this event configuration stops producing shifts (ISO-8601 UTC). Omit for an indefinite schedule.
- Id string
- The ID of the schedule.
rotation.*.id- The ID of each rotation.rotation.*.event.*.id- The ID of each event within a rotation.
- effective
Since String - When this event configuration begins producing shifts (ISO-8601 UTC). The API adjusts past values to the current time.
- end
Time String - The shift end time in ISO-8601 format. The v3 API normalizes this to UTC.
- name String
- The name of the event. Maximum 255 characters.
- recurrences List<String>
- List of RFC 5545 recurrence rule strings. Must contain exactly one
RRULEentry. May optionally include one or moreEXDATEentries (dates to exclude) and one or moreRDATEentries (additional dates to include). Example:["RRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR"]. You can generate RRULE strings interactively using tools like RRULE Tool. - start
Time String - The shift start time in ISO-8601 format (e.g.
2026-06-01T09:00:00Z). The v3 API normalizes this to UTC. - assignment
Strategies List<Schedulev2RotationEvent Assignment Strategy> - A block defining how on-call responsibility is assigned. Assignment strategy documented below.
- effective
Until String - When this event configuration stops producing shifts (ISO-8601 UTC). Omit for an indefinite schedule.
- id String
- The ID of the schedule.
rotation.*.id- The ID of each rotation.rotation.*.event.*.id- The ID of each event within a rotation.
- effective
Since string - When this event configuration begins producing shifts (ISO-8601 UTC). The API adjusts past values to the current time.
- end
Time string - The shift end time in ISO-8601 format. The v3 API normalizes this to UTC.
- name string
- The name of the event. Maximum 255 characters.
- recurrences string[]
- List of RFC 5545 recurrence rule strings. Must contain exactly one
RRULEentry. May optionally include one or moreEXDATEentries (dates to exclude) and one or moreRDATEentries (additional dates to include). Example:["RRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR"]. You can generate RRULE strings interactively using tools like RRULE Tool. - start
Time string - The shift start time in ISO-8601 format (e.g.
2026-06-01T09:00:00Z). The v3 API normalizes this to UTC. - assignment
Strategies Schedulev2RotationEvent Assignment Strategy[] - A block defining how on-call responsibility is assigned. Assignment strategy documented below.
- effective
Until string - When this event configuration stops producing shifts (ISO-8601 UTC). Omit for an indefinite schedule.
- id string
- The ID of the schedule.
rotation.*.id- The ID of each rotation.rotation.*.event.*.id- The ID of each event within a rotation.
- effective_
since str - When this event configuration begins producing shifts (ISO-8601 UTC). The API adjusts past values to the current time.
- end_
time str - The shift end time in ISO-8601 format. The v3 API normalizes this to UTC.
- name str
- The name of the event. Maximum 255 characters.
- recurrences Sequence[str]
- List of RFC 5545 recurrence rule strings. Must contain exactly one
RRULEentry. May optionally include one or moreEXDATEentries (dates to exclude) and one or moreRDATEentries (additional dates to include). Example:["RRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR"]. You can generate RRULE strings interactively using tools like RRULE Tool. - start_
time str - The shift start time in ISO-8601 format (e.g.
2026-06-01T09:00:00Z). The v3 API normalizes this to UTC. - assignment_
strategies Sequence[Schedulev2RotationEvent Assignment Strategy] - A block defining how on-call responsibility is assigned. Assignment strategy documented below.
- effective_
until str - When this event configuration stops producing shifts (ISO-8601 UTC). Omit for an indefinite schedule.
- id str
- The ID of the schedule.
rotation.*.id- The ID of each rotation.rotation.*.event.*.id- The ID of each event within a rotation.
- effective
Since String - When this event configuration begins producing shifts (ISO-8601 UTC). The API adjusts past values to the current time.
- end
Time String - The shift end time in ISO-8601 format. The v3 API normalizes this to UTC.
- name String
- The name of the event. Maximum 255 characters.
- recurrences List<String>
- List of RFC 5545 recurrence rule strings. Must contain exactly one
RRULEentry. May optionally include one or moreEXDATEentries (dates to exclude) and one or moreRDATEentries (additional dates to include). Example:["RRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR"]. You can generate RRULE strings interactively using tools like RRULE Tool. - start
Time String - The shift start time in ISO-8601 format (e.g.
2026-06-01T09:00:00Z). The v3 API normalizes this to UTC. - assignment
Strategies List<Property Map> - A block defining how on-call responsibility is assigned. Assignment strategy documented below.
- effective
Until String - When this event configuration stops producing shifts (ISO-8601 UTC). Omit for an indefinite schedule.
- id String
- The ID of the schedule.
rotation.*.id- The ID of each rotation.rotation.*.event.*.id- The ID of each event within a rotation.
Schedulev2RotationEventAssignmentStrategy, Schedulev2RotationEventAssignmentStrategyArgs
- Type string
The assignment strategy type. Supported values:
"rotating_member_assignment_strategy"— listed members rotate in sequence. Each member coversshifts_per_memberconsecutive shift periods before the next member takes over."every_member_assignment_strategy"— all listed members are on-call simultaneously for every occurrence.
Breaking change: The previous value
"user_assignment_strategy"is no longer valid. Use"rotating_member_assignment_strategy"instead.- Members
List<Schedulev2Rotation
Event Assignment Strategy Member> - One or more member blocks identifying who is on call. Required for both strategy types. Maximum 20 members. Members documented below.
- Shifts
Per intMember - Number of consecutive shift occurrences each member covers before rotating. Minimum value:
1. Required whentypeis"rotating_member_assignment_strategy".
- Type string
The assignment strategy type. Supported values:
"rotating_member_assignment_strategy"— listed members rotate in sequence. Each member coversshifts_per_memberconsecutive shift periods before the next member takes over."every_member_assignment_strategy"— all listed members are on-call simultaneously for every occurrence.
Breaking change: The previous value
"user_assignment_strategy"is no longer valid. Use"rotating_member_assignment_strategy"instead.- Members
[]Schedulev2Rotation
Event Assignment Strategy Member - One or more member blocks identifying who is on call. Required for both strategy types. Maximum 20 members. Members documented below.
- Shifts
Per intMember - Number of consecutive shift occurrences each member covers before rotating. Minimum value:
1. Required whentypeis"rotating_member_assignment_strategy".
- type String
The assignment strategy type. Supported values:
"rotating_member_assignment_strategy"— listed members rotate in sequence. Each member coversshifts_per_memberconsecutive shift periods before the next member takes over."every_member_assignment_strategy"— all listed members are on-call simultaneously for every occurrence.
Breaking change: The previous value
"user_assignment_strategy"is no longer valid. Use"rotating_member_assignment_strategy"instead.- members
List<Schedulev2Rotation
Event Assignment Strategy Member> - One or more member blocks identifying who is on call. Required for both strategy types. Maximum 20 members. Members documented below.
- shifts
Per IntegerMember - Number of consecutive shift occurrences each member covers before rotating. Minimum value:
1. Required whentypeis"rotating_member_assignment_strategy".
- type string
The assignment strategy type. Supported values:
"rotating_member_assignment_strategy"— listed members rotate in sequence. Each member coversshifts_per_memberconsecutive shift periods before the next member takes over."every_member_assignment_strategy"— all listed members are on-call simultaneously for every occurrence.
Breaking change: The previous value
"user_assignment_strategy"is no longer valid. Use"rotating_member_assignment_strategy"instead.- members
Schedulev2Rotation
Event Assignment Strategy Member[] - One or more member blocks identifying who is on call. Required for both strategy types. Maximum 20 members. Members documented below.
- shifts
Per numberMember - Number of consecutive shift occurrences each member covers before rotating. Minimum value:
1. Required whentypeis"rotating_member_assignment_strategy".
- type str
The assignment strategy type. Supported values:
"rotating_member_assignment_strategy"— listed members rotate in sequence. Each member coversshifts_per_memberconsecutive shift periods before the next member takes over."every_member_assignment_strategy"— all listed members are on-call simultaneously for every occurrence.
Breaking change: The previous value
"user_assignment_strategy"is no longer valid. Use"rotating_member_assignment_strategy"instead.- members
Sequence[Schedulev2Rotation
Event Assignment Strategy Member] - One or more member blocks identifying who is on call. Required for both strategy types. Maximum 20 members. Members documented below.
- shifts_
per_ intmember - Number of consecutive shift occurrences each member covers before rotating. Minimum value:
1. Required whentypeis"rotating_member_assignment_strategy".
- type String
The assignment strategy type. Supported values:
"rotating_member_assignment_strategy"— listed members rotate in sequence. Each member coversshifts_per_memberconsecutive shift periods before the next member takes over."every_member_assignment_strategy"— all listed members are on-call simultaneously for every occurrence.
Breaking change: The previous value
"user_assignment_strategy"is no longer valid. Use"rotating_member_assignment_strategy"instead.- members List<Property Map>
- One or more member blocks identifying who is on call. Required for both strategy types. Maximum 20 members. Members documented below.
- shifts
Per NumberMember - Number of consecutive shift occurrences each member covers before rotating. Minimum value:
1. Required whentypeis"rotating_member_assignment_strategy".
Schedulev2RotationEventAssignmentStrategyMember, Schedulev2RotationEventAssignmentStrategyMemberArgs
Import
Schedules can be imported using the schedule id, e.g.
$ pulumi import pagerduty:index/schedulev2:Schedulev2 example P1234AB
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- PagerDuty pulumi/pulumi-pagerduty
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
pagerdutyTerraform Provider.
published on Wednesday, Mar 25, 2026 by Pulumi
