Easy method:
Schedule the workflow to run everyday and have a condition in you worklow to check if today is the other August 1. You can use the token calculator to check if the year is an odd or even number with this formula:
ISODD(YEAR(%(Date)))
Script method:
Set an initial date in your starting rule and have a an SDK Script activity in your workflow update the date in your starting rule.
Sample Script:
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Data.SqlClient
Imports System.Text
Imports Laserfiche.RepositoryAccess
Imports Laserfiche.Workflow.Objects 'Dont forget to add in Reference in the project explorer
Namespace WorkflowActivity.Scripting.SDKScript
'''<summary>
'''Provides one or more methods that can be run when the workflow scripting activity is performed.
'''</summary>
Public Class Script1
Inherits RAScriptClass104
'''<summary>
'''This method is run when the activity is performed.
'''</summary>
Protected Overrides Sub Execute()
'Create connection to workflow server
Dim conn as Laserfiche.Workflow.WorkflowConnection = Laserfiche.Workflow.WorkflowConnection.CreateConnection("localhost","MyWF")
'Retreive starting rule
Dim startRule as Laserfiche.Workflow.Objects.ScheduledStartingRule = conn.Database.GetStartingRule("MyRuleName")
'Get XML for rule
Dim xmlRule as String = startRule.ScheduleXml
'Get current year
Dim currentYear As Integer = System.DateTime.Now.Year
'Set next run in 2 year
Dim nextYearSchedule = currentYear+2
'Update XML
xmlRule = xmlRule.Replace(currentYear.ToString,nextYearSchedule.ToString)
'Update rule
startRule.ScheduleXml=xmlRule
startRule.Update
End Sub
End Class
End Namespace